diff --git a/CHANGELOG b/CHANGELOG index 1fb6710efc8d360311e9eeab1e1043e3437ee240..0048d485917d880f7cddd5332e3eeeb0a55b7d87 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -5,6 +5,13 @@ Changelog ================================================================================ +Release 3.1.0 +-------------------------------------------------------------------------------- + +* Introduce alignment processing steps in BuildRawModel +* Several minor bug fixes, improvements, and speed-ups. + + Release 3.0.0 -------------------------------------------------------------------------------- diff --git a/CMakeLists.txt b/CMakeLists.txt index cab348acf39f7fa79042d67a6485159d6b9fd83b..bc2a47113508185ead6ce033b2bae1e6339a2272 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,7 +24,7 @@ include(PROMOD3) # versioning info set(PROMOD3_VERSION_MAJOR 3) -set(PROMOD3_VERSION_MINOR 0) +set(PROMOD3_VERSION_MINOR 1) set(PROMOD3_VERSION_PATCH 0) set(PROMOD3_VERSION_STRING ${PROMOD3_VERSION_MAJOR}.${PROMOD3_VERSION_MINOR}) set(PROMOD3_VERSION_STRING ${PROMOD3_VERSION_STRING}.${PROMOD3_VERSION_PATCH}) diff --git a/container/Dockerfile b/container/Dockerfile index 3102920b5e25e4a9336859a6c250e881ab5e75d0..a1a3449287c8fad24879279595c40b398b8e9d73 100644 --- a/container/Dockerfile +++ b/container/Dockerfile @@ -1,9 +1,9 @@ -ARG OPENSTRUCTURE_VERSION="2.0.0" +ARG OPENSTRUCTURE_VERSION="2.0.0-bionic" FROM registry.scicore.unibas.ch/schwede/openstructure:${OPENSTRUCTURE_VERSION} # ARGUMENTS ########### -ARG PROMOD_VERSION="3.0.0" +ARG PROMOD_VERSION="3.1.0" ARG SRC_FOLDER="/usr/local/src" diff --git a/container/Singularity b/container/Singularity index 8c3489a6815841b113a6a2f3a48db1013ef467c4..f5665c8d6d89976cae2f70a8c95c6eafdc52596d 100644 --- a/container/Singularity +++ b/container/Singularity @@ -1,5 +1,5 @@ BootStrap: docker -From: registry.scicore.unibas.ch/schwede/promod3:3.0.0 +From: registry.scicore.unibas.ch/schwede/promod3:3.1.0-OST2.0.0-bionic %post ############################################################################## # POST diff --git a/doc/buildsystem.rst b/doc/buildsystem.rst index e2540e8a97f08381498d204f85c8b66e19e6e0f0..5960348cf6d2e6cb2598440d7ffa10784a63ef2e 100644 --- a/doc/buildsystem.rst +++ b/doc/buildsystem.rst @@ -40,7 +40,7 @@ The currently preferred versions are: * |python|_ 3.6.0 * |boost|_ 1.68.0 * |eigen3|_ 3.3.1 -* |sphinx|_ 1.3.1 +* |sphinx|_ 1.4.9 -------------------------------------------------------------------------------- Using |cmake| diff --git a/doc/container/index.rst b/doc/container/index.rst index 352f285c61983703f7d58c714e864ad65c885a67..00732135f52658da7c45670d682a39dc8cc77654 100644 --- a/doc/container/index.rst +++ b/doc/container/index.rst @@ -15,7 +15,7 @@ |project| and Containers -====================== +======================== |project| offers build recipes for Docker and Singularity in diff --git a/doc/html/_sources/actions/index.rst.txt b/doc/html/_sources/actions/index.txt similarity index 100% rename from doc/html/_sources/actions/index.rst.txt rename to doc/html/_sources/actions/index.txt diff --git a/doc/html/_sources/actions/index_dev.rst.txt b/doc/html/_sources/actions/index_dev.txt similarity index 100% rename from doc/html/_sources/actions/index_dev.rst.txt rename to doc/html/_sources/actions/index_dev.txt diff --git a/doc/html/_sources/buildsystem.rst.txt b/doc/html/_sources/buildsystem.txt similarity index 97% rename from doc/html/_sources/buildsystem.rst.txt rename to doc/html/_sources/buildsystem.txt index c38e76aa7af24ba3cc6c64f263255a079261c443..e2540e8a97f08381498d204f85c8b66e19e6e0f0 100644 --- a/doc/html/_sources/buildsystem.rst.txt +++ b/doc/html/_sources/buildsystem.txt @@ -1,172 +1,172 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -.. _building-promod: - -Building |project| -================================================================================ - --------------------------------------------------------------------------------- -Dependencies --------------------------------------------------------------------------------- - -|project| is build on top of |ost_l|_ (|ost_s|), requiring at least version -|ost_version|. |ost_s| must be configured and compiled with ``ENABLE_MM=1`` to -use |openmm|_. To create the build system, |cmake|_ is required. The same -versions of |python|_ and |boost|_ are needed as used in |ost_s|. For |eigen3|_ -we need at least version 3.3.0. To build the documentation, |sphinx|_ is -required. We do not provide backwards compatibility to Python 2.7. The last -release supporting Python 2.7 is 2.1.0 which also requires |ost_s| to be -compiled with Python 2.7. - -The currently preferred versions are: - -* |ost_s|_ |ost_version| -* |openmm|_ 7.1.1 -* |cmake|_ 3.12.1 -* |python|_ 3.6.0 -* |boost|_ 1.68.0 -* |eigen3|_ 3.3.1 -* |sphinx|_ 1.3.1 - --------------------------------------------------------------------------------- - Using |cmake| --------------------------------------------------------------------------------- -|cmake| is used to configure the build system and in the end produces makefiles -and certain directories needed for building |project|. Basically it is called -right from a shell with the directory containing the top-level -:file:`CMakeLists.txt` as an argument. The preferred approach is to generate a -build folder and configure and compile in there: - -.. code-block:: console - - # execute this in the ProMod3 root folder - $ mkdir build - $ cd build - $ cmake .. -DOST_ROOT=<PATH TO OST> - -For us, at least pointer to the |ost_s| installation directory is needed, -handed over to |cmake| by ``-D`` into the variable ``OST_ROOT`` (e.g. |ost_s| -headers would be located in ``OST_ROOT/include/ost``). - -Similarly, one can specify folders for |boost|, |python| and |eigen3| -if multiple versions exist and/or they are not installed in a default location. -These are set with the ``BOOST_ROOT`` (make sure that's the same as for |ost_s|), -``PYTHON_ROOT`` and ``EIGEN3_INCLUDE_DIR``. - -Here is a list of more options used within |project|: - -* ``DISABLE_DOCUMENTATION`` Don't build documentation, don't search for |sphinx| -* ``DISABLE_DOCTEST`` Don't run example code from documentation on - ``make check`` (implicit by ``DISABLE_DOCUMENTATION``) -* ``DISABLE_LINKCHECK`` Don't test links from documentation on ``make check`` - (implicit by ``DISABLE_DOCUMENTATION``) -* ``ENABLE_SSE`` Allow for more agressive optimization by adding -msse4 flag to - the compiler. At some places within the code, we use SSE intrinsics explicitely. - This is only enabled if |ost_s| has been compiled with single precision. - (``OST_DOUBLE_PRECISION`` flag) - -Since we use |ost_s| in the background, some of its options for |cmake| are -also relevant, here. Basically they need to be set to exactly the same value. -Even if |project| builds with different settings, it may start producing funny -results at an unexpected point. If you do not know the values, grep the option -in the :file:`CMakeCache.txt` of |ost_s|: - -* ``OPTIMIZE`` -* ``OST_DOUBLE_PRECISION`` - -.. doesn't work (yet?) - Instead of providing all those options at the command line, you can also use - ``ccmake`` instead of ``cmake``, which allows you to set the |cmake| variables - interactively. Press 'c' to try to configure the build. If it fails, enter the - requested paths and configure again. Advanced settings can be edited by - pressing 't'. - -Instead of calling |cmake| by yourself, there is the :file:`conf-scripts` -directory, providing smallish scripts to invoke |cmake| the right way for -various systems. Usually those scripts just need the |ost_s| path -and the location of the top-level :file:`CMakeLists.txt`. - -As mentioned earlier, we highly recommend to use out-of-source builds. -This way, you can have several builds with different configurations. Also if -anything goes wrong, just remove the build directory to get to a clean state -again. No searching for |cmake| cache files or checking if certain files -really got rebuild and similar things required. - --------------------------------------------------------------------------------- -Running Make --------------------------------------------------------------------------------- -After configuring, you want to build |project| by - -.. code-block:: console - - $ make - -to populate the :file:`stage` directory with a ready-to-go version of the -latest code. - -.. index:: - single: Make targets - -Beside the usual ``make all`` and other default targets, there are a few -special targets: - -* ``check`` :index:`make check` Runs unit tests and if |cmake| was invoked in - its standard configuration also documentation examples (``doctest``) and - links in the doc. (``linkcheck``) are checked -* ``html`` :index:`make html` Creates documentation as web page using the - |sphinx| ``html`` builder -* ``man`` :index:`make man` Creates a manual page using the |sphinx| ``man`` - builder -* ``doc`` :index:`make doc` Creates documentation using the ``html`` and - ``man`` targets -* ``help`` :index:`make help` Prints a list of targets available - --------------------------------------------------------------------------------- -Installing |project| --------------------------------------------------------------------------------- -If you wish to install |project| (note that you can also safely keep it all in -the :file:`stage` directory), you can use - -.. code-block:: console - - $ make install - -By default, this will copy the :file:`stage` directory to :file:`/usr/local`. To -override this, you can add the ``-DCMAKE_INSTALL_PREFIX=<INSTALL PATH>`` flag to -your ``cmake`` call. - -After the installation, you should be able to delete the whole source folder. To -ensure that everything works, you can use a set of automated "sanity checks". -Please follow the instructions in :file:`extras/sanity_checks/README` to setup -and run those tests after moving the source folder. If everything works, you can -safely delete the whole source folder. - - -.. |qmean| replace:: QMEAN -.. |eigen3| replace:: Eigen 3 -.. |openmm| replace:: OpenMM -.. _qmean: https://swissmodel.expasy.org/qmean/ -.. _ost_l: https://www.OpenStructure.org -.. _cmake: https://cmake.org/ -.. _python: https://www.python.org/ -.. _boost: https://www.boost.org/ -.. _eigen3: http://eigen.tuxfamily.org/index.php?title=Main_Page -.. _openmm: http://openmm.org - -.. LocalWords: cmake makefiles CMakeLists txt DOCTEST LINKCHECK conf html -.. LocalWords: doctest linkcheck qmean DQMEAN eigen CMakeCache -.. LocalWords: OPTIMIZE +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +.. _building-promod: + +Building |project| +================================================================================ + +-------------------------------------------------------------------------------- +Dependencies +-------------------------------------------------------------------------------- + +|project| is build on top of |ost_l|_ (|ost_s|), requiring at least version +|ost_version|. |ost_s| must be configured and compiled with ``ENABLE_MM=1`` to +use |openmm|_. To create the build system, |cmake|_ is required. The same +versions of |python|_ and |boost|_ are needed as used in |ost_s|. For |eigen3|_ +we need at least version 3.3.0. To build the documentation, |sphinx|_ is +required. We do not provide backwards compatibility to Python 2.7. The last +release supporting Python 2.7 is 2.1.0 which also requires |ost_s| to be +compiled with Python 2.7. + +The currently preferred versions are: + +* |ost_s|_ |ost_version| +* |openmm|_ 7.1.1 +* |cmake|_ 3.12.1 +* |python|_ 3.6.0 +* |boost|_ 1.68.0 +* |eigen3|_ 3.3.1 +* |sphinx|_ 1.3.1 + +-------------------------------------------------------------------------------- + Using |cmake| +-------------------------------------------------------------------------------- +|cmake| is used to configure the build system and in the end produces makefiles +and certain directories needed for building |project|. Basically it is called +right from a shell with the directory containing the top-level +:file:`CMakeLists.txt` as an argument. The preferred approach is to generate a +build folder and configure and compile in there: + +.. code-block:: console + + # execute this in the ProMod3 root folder + $ mkdir build + $ cd build + $ cmake .. -DOST_ROOT=<PATH TO OST> + +For us, at least pointer to the |ost_s| installation directory is needed, +handed over to |cmake| by ``-D`` into the variable ``OST_ROOT`` (e.g. |ost_s| +headers would be located in ``OST_ROOT/include/ost``). + +Similarly, one can specify folders for |boost|, |python| and |eigen3| +if multiple versions exist and/or they are not installed in a default location. +These are set with the ``BOOST_ROOT`` (make sure that's the same as for |ost_s|), +``PYTHON_ROOT`` and ``EIGEN3_INCLUDE_DIR``. + +Here is a list of more options used within |project|: + +* ``DISABLE_DOCUMENTATION`` Don't build documentation, don't search for |sphinx| +* ``DISABLE_DOCTEST`` Don't run example code from documentation on + ``make check`` (implicit by ``DISABLE_DOCUMENTATION``) +* ``DISABLE_LINKCHECK`` Don't test links from documentation on ``make check`` + (implicit by ``DISABLE_DOCUMENTATION``) +* ``ENABLE_SSE`` Allow for more agressive optimization by adding -msse4 flag to + the compiler. At some places within the code, we use SSE intrinsics explicitely. + This is only enabled if |ost_s| has been compiled with single precision. + (``OST_DOUBLE_PRECISION`` flag) + +Since we use |ost_s| in the background, some of its options for |cmake| are +also relevant, here. Basically they need to be set to exactly the same value. +Even if |project| builds with different settings, it may start producing funny +results at an unexpected point. If you do not know the values, grep the option +in the :file:`CMakeCache.txt` of |ost_s|: + +* ``OPTIMIZE`` +* ``OST_DOUBLE_PRECISION`` + +.. doesn't work (yet?) + Instead of providing all those options at the command line, you can also use + ``ccmake`` instead of ``cmake``, which allows you to set the |cmake| variables + interactively. Press 'c' to try to configure the build. If it fails, enter the + requested paths and configure again. Advanced settings can be edited by + pressing 't'. + +Instead of calling |cmake| by yourself, there is the :file:`conf-scripts` +directory, providing smallish scripts to invoke |cmake| the right way for +various systems. Usually those scripts just need the |ost_s| path +and the location of the top-level :file:`CMakeLists.txt`. + +As mentioned earlier, we highly recommend to use out-of-source builds. +This way, you can have several builds with different configurations. Also if +anything goes wrong, just remove the build directory to get to a clean state +again. No searching for |cmake| cache files or checking if certain files +really got rebuild and similar things required. + +-------------------------------------------------------------------------------- +Running Make +-------------------------------------------------------------------------------- +After configuring, you want to build |project| by + +.. code-block:: console + + $ make + +to populate the :file:`stage` directory with a ready-to-go version of the +latest code. + +.. index:: + single: Make targets + +Beside the usual ``make all`` and other default targets, there are a few +special targets: + +* ``check`` :index:`make check` Runs unit tests and if |cmake| was invoked in + its standard configuration also documentation examples (``doctest``) and + links in the doc. (``linkcheck``) are checked +* ``html`` :index:`make html` Creates documentation as web page using the + |sphinx| ``html`` builder +* ``man`` :index:`make man` Creates a manual page using the |sphinx| ``man`` + builder +* ``doc`` :index:`make doc` Creates documentation using the ``html`` and + ``man`` targets +* ``help`` :index:`make help` Prints a list of targets available + +-------------------------------------------------------------------------------- +Installing |project| +-------------------------------------------------------------------------------- +If you wish to install |project| (note that you can also safely keep it all in +the :file:`stage` directory), you can use + +.. code-block:: console + + $ make install + +By default, this will copy the :file:`stage` directory to :file:`/usr/local`. To +override this, you can add the ``-DCMAKE_INSTALL_PREFIX=<INSTALL PATH>`` flag to +your ``cmake`` call. + +After the installation, you should be able to delete the whole source folder. To +ensure that everything works, you can use a set of automated "sanity checks". +Please follow the instructions in :file:`extras/sanity_checks/README` to setup +and run those tests after moving the source folder. If everything works, you can +safely delete the whole source folder. + + +.. |qmean| replace:: QMEAN +.. |eigen3| replace:: Eigen 3 +.. |openmm| replace:: OpenMM +.. _qmean: https://swissmodel.expasy.org/qmean/ +.. _ost_l: https://www.OpenStructure.org +.. _cmake: https://cmake.org/ +.. _python: https://www.python.org/ +.. _boost: https://www.boost.org/ +.. _eigen3: http://eigen.tuxfamily.org/index.php?title=Main_Page +.. _openmm: http://openmm.org + +.. LocalWords: cmake makefiles CMakeLists txt DOCTEST LINKCHECK conf html +.. LocalWords: doctest linkcheck qmean DQMEAN eigen CMakeCache +.. LocalWords: OPTIMIZE diff --git a/doc/html/_sources/changelog.rst.txt b/doc/html/_sources/changelog.txt similarity index 100% rename from doc/html/_sources/changelog.rst.txt rename to doc/html/_sources/changelog.txt diff --git a/doc/html/_sources/cmake/index.rst.txt b/doc/html/_sources/cmake/index.txt similarity index 100% rename from doc/html/_sources/cmake/index.rst.txt rename to doc/html/_sources/cmake/index.txt diff --git a/doc/html/_sources/container/docker.rst.txt b/doc/html/_sources/container/docker.txt similarity index 97% rename from doc/html/_sources/container/docker.rst.txt rename to doc/html/_sources/container/docker.txt index 17929ab66286baafe6adcb431401caf96d1bff2f..9ac5eb13cbe5e708540972c8258f5a56da2d4245 100644 --- a/doc/html/_sources/container/docker.rst.txt +++ b/doc/html/_sources/container/docker.txt @@ -1,134 +1,134 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Docker -====== - -|project|'s Own Docker Registry -------------------------------- - -For the current stable release of |project|, its -`GitLab project <https://git.scicore.unibas.ch/schwede/ProMod3>`_ is equipped with its own -`registry for Docker images <https://git.scicore.unibas.ch/schwede/ProMod3/container_registry>`_. There you -can explore the current tag and simply pull a ready made built: - -.. code-block:: bash - - docker pull registry.scicore.unibas.ch/schwede/promod3:<TAG> - -Build Docker Image ------------------- - -In order to build the image: - -.. code-block:: bash - - docker build --tag <IMAGE_NAME> -f Dockerfile <PATH_TO_DOCKERFILE_DIR> - -You can chose any image name (tag) eg. promod. - - -Run scripts and actions with pm executable ------------------------------------------- - -If script or action requires some external files eg. PDBs, they have to be located in the -path accessible via mounted volume and should be accessed via docker (NOT LOCAL) -path. Eg. assuming that we have a struc.pdb file in /home/<USER>/pdbs directory and -a script.py in /home/<USER> we could mount the /home/<USER> to /home in docker as -above by specifying -v /home/<USER>:/home. To run the script we thus need to -provide the (relative) path to the script and (relative) path to the file eg: - -.. code-block:: bash - - docker run --rm -v /home/<USER>:/home <IMAGE_NAME> script.py \ - pdbs/struct.pdb - -or with absolute paths: - -.. code-block:: bash - - docker run --rm -v /home/<USER>:/home <IMAGE_NAME> /home/script.py \ - /home/pdbs/struct.pdb - -An alternative is to mount the current working directory into the docker home: - -.. code-block:: bash - - docker run --rm -v $(pwd):/home <IMAGE_NAME> script.py pdbs/struct.pdb - - -.. _docker_compound_lib: - -The Compound Library --------------------- - -At build time of the container, a :class:`~ost.conop.CompoundLib` is generated. -Compound libraries contain information on chemical compounds, such as their -connectivity, chemical class and one-letter-code. The compound library has -several uses, but the most important one is to provide the connectivy -information for the rule-based processor. - -The compound library is generated with the components.cif dictionary provided by -the PDB. As the PDB updates regularly, the compound library shipped with the -container is quickly outdated. For most use cases, this is not problematic. -However, if you rely on correct connectivity information of the latest and -greatest compounds, you have to keep the compound library up to date manually. - -The suggested way of doing this is to generate your own compound library and -mount it into the container where the original compound lib resides to -override it. - -The simplest way to create a compound library is to use the -:program:`chemdict_tool` available in the container. The program allows you -to import the chemical description of the compounds from a mmCIF dictionary, -e.g. the components.cif dictionary provided by the PDB. -The latest dictionary can be downloaded from the -`wwPDB site <http://www.wwpdb.org/ccd.html>`_. -The files are rather large, it is therefore recommended to download the -gzipped version. - -After downloading the file use :program:`chemdict_tool` in the container to -convert the mmCIF dictionary into our internal format: - -.. code-block:: bash - - docker run --rm -v $(pwd):/home --entrypoint chemdict_tool <IMAGE_NAME> \ - create components.cif.gz compounds.chemlib - -To run a script with the upated compound library, use the -v option for mounting/overriding: - -.. code-block:: bash - - docker run --rm -v /home/<USER>:/home \ - -v <COMPLIB_DIR_LOCALHOST>/compounds.chemlib:<COMPLIB_DIR_CONTAINER>/compounds.chemlib \ - <IMAGE_NAME> script.py pdbs/struct.pdb - -with COMPLIB_DIR_LOCALHOST being the directory that contains the newly generated -compound library with name compounds.chemlib and COMPLIB_DIR_CONTAINER the -according path in the container. -If you didnt change anything in the Dockerfile, the latter should be -/usr/local/share/openstructure - -You can check whether the default lib is successfully overriden by looking at the -output when running a Python script with following code in the container: - -.. code-block:: python - - import promod3 # required to setup default lib - from ost import conop - lib = conop.GetDefaultLib() - print(lib.GetCreationDate()) - +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Docker +====== + +|project|'s Own Docker Registry +------------------------------- + +For the current stable release of |project|, its +`GitLab project <https://git.scicore.unibas.ch/schwede/ProMod3>`_ is equipped with its own +`registry for Docker images <https://git.scicore.unibas.ch/schwede/ProMod3/container_registry>`_. There you +can explore the current tag and simply pull a ready made built: + +.. code-block:: bash + + docker pull registry.scicore.unibas.ch/schwede/promod3:<TAG> + +Build Docker Image +------------------ + +In order to build the image: + +.. code-block:: bash + + docker build --tag <IMAGE_NAME> -f Dockerfile <PATH_TO_DOCKERFILE_DIR> + +You can chose any image name (tag) eg. promod. + + +Run scripts and actions with pm executable +------------------------------------------ + +If script or action requires some external files eg. PDBs, they have to be located in the +path accessible via mounted volume and should be accessed via docker (NOT LOCAL) +path. Eg. assuming that we have a struc.pdb file in /home/<USER>/pdbs directory and +a script.py in /home/<USER> we could mount the /home/<USER> to /home in docker as +above by specifying -v /home/<USER>:/home. To run the script we thus need to +provide the (relative) path to the script and (relative) path to the file eg: + +.. code-block:: bash + + docker run --rm -v /home/<USER>:/home <IMAGE_NAME> script.py \ + pdbs/struct.pdb + +or with absolute paths: + +.. code-block:: bash + + docker run --rm -v /home/<USER>:/home <IMAGE_NAME> /home/script.py \ + /home/pdbs/struct.pdb + +An alternative is to mount the current working directory into the docker home: + +.. code-block:: bash + + docker run --rm -v $(pwd):/home <IMAGE_NAME> script.py pdbs/struct.pdb + + +.. _docker_compound_lib: + +The Compound Library +-------------------- + +At build time of the container, a :class:`~ost.conop.CompoundLib` is generated. +Compound libraries contain information on chemical compounds, such as their +connectivity, chemical class and one-letter-code. The compound library has +several uses, but the most important one is to provide the connectivy +information for the rule-based processor. + +The compound library is generated with the components.cif dictionary provided by +the PDB. As the PDB updates regularly, the compound library shipped with the +container is quickly outdated. For most use cases, this is not problematic. +However, if you rely on correct connectivity information of the latest and +greatest compounds, you have to keep the compound library up to date manually. + +The suggested way of doing this is to generate your own compound library and +mount it into the container where the original compound lib resides to +override it. + +The simplest way to create a compound library is to use the +:program:`chemdict_tool` available in the container. The program allows you +to import the chemical description of the compounds from a mmCIF dictionary, +e.g. the components.cif dictionary provided by the PDB. +The latest dictionary can be downloaded from the +`wwPDB site <http://www.wwpdb.org/ccd.html>`_. +The files are rather large, it is therefore recommended to download the +gzipped version. + +After downloading the file use :program:`chemdict_tool` in the container to +convert the mmCIF dictionary into our internal format: + +.. code-block:: bash + + docker run --rm -v $(pwd):/home --entrypoint chemdict_tool <IMAGE_NAME> \ + create components.cif.gz compounds.chemlib + +To run a script with the upated compound library, use the -v option for mounting/overriding: + +.. code-block:: bash + + docker run --rm -v /home/<USER>:/home \ + -v <COMPLIB_DIR_LOCALHOST>/compounds.chemlib:<COMPLIB_DIR_CONTAINER>/compounds.chemlib \ + <IMAGE_NAME> script.py pdbs/struct.pdb + +with COMPLIB_DIR_LOCALHOST being the directory that contains the newly generated +compound library with name compounds.chemlib and COMPLIB_DIR_CONTAINER the +according path in the container. +If you didnt change anything in the Dockerfile, the latter should be +/usr/local/share/openstructure + +You can check whether the default lib is successfully overriden by looking at the +output when running a Python script with following code in the container: + +.. code-block:: python + + import promod3 # required to setup default lib + from ost import conop + lib = conop.GetDefaultLib() + print(lib.GetCreationDate()) + diff --git a/doc/html/_sources/container/index.rst.txt b/doc/html/_sources/container/index.txt similarity index 94% rename from doc/html/_sources/container/index.rst.txt rename to doc/html/_sources/container/index.txt index d8d47d063bd5319dae9eea15bf73e09fb34e2b55..00732135f52658da7c45670d682a39dc8cc77654 100644 --- a/doc/html/_sources/container/index.rst.txt +++ b/doc/html/_sources/container/index.txt @@ -1,36 +1,36 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -|project| and Containers -====================== - - -|project| offers build recipes for Docker and Singularity in -<PATH_TO_PROMOD3_CHECKOUT>/container. To avoid code duplication, -the Singularity container bootstraps from the Docker one and adds -some sugar on top. - -.. toctree:: - :maxdepth: 1 - - Docker <docker> - Singularity <singularity> - - - - - - +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +|project| and Containers +======================== + + +|project| offers build recipes for Docker and Singularity in +<PATH_TO_PROMOD3_CHECKOUT>/container. To avoid code duplication, +the Singularity container bootstraps from the Docker one and adds +some sugar on top. + +.. toctree:: + :maxdepth: 1 + + Docker <docker> + Singularity <singularity> + + + + + + diff --git a/doc/html/_sources/container/singularity.rst.txt b/doc/html/_sources/container/singularity.txt similarity index 97% rename from doc/html/_sources/container/singularity.rst.txt rename to doc/html/_sources/container/singularity.txt index 4166f85904ccef1c6219788fac15d8bd9ad45dd3..30d7e8538d76e3ed66aeb3a97859262a7d105ce4 100644 --- a/doc/html/_sources/container/singularity.rst.txt +++ b/doc/html/_sources/container/singularity.txt @@ -1,90 +1,90 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Singularity -=========== - -We do not provide a "standalone" Singularity image, but rather bootstrap from a -Docker image. - -Build the image with: - -.. code-block:: bash - - sudo singularity build promod.img Singularity - -Available apps --------------- - -This container includes the following apps: - * **OST** - OpenStructure executable - * **PM** - |project| executable - * **IPython** - OST/|project|-powered iPython shell - * **Notebook** - A Jupyter notebook playground with OST, |project| and nglview - * **lDDT** - The Local Distance Difference Test - * **Molck** - Molecular checker - * **ChemdictTool** - Creating or update a compound library - -To see the help for each individual app run: - -.. code-block:: bash - - singularity run-help --app <APP NAME> <PATH TO PROMOD IMAGE> - -Eg.: - -.. code-block:: bash - - singularity run-help --app PM promod.img - -To list all available |project| modelling actions: - -.. code-block:: bash - - singularity run --app PM promod.img help - -The Compound Library --------------------- - -You'll have the exact same problem with outdated compound libraries as in the -raw Docker image. You can find more information on that matter in the Docker -section of the documentation: :ref:`docker_compound_lib`. - -The same trick of mounting an up to date compound library from the local host into -the container applies. The two relevant commands for Singularity are building -a new library and mount it. - -Build a new library: - -.. code-block:: bash - - singularity run --app ChemdictTool <IMAGE> create components.cif.gz \ - compounds.chemlib - -Run some script with an updated compound library from localhost: - -.. code-block:: bash - - singularity run \ - -B <COMPLIB_DIR_LOCALHOST>/compounds.chemlib:<COMPLIB_DIR_CONTAINER>/compounds.chemlib \ - --app PM <IMAGE> my_script.py - -Same as for the Docker, if you didn't meddle with the original Dockerfile, -<COMPLIB_DIR_CONTAINER> should be /usr/local/share/openstructure. -<COMPLIB_DIR_LOCALHOST> is the directory that contains the compound lib with the -name compounds.chemlib that you created before. Make sure that everything works -as expected by executing the exact same lines of Python code as described -in the Docker documentation: :ref:`docker_compound_lib`. +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Singularity +=========== + +We do not provide a "standalone" Singularity image, but rather bootstrap from a +Docker image. + +Build the image with: + +.. code-block:: bash + + sudo singularity build promod.img Singularity + +Available apps +-------------- + +This container includes the following apps: + * **OST** - OpenStructure executable + * **PM** - |project| executable + * **IPython** - OST/|project|-powered iPython shell + * **Notebook** - A Jupyter notebook playground with OST, |project| and nglview + * **lDDT** - The Local Distance Difference Test + * **Molck** - Molecular checker + * **ChemdictTool** - Creating or update a compound library + +To see the help for each individual app run: + +.. code-block:: bash + + singularity run-help --app <APP NAME> <PATH TO PROMOD IMAGE> + +Eg.: + +.. code-block:: bash + + singularity run-help --app PM promod.img + +To list all available |project| modelling actions: + +.. code-block:: bash + + singularity run --app PM promod.img help + +The Compound Library +-------------------- + +You'll have the exact same problem with outdated compound libraries as in the +raw Docker image. You can find more information on that matter in the Docker +section of the documentation: :ref:`docker_compound_lib`. + +The same trick of mounting an up to date compound library from the local host into +the container applies. The two relevant commands for Singularity are building +a new library and mount it. + +Build a new library: + +.. code-block:: bash + + singularity run --app ChemdictTool <IMAGE> create components.cif.gz \ + compounds.chemlib + +Run some script with an updated compound library from localhost: + +.. code-block:: bash + + singularity run \ + -B <COMPLIB_DIR_LOCALHOST>/compounds.chemlib:<COMPLIB_DIR_CONTAINER>/compounds.chemlib \ + --app PM <IMAGE> my_script.py + +Same as for the Docker, if you didn't meddle with the original Dockerfile, +<COMPLIB_DIR_CONTAINER> should be /usr/local/share/openstructure. +<COMPLIB_DIR_LOCALHOST> is the directory that contains the compound lib with the +name compounds.chemlib that you created before. Make sure that everything works +as expected by executing the exact same lines of Python code as described +in the Docker documentation: :ref:`docker_compound_lib`. diff --git a/doc/html/_sources/contributing.rst.txt b/doc/html/_sources/contributing.txt similarity index 97% rename from doc/html/_sources/contributing.rst.txt rename to doc/html/_sources/contributing.txt index 0e33e7c73cc2ad761f2de743de6706b33a8f67e8..7f7e75acf5d6a2714b7926c6aa59a25b66be2551 100644 --- a/doc/html/_sources/contributing.rst.txt +++ b/doc/html/_sources/contributing.txt @@ -1,593 +1,593 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - -.. _how-to-contribute: - -Contributing -================================================================================ - -Code contributions are handled through the git repository hosted at sciCORE, -University of Basel: https://git.scicore.unibas.ch/schwede/ProMod3. -Get in touch with the main developers if you have a fantastic new feature -and need an account there. -The following should explain, in a coarse grain manner, how to add new features -to |project|. The most general advice would be to use existing bits and pieces -as examples and to be consistent with what you already find here. - --------------------------------------------------------------------------------- -How To Share Your Own Script --------------------------------------------------------------------------------- -If you have a useful script using |project| that you want to share, it should go -as a subfolder into the :file:`extras/external_scripts` folder. Make sure to -describe the use and purpose of the script in a short :file:`README` including -working commands on how to use it. - -.. _how-to-start-your-own-module: - --------------------------------------------------------------------------------- -How To Start Your Own Module --------------------------------------------------------------------------------- -This is just a walk-through how the topics from above work together when you -start your own module. For the entry point, lets assume that you already cloned -the repository into a directory and just changed into it. - -All new features should take off from the ``develop`` branch. That way, they -work fine with all the other new fellows waiting for release right from the -beginning. Therefore you need to switch branches as a first step. |git| will -tell you for which branch you went, a story of failure otherwise. - -.. code-block:: console - - $ git checkout develop - Switched to branch 'develop' - -Sitting on top of the right code basis, you should just spawn your own branch -from it. As an example, your feature will go by the name of 'sidechain'. - -.. code-block:: console - - $ git checkout -b sidechain - Switched to a new branch 'sidechain' - -This time, |git| should tell you about going for **a new** branch. - -Before starting to create anything for real, now is the perfect moment to -install our very own |git| hook to check some coding rules on commit. - -.. code-block:: console - - $ cp extras/pre_commit/pre-commit .git/hooks/ - -With that in place, changes which break our coding standards will abort any -commit. - -Now create the directory structure where your project will live. Here is the -list of directories which are likely to be used in every project. - -.. code-block:: console - - $ mkdir -p sidechain/doc - $ mkdir -p sidechain/pymod - $ mkdir -p sidechain/tests - -If you run ``git status`` at this point, you will see basically nothing. That -is, |git| does not admire empty directories. Before you bring your module under -version control, create a couple of files which are always needed. - -.. code-block:: console - - $ touch sidechain/pymod/__init__.py - $ echo ":mod:\`~promod3.sidechain\` - ProMod3 side chain optimiser" \ - >> sidechain/doc/index.rst - $ echo "==========================================================" \ - "======================" >> sidechain/doc/index.rst - -Having an empty :file:`__init__.py` is perfectly fine for |python|, it just -announces a directory as a module. But a blank :file:`index.rst` has the chance -to give |sphinx| quite a headache so you already fill it with a headline for -your documentation. - -For integration with :command:`make`, the build system needs to now about the -new module and its members. This goes for setting up new |cmake| files and -extending some around the directory root. - -.. code-block:: console - - $ touch sidechain/CMakeLists.txt - $ touch sidechain/pymod/CMakeLists.txt - $ touch sidechain/doc/CMakeLists.txt - -Each of those files still needs a bit of content. The simplest one comes from -the module's root, :file:`sidechain/CMakeLists.txt`: - -.. code-block:: cmake - :linenos: - - add_subdirectory(pymod) - add_subdirectory(doc) - -Those two directives just tell |cmake| to go and look in directories -:file:`pymod` and :file:`doc` below the current path for more |cmake| -configurations. The next level in :file:`CMakeLists.txt` magic comes for the -:file:`doc` directory: - -.. code-block:: cmake - :linenos: - - set(SIDECHAIN_RST - index.rst - ) - - add_doc_source(NAME sidechain RST ${SIDECHAIN_RST}) - -``add_doc_source`` is our custom |cmake| macro to register -|restructuredtext_abrv| files for the documentation. On running -:command:`make`, those files are placed in a :file:`doc/source` directory tree -within the build directory. Each new submodule in your project should be -covered by its own documentation entity, extending the list in ``RST``. -Maintaining readability, its good practice to store this list in a separate -variable, called ``SIDECHAIN_RST`` here. - -For the actual code, you should keep in mind that a |python| module may be -rather complex. There is for sure |python| code, there could be a bit of |C++| -and conditional compilation. In rare cases you also want to modify the -directory structure of the package. All this has to be declared in the -:file:`pymod` subtree. We cannot enumerate all specialities but there should be -a couple of examples around in this repository. Here is the most basic -:file:`CMakeLists.txt`: - -.. code-block:: cmake - :linenos: - - set(SIDECHAIN_PYMOD - __init__.py - ) - - pymod(NAME sidechain PY ${SIDECHAIN_PYMOD}) - -Source files should be again listed in a dedicated variable. Later, you -probably add some |C++| code and settings diverging from the defaults via the -``pymod`` macro. This is where things clutter up quite quickly. As set up here, -your project would be added as a module ``sidechain`` in the |project| -|python| package tree. - -The final step towards |cmake| is to register your module's directory in the -top level :file:`CMakeLists.txt`: - -.. code-block:: cmake - :linenos: - :emphasize-lines: 8 - - ## <lots of cmake commands...> - - ## sub dirs to be recognised by CMake - ## e.g. add_subdirectory(src), subdirs have their own CMakeLists.txt - add_subdirectory(config) - add_subdirectory(core) - add_subdirectory(modelling) - add_subdirectory(sidechain) - add_subdirectory(loop) - add_subdirectory(scripts) - add_subdirectory(actions) - add_subdirectory(extras) - add_subdirectory(cmake_support) - - ## <lots of cmake commands...> - -All that needs to be done for |cmake| to recognise your module is adding its -directory as shown in line 8. - -This was the final step to set up the build system. Running |cmake| at this -point would create the build environment in place. But building software in -your code repository has several drawbacks. First of all, it puts all kind of -new files in the directory tree and ``git status`` would show them all. Then -its very likely, that manual intervention is needed after ``make clean``. Plus, -this would be very static. Imagine at one point you want to switch on all -debugging flags for your |C++| code. So you either clean the whole repository -and rebuild or you go by two separated repositories copying code changes from A -to B. The solution to this is instead of 'in place' you go 'out of source'. You -still can stay in your repository while being out of the source tree by using -sub-directories. |project| comes with a dedicated prefix 'build*' in -:file:`.gitignore`. Have a directory :file:`build` and :file:`build-dbg` and it -will not show up in ``git status``. - -.. code-block:: console - - $ mkdir build - $ cd build - -To actually create all the makefiles and generated files, you may use one of -the configuration scripts from the :file:`conf-scripts` directory. Usually -those scripts only need to be pointed to an |ost_s| staging tree. Even if you -are on a system not covered by available scripts, their code may help you at -the |cmake| command. Once you managed to conquer a new system, feel free to add -a new configuration script. The following example assumes |fedora| 19. - -.. code-block:: console - - $ ../conf-scripts/fedora-19-conf ../../ost.git/stage - -From this point, :command:`make` should work and you could start adding your -files to the repository using ``git add``. - -Up to now, we did not cover the :file:`tests` branch of a new module. But its -good practice to develop new functionality along tests and that right from the -beginning. At some point, new code needs testing anyway to see if it does what -it should, so just do this by writing unit tests. Test sources are stored in -files with a prefix :file:`test_` and usually come per submodule instead of -sporting a single monolithic :file:`test_sidechain_reconstruction.py`. - -|python| code is evaluated using its own :py_docs:`unit testing framework -<library/unittest.html>` with a little help from |ost_s|_ (|C++| uses the -|boost| `Test Library -<https://www.boost.org/doc/libs/1_53_0/libs/test/doc/html/index.html>`_). The -basic scheme is to import your module, subclass :class:`unittest.TestCase` and -make the whole file runnable as script using the most common |nameattr|_ -attribute. As an example we test the -:func:`promod3.modelling.ReconstructSidechains` function: - -.. literalinclude:: ../../tests/doc/scripts/unittest_sidechain_reconstruction.py - :linenos: - -To hook up your tests with ``make codetest`` (and to create a -``test_reconstruct_sidechains.py_run`` target), everything has to be introduced to |cmake|. -First, tell |cmake| to search :file:`tests` for a :file:`CMakeLists.txt` file -by extending the list of sub-directories in :file:`sidechain/CMakeLists.txt`: - -.. code-block:: cmake - :linenos: - - add_subdirectory(pymod) - add_subdirectory(doc) - add_subdirectory(tests) - -Then fill :file:`sidechain/tests/CMakeLists.txt` with your new test script and -``make`` will recognise the changes next time it is run and fix the rest for -you. - -.. code-block:: cmake - :linenos: - - set(SIDECHAIN_UNIT_TESTS - test_reconstruct_sidechains.py - ) - - set(SIDECHAIN_TEST_DATA - data/1eye.pdb - data/1eye_rec.pdb - ) - - promod3_unittest(MODULE sidechain - SOURCES "${SIDECHAIN_UNIT_TESTS}" - DATA "${SIDECHAIN_TEST_DATA}") - -Note how we listed the test data that we require in the unit test by defining -``SIDECHAIN_TEST_DATA``. - -Now tests should be available by ``make check``, ``make codetest`` and -``make test_reconstruct_sidechains.py_run``. - -.. _how-to-start-your-own-action: - --------------------------------------------------------------------------------- -How To Start Your Own Action --------------------------------------------------------------------------------- -In |project| we call scripts/ programs 'actions'. They are started by a -launcher found in your staging directory at :file:`stage/bin/pm`. This little -guy helps keeping the shell environment in the right mood to carry out your -job. So usually you will start an action by - -.. code-block:: console - - $ stage/bin/pm help - -To start your own action, follow :ref:`how-to-start-your-own-module` until -creating a directory structure for a new module. Also **do** go for a dedicated -branch for action-development. There you can produce intermediate commits while -other branches stay clean in case you have to do some work there which needs to -get public. - -After preparing your repository its time to create a file for the action. That -is a bit different than for modules. Assuming we are sitting in the -repository's root: - -.. code-block:: console - - $ touch action/pm-awesome-action - $ chmod +x action/pm-awesome-action - -Two things are important here: actions are prefixed with :file:`pm-`, so they -are recognised by the :file:`pm` launcher. Secondly, action files need to be -executable, which does not propagate if you do it **after** the first call to -``make``. - -To get the new action recognised by ``make`` to be placed in -:file:`stage/libexec/promod3`, it has to be registered with |cmake| in -:file:`actions/CMakeLists.txt`: - -.. code-block:: cmake - :linenos: - - add_custom_target(actions ALL) - add_subdirectory(tests) - - pm_action_init() - pm_action(pm-build-rawmodel actions) - pm_action(pm-help actions) - pm_action(pm-awesome-action actions) - -Just add your action with its full filename with a call to -:cmake:command:`pm_action` at the end of the file. - -Before coding your action, lets set up unit tests for it. Usually when adding -features, you will immediately try them, check that everything works as -intended, etc.. |project| helps you automatising those tests so its rather easy -to check later, if code changes break anything. For actions, we are using -:class:`test_actions.ActionTestCase <test_actions>` instead of -:class:`unittest.TestCase`. Since testing has a lot in common for different -actions, we decided to put up a little wrapper around this subject. See the -documentation of :class:`ActionTestCase <test_actions>` for more information. - -Now its time to fill your action with code. Instead of reading a lot more of -explanations, it should be easy to go by examples from the :file:`actions` -directory. There are only two really important points: - -* No shebang line (``#! /usr/bin/python``) in your action! Also no - ``#! /usr/bin/env python`` or anything like this. This may lead to funny side - effects, like calling a |python| interpreter from outside a virtual - environment or a different version |ost_s|. Basically it may mess up the - environment your action is running in. Actions are called by :file:`pm`, - that's enough to get everything just right. - -* The action of your action happens in the |mainattr|_ branch of the script. - Your action will have own function definitions, variables and all the bells - and whistles. Hiding behind |mainattr|_ keeps everything separated and makes - things easier when it gets to debugging. So just after - - .. code-block:: python - - import alot - - def functions_specific_to_your_action(...): - - if __name__ == "__main__": - <put together what your action should do here> - - start putting your action together. - --------------------------------------------------------------------------------- -How To Write Your Own Scorer --------------------------------------------------------------------------------- -The :mod:`~promod3.scoring` module contains several classes to make it easy to -add new scorers. As usual, you can use existing bits and pieces as examples and -try to be consistent with it. Here, we quickly give an overview of the separation of concerns: - -- :class:`~promod3.scoring.BackboneScorer`: - Defines the scorer with all its parameters and energies and the functionality - to compute scores. Scorers are setup by the user (or loaded from disk) if - necessary. - - Scorers do not store any environment data. If needed they can be linked via - pointers to env. data kept and updated by the score env.. Also, they may be - linked to a score env. listener to handle specially organized data. - -- :class:`~promod3.scoring.BackboneScoreEnv`: - Handles all model-specific data used by the scorers. The user sets up the - environment and updates it whenever something changes. - - Residue-specific data is kept in arrays of fixed size (see :class:`IdxHandler` - for how the indexing is done). An array of bool-like integers can be accessed - with "GetEnvSetData()" and used to determine whether env. data is available - for a certain residue. The list of sequences handled by the env. is fixed as - otherwise pointers into the data-storage would be invalidated. - -- :class:`~promod3.scoring.BackboneScoreEnvListener`: - Allows to have score-specific data to be extracted from the model-specific - data available in the score env. class. It is commonly used to define - spatially organized structures to quickly access other atoms within a given - radius. - - All score env. listener are attached to a master score env. and they get - updated when the score env. gets updated. Multiple scorers can use the same - listener. Listeners are not accessible by anyone outside of the scorers and - the score env. object responsible for it. Since the user doesn't see them, - there is no Python API for them. - -- :class:`~promod3.loop.IdxHandler`: - This takes care of translating chain indices (range [0, GetNumChains()]) - and residue numbers (range [1, GetChainSize(chain_idx)]) into the indexing - used internally by the score env. (range [0, GetNumResidues()]). - The score env. takes care of this object and makes it accessible for scorers. - -As an example, let's look at the :class:`~promod3.scoring.CBPackingScorer`: - -- it contains score-specific parameters and energies which can be either - set manually or loaded from disk -- it is linked to a score env. listener of type :class:`CBetaEnvListener`, - which provides a :meth:`FindWithin` function to quickly access neighboring - CB atoms (note that the same listener is also used by the - :class:`~promod3.scoring.CBetaScorer`) -- a pointer to the :class:`IdxHandler` object of the score env. is extracted - when the environment is attached and is used to get sequence-specific data - when calculating the score - -As a second example, look at the :class:`~promod3.scoring.PairwiseScorer`: - -- it does not require any score-specific setup -- it is linked to residue-specific CA/CB positions and the pairwise functions - defined in the score env. -- "GetEnvSetData()" of the score env. is used to determine if env. data is - available for a given residue - --------------------------------------------------------------------------------- -Quick testing of |project| features --------------------------------------------------------------------------------- -High-level features of |project|, can be tested directly in an interactive -Python shell. First, you need to tell Python, where to find the modules by -defining the ``PYTHONPATH`` env. variable in your shell to include the -:file:`lib64/python3.6/site-packages` folders of the :file:`stage` folders of -|project| and |ost_s|. For convenience, you can place the export-command in -your :file:`.bashrc` (or so). Then, you can import modules from ``promod3`` -and ``ost`` as in the example codes shown in this documentation. - -To test low-level |C++| features, you can copy the :file:`extras/test_code` -folder and adapt it for your purposes. First, you will have to fix the paths -to |project| and |ost_s| in the :file:`Makefile` by changing the following -lines: - -.. code-block:: make - - # path to OST and ProMod3 stage - OST_ROOT = <DEFINEME>/ost/build/stage - PROMOD3_ROOT = <DEFINEME>/ProMod3/build/stage - -Afterwards, you should be able to compile and run small sample codes that use -|project| and |ost_s| as in the :file:`test.cc` example. You can compile your -code by executing ``make`` and run it with ``make run``. Also, remember to set -the ``PROMOD3_SHARED_DATA_PATH`` variable if you moved the stage folder. - --------------------------------------------------------------------------------- -Unit Tests --------------------------------------------------------------------------------- -Of course your code should contain tests. But we cannot give an elaborate -tutorial on unit testing here. Again, have a look at how other modules treat -this topic and then there is quite a lot of educated material to be found on -the Internet. Nevertheless, here is a short list of most important advices: - -* Tests go into dedicated scripts/ source files in the :file:`tests` directory -* No external data dependencies, if tests need data, they find it in - :file:`tests/data` -* If 'exotic' |python| modules are used, consider making the test aware of the - possibility that the module is not available -* Tests do not fail on purpose -* No failing tests, that are considered 'this does not affect anything' - -To run the whole test suite, ``make check`` is enough. This will also trigger -the ``doctest`` and ``linkcheck`` targets. Alternatively you can run: - -- ``make codetest`` to run only unit tests from all modules in |project|. - Note that ``make check`` does nothing more but invoking ``doctest``, - ``linkcheck`` and ``codetest`` as dependencies. -- ``make check_xml`` to run tests without stopping after each failure. - Failures are shortly reported to the command line and the result of each test - is written in 'PYTEST-<TestCaseName>.xml' files in the 'tests' subfolders of - your 'build' folder. -- Run single tests: - assuming you have :file:`your_module/tests/test_awesome_feature.py`, |cmake| - will provide you with a target ``test_awesome_feature.py_run``. If your module - has |C++| tests, those will be available by ``test_suite_your_module_run``. - -.. _writing-documentation: - --------------------------------------------------------------------------------- -Writing Documentation --------------------------------------------------------------------------------- -To create documentation, we use |sphinx|_ to go from |restructuredtext| -(|restructuredtext_abrv|) files and API documentation in source files to HTML -or man pages. - -For each module, at least one |restructuredtext_abrv| document exists, that -gives an idea of concepts and pulls in interfaces from source. Copying files to -the build directory, issuing the |sphinx| call and everything else that is -needed to create the actual documentation is done by |cmake| and its makefiles. -Hence, the :file:`CMakeLists.txt` of the :file:`doc` directory of a module is -crucial. For documentation which does not relate to a particular module, the -repository comes with a top-level :file:`doc` directory. - -If you write new functionality for |project|, or fix bugs, feel free to extend -the :file:`CHANGELOG` file. It will be automatically pulled into the -documentation. - -It is highly recommended to add code examples with your documentation. For that -purpose, you should write a fully runnable script which is to be placed in the -:file:`doc/tests/scripts` directory. The script is to be runnable from within -the :file:`doc/tests` directory as ``pm SCRIPTPATH`` and may use data stored in -the :file:`doc/tests/data` directory. The script and any data needed by it, must -then be referenced in the :file:`doc/tests/CMakeLists.txt` file. Afterwards, -they can be included in the documentation using the literalinclude -directive. -For instance, if you add a new example code :file:`loop_main.py`, -you would add it in your module documentation as follows: - -.. code-block:: rest - - .. literalinclude:: ../../../tests/doc/scripts/loop_main.py - -If your example does not relate to a specific module and the documentation is -in the top-level :file:`doc` directory, you need to drop one of the ``..`` as -follows: - -.. code-block:: rest - - .. literalinclude:: ../../tests/doc/scripts/hello_world.py - -To ensure that the code examples keep on working, a unit test has to be defined -in :file:`doc/tests/test_doctests.py`. Each example code is run by a dedicated -test function. Usually, the codes are run and the return code is checked. -Command-line output or resulting files can also be checked (see existing test -codes for examples). A few more guidelines for example codes: - -- If it generates files as output, please delete them after checking them. -- If it requires external modules or binaries, check for their availablity. If - the external dependencies are not available, output a warning and skip the - test. - -A copy of the generated html documentation is kept in :file:`doc/html` so that -there is no need to compile |project| to read it. Our policy is to keep that -folder in-sync with the latest documentation at least on the ``master`` branch -(i.e. for every release). You can use the following commands to do the update: - -.. code-block:: console - - $ cd <PROMOD3_PATH>/build - $ make html - $ rsync -iv -az --exclude=".*" --delete \ - "stage/share/promod3/html/" "../doc/html" - --------------------------------------------------------------------------------- -Third Party Contributions (License Issues) --------------------------------------------------------------------------------- -For some tasks you may want to make use of third party contributions in your -module, for example - -* calling/ using the output of third party binaries -* external libraries -* smallish bits of source code included into the |project| directory tree -* |python| modules not distributed as part of the |python| - :py_docs:`standard library <library/>` - -Modules from the |python| standard library are covered by the |python| -`license <https://docs.python.org/3.6/license.html>`_ and -licenses is what you have to watch out for with this subject. While the |python| -license is safe to be used, in the past several projects went restrictive -because of exclusive terms of use. Those issues often came from 'academic -licenses', allowing use if free of charge but for commercial entities. To -prevent this is one reason for the existence of |project|. This means, before -utilising external code, third party libraries, basically anything not created -within this project (including pictures, test data, etc.), check licensing. -What cannot be used at all are items without any license. Those things are not -'free' but more in a legally uncertain state. Also forbidden are licenses which -exclude commercial entities. - -There are a lot of rather permissive licenses out there, very often asking for -acknowledgements. We definitively support this. Either go by example phrases -suggested in the license itself or find some nice paragraph yourself and place -it in the documentation. We should also not forget to promote those -contributions to web pages using |project|. - - -.. |fedora| replace:: Fedora -.. |nameattr| replace:: :attr:`__name__` -.. |mainattr| replace:: :attr:`__main__` +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + +.. _how-to-contribute: + +Contributing +================================================================================ + +Code contributions are handled through the git repository hosted at sciCORE, +University of Basel: https://git.scicore.unibas.ch/schwede/ProMod3. +Get in touch with the main developers if you have a fantastic new feature +and need an account there. +The following should explain, in a coarse grain manner, how to add new features +to |project|. The most general advice would be to use existing bits and pieces +as examples and to be consistent with what you already find here. + +-------------------------------------------------------------------------------- +How To Share Your Own Script +-------------------------------------------------------------------------------- +If you have a useful script using |project| that you want to share, it should go +as a subfolder into the :file:`extras/external_scripts` folder. Make sure to +describe the use and purpose of the script in a short :file:`README` including +working commands on how to use it. + +.. _how-to-start-your-own-module: + +-------------------------------------------------------------------------------- +How To Start Your Own Module +-------------------------------------------------------------------------------- +This is just a walk-through how the topics from above work together when you +start your own module. For the entry point, lets assume that you already cloned +the repository into a directory and just changed into it. + +All new features should take off from the ``develop`` branch. That way, they +work fine with all the other new fellows waiting for release right from the +beginning. Therefore you need to switch branches as a first step. |git| will +tell you for which branch you went, a story of failure otherwise. + +.. code-block:: console + + $ git checkout develop + Switched to branch 'develop' + +Sitting on top of the right code basis, you should just spawn your own branch +from it. As an example, your feature will go by the name of 'sidechain'. + +.. code-block:: console + + $ git checkout -b sidechain + Switched to a new branch 'sidechain' + +This time, |git| should tell you about going for **a new** branch. + +Before starting to create anything for real, now is the perfect moment to +install our very own |git| hook to check some coding rules on commit. + +.. code-block:: console + + $ cp extras/pre_commit/pre-commit .git/hooks/ + +With that in place, changes which break our coding standards will abort any +commit. + +Now create the directory structure where your project will live. Here is the +list of directories which are likely to be used in every project. + +.. code-block:: console + + $ mkdir -p sidechain/doc + $ mkdir -p sidechain/pymod + $ mkdir -p sidechain/tests + +If you run ``git status`` at this point, you will see basically nothing. That +is, |git| does not admire empty directories. Before you bring your module under +version control, create a couple of files which are always needed. + +.. code-block:: console + + $ touch sidechain/pymod/__init__.py + $ echo ":mod:\`~promod3.sidechain\` - ProMod3 side chain optimiser" \ + >> sidechain/doc/index.rst + $ echo "==========================================================" \ + "======================" >> sidechain/doc/index.rst + +Having an empty :file:`__init__.py` is perfectly fine for |python|, it just +announces a directory as a module. But a blank :file:`index.rst` has the chance +to give |sphinx| quite a headache so you already fill it with a headline for +your documentation. + +For integration with :command:`make`, the build system needs to now about the +new module and its members. This goes for setting up new |cmake| files and +extending some around the directory root. + +.. code-block:: console + + $ touch sidechain/CMakeLists.txt + $ touch sidechain/pymod/CMakeLists.txt + $ touch sidechain/doc/CMakeLists.txt + +Each of those files still needs a bit of content. The simplest one comes from +the module's root, :file:`sidechain/CMakeLists.txt`: + +.. code-block:: cmake + :linenos: + + add_subdirectory(pymod) + add_subdirectory(doc) + +Those two directives just tell |cmake| to go and look in directories +:file:`pymod` and :file:`doc` below the current path for more |cmake| +configurations. The next level in :file:`CMakeLists.txt` magic comes for the +:file:`doc` directory: + +.. code-block:: cmake + :linenos: + + set(SIDECHAIN_RST + index.rst + ) + + add_doc_source(NAME sidechain RST ${SIDECHAIN_RST}) + +``add_doc_source`` is our custom |cmake| macro to register +|restructuredtext_abrv| files for the documentation. On running +:command:`make`, those files are placed in a :file:`doc/source` directory tree +within the build directory. Each new submodule in your project should be +covered by its own documentation entity, extending the list in ``RST``. +Maintaining readability, its good practice to store this list in a separate +variable, called ``SIDECHAIN_RST`` here. + +For the actual code, you should keep in mind that a |python| module may be +rather complex. There is for sure |python| code, there could be a bit of |C++| +and conditional compilation. In rare cases you also want to modify the +directory structure of the package. All this has to be declared in the +:file:`pymod` subtree. We cannot enumerate all specialities but there should be +a couple of examples around in this repository. Here is the most basic +:file:`CMakeLists.txt`: + +.. code-block:: cmake + :linenos: + + set(SIDECHAIN_PYMOD + __init__.py + ) + + pymod(NAME sidechain PY ${SIDECHAIN_PYMOD}) + +Source files should be again listed in a dedicated variable. Later, you +probably add some |C++| code and settings diverging from the defaults via the +``pymod`` macro. This is where things clutter up quite quickly. As set up here, +your project would be added as a module ``sidechain`` in the |project| +|python| package tree. + +The final step towards |cmake| is to register your module's directory in the +top level :file:`CMakeLists.txt`: + +.. code-block:: cmake + :linenos: + :emphasize-lines: 8 + + ## <lots of cmake commands...> + + ## sub dirs to be recognised by CMake + ## e.g. add_subdirectory(src), subdirs have their own CMakeLists.txt + add_subdirectory(config) + add_subdirectory(core) + add_subdirectory(modelling) + add_subdirectory(sidechain) + add_subdirectory(loop) + add_subdirectory(scripts) + add_subdirectory(actions) + add_subdirectory(extras) + add_subdirectory(cmake_support) + + ## <lots of cmake commands...> + +All that needs to be done for |cmake| to recognise your module is adding its +directory as shown in line 8. + +This was the final step to set up the build system. Running |cmake| at this +point would create the build environment in place. But building software in +your code repository has several drawbacks. First of all, it puts all kind of +new files in the directory tree and ``git status`` would show them all. Then +its very likely, that manual intervention is needed after ``make clean``. Plus, +this would be very static. Imagine at one point you want to switch on all +debugging flags for your |C++| code. So you either clean the whole repository +and rebuild or you go by two separated repositories copying code changes from A +to B. The solution to this is instead of 'in place' you go 'out of source'. You +still can stay in your repository while being out of the source tree by using +sub-directories. |project| comes with a dedicated prefix 'build*' in +:file:`.gitignore`. Have a directory :file:`build` and :file:`build-dbg` and it +will not show up in ``git status``. + +.. code-block:: console + + $ mkdir build + $ cd build + +To actually create all the makefiles and generated files, you may use one of +the configuration scripts from the :file:`conf-scripts` directory. Usually +those scripts only need to be pointed to an |ost_s| staging tree. Even if you +are on a system not covered by available scripts, their code may help you at +the |cmake| command. Once you managed to conquer a new system, feel free to add +a new configuration script. The following example assumes |fedora| 19. + +.. code-block:: console + + $ ../conf-scripts/fedora-19-conf ../../ost.git/stage + +From this point, :command:`make` should work and you could start adding your +files to the repository using ``git add``. + +Up to now, we did not cover the :file:`tests` branch of a new module. But its +good practice to develop new functionality along tests and that right from the +beginning. At some point, new code needs testing anyway to see if it does what +it should, so just do this by writing unit tests. Test sources are stored in +files with a prefix :file:`test_` and usually come per submodule instead of +sporting a single monolithic :file:`test_sidechain_reconstruction.py`. + +|python| code is evaluated using its own :py_docs:`unit testing framework +<library/unittest.html>` with a little help from |ost_s|_ (|C++| uses the +|boost| `Test Library +<https://www.boost.org/doc/libs/1_53_0/libs/test/doc/html/index.html>`_). The +basic scheme is to import your module, subclass :class:`unittest.TestCase` and +make the whole file runnable as script using the most common |nameattr|_ +attribute. As an example we test the +:func:`promod3.modelling.ReconstructSidechains` function: + +.. literalinclude:: ../../tests/doc/scripts/unittest_sidechain_reconstruction.py + :linenos: + +To hook up your tests with ``make codetest`` (and to create a +``test_reconstruct_sidechains.py_run`` target), everything has to be introduced to |cmake|. +First, tell |cmake| to search :file:`tests` for a :file:`CMakeLists.txt` file +by extending the list of sub-directories in :file:`sidechain/CMakeLists.txt`: + +.. code-block:: cmake + :linenos: + + add_subdirectory(pymod) + add_subdirectory(doc) + add_subdirectory(tests) + +Then fill :file:`sidechain/tests/CMakeLists.txt` with your new test script and +``make`` will recognise the changes next time it is run and fix the rest for +you. + +.. code-block:: cmake + :linenos: + + set(SIDECHAIN_UNIT_TESTS + test_reconstruct_sidechains.py + ) + + set(SIDECHAIN_TEST_DATA + data/1eye.pdb + data/1eye_rec.pdb + ) + + promod3_unittest(MODULE sidechain + SOURCES "${SIDECHAIN_UNIT_TESTS}" + DATA "${SIDECHAIN_TEST_DATA}") + +Note how we listed the test data that we require in the unit test by defining +``SIDECHAIN_TEST_DATA``. + +Now tests should be available by ``make check``, ``make codetest`` and +``make test_reconstruct_sidechains.py_run``. + +.. _how-to-start-your-own-action: + +-------------------------------------------------------------------------------- +How To Start Your Own Action +-------------------------------------------------------------------------------- +In |project| we call scripts/ programs 'actions'. They are started by a +launcher found in your staging directory at :file:`stage/bin/pm`. This little +guy helps keeping the shell environment in the right mood to carry out your +job. So usually you will start an action by + +.. code-block:: console + + $ stage/bin/pm help + +To start your own action, follow :ref:`how-to-start-your-own-module` until +creating a directory structure for a new module. Also **do** go for a dedicated +branch for action-development. There you can produce intermediate commits while +other branches stay clean in case you have to do some work there which needs to +get public. + +After preparing your repository its time to create a file for the action. That +is a bit different than for modules. Assuming we are sitting in the +repository's root: + +.. code-block:: console + + $ touch action/pm-awesome-action + $ chmod +x action/pm-awesome-action + +Two things are important here: actions are prefixed with :file:`pm-`, so they +are recognised by the :file:`pm` launcher. Secondly, action files need to be +executable, which does not propagate if you do it **after** the first call to +``make``. + +To get the new action recognised by ``make`` to be placed in +:file:`stage/libexec/promod3`, it has to be registered with |cmake| in +:file:`actions/CMakeLists.txt`: + +.. code-block:: cmake + :linenos: + + add_custom_target(actions ALL) + add_subdirectory(tests) + + pm_action_init() + pm_action(pm-build-rawmodel actions) + pm_action(pm-help actions) + pm_action(pm-awesome-action actions) + +Just add your action with its full filename with a call to +:cmake:command:`pm_action` at the end of the file. + +Before coding your action, lets set up unit tests for it. Usually when adding +features, you will immediately try them, check that everything works as +intended, etc.. |project| helps you automatising those tests so its rather easy +to check later, if code changes break anything. For actions, we are using +:class:`test_actions.ActionTestCase <test_actions>` instead of +:class:`unittest.TestCase`. Since testing has a lot in common for different +actions, we decided to put up a little wrapper around this subject. See the +documentation of :class:`ActionTestCase <test_actions>` for more information. + +Now its time to fill your action with code. Instead of reading a lot more of +explanations, it should be easy to go by examples from the :file:`actions` +directory. There are only two really important points: + +* No shebang line (``#! /usr/bin/python``) in your action! Also no + ``#! /usr/bin/env python`` or anything like this. This may lead to funny side + effects, like calling a |python| interpreter from outside a virtual + environment or a different version |ost_s|. Basically it may mess up the + environment your action is running in. Actions are called by :file:`pm`, + that's enough to get everything just right. + +* The action of your action happens in the |mainattr|_ branch of the script. + Your action will have own function definitions, variables and all the bells + and whistles. Hiding behind |mainattr|_ keeps everything separated and makes + things easier when it gets to debugging. So just after + + .. code-block:: python + + import alot + + def functions_specific_to_your_action(...): + + if __name__ == "__main__": + <put together what your action should do here> + + start putting your action together. + +-------------------------------------------------------------------------------- +How To Write Your Own Scorer +-------------------------------------------------------------------------------- +The :mod:`~promod3.scoring` module contains several classes to make it easy to +add new scorers. As usual, you can use existing bits and pieces as examples and +try to be consistent with it. Here, we quickly give an overview of the separation of concerns: + +- :class:`~promod3.scoring.BackboneScorer`: + Defines the scorer with all its parameters and energies and the functionality + to compute scores. Scorers are setup by the user (or loaded from disk) if + necessary. + + Scorers do not store any environment data. If needed they can be linked via + pointers to env. data kept and updated by the score env.. Also, they may be + linked to a score env. listener to handle specially organized data. + +- :class:`~promod3.scoring.BackboneScoreEnv`: + Handles all model-specific data used by the scorers. The user sets up the + environment and updates it whenever something changes. + + Residue-specific data is kept in arrays of fixed size (see :class:`IdxHandler` + for how the indexing is done). An array of bool-like integers can be accessed + with "GetEnvSetData()" and used to determine whether env. data is available + for a certain residue. The list of sequences handled by the env. is fixed as + otherwise pointers into the data-storage would be invalidated. + +- :class:`~promod3.scoring.BackboneScoreEnvListener`: + Allows to have score-specific data to be extracted from the model-specific + data available in the score env. class. It is commonly used to define + spatially organized structures to quickly access other atoms within a given + radius. + + All score env. listener are attached to a master score env. and they get + updated when the score env. gets updated. Multiple scorers can use the same + listener. Listeners are not accessible by anyone outside of the scorers and + the score env. object responsible for it. Since the user doesn't see them, + there is no Python API for them. + +- :class:`~promod3.loop.IdxHandler`: + This takes care of translating chain indices (range [0, GetNumChains()]) + and residue numbers (range [1, GetChainSize(chain_idx)]) into the indexing + used internally by the score env. (range [0, GetNumResidues()]). + The score env. takes care of this object and makes it accessible for scorers. + +As an example, let's look at the :class:`~promod3.scoring.CBPackingScorer`: + +- it contains score-specific parameters and energies which can be either + set manually or loaded from disk +- it is linked to a score env. listener of type :class:`CBetaEnvListener`, + which provides a :meth:`FindWithin` function to quickly access neighboring + CB atoms (note that the same listener is also used by the + :class:`~promod3.scoring.CBetaScorer`) +- a pointer to the :class:`IdxHandler` object of the score env. is extracted + when the environment is attached and is used to get sequence-specific data + when calculating the score + +As a second example, look at the :class:`~promod3.scoring.PairwiseScorer`: + +- it does not require any score-specific setup +- it is linked to residue-specific CA/CB positions and the pairwise functions + defined in the score env. +- "GetEnvSetData()" of the score env. is used to determine if env. data is + available for a given residue + +-------------------------------------------------------------------------------- +Quick testing of |project| features +-------------------------------------------------------------------------------- +High-level features of |project|, can be tested directly in an interactive +Python shell. First, you need to tell Python, where to find the modules by +defining the ``PYTHONPATH`` env. variable in your shell to include the +:file:`lib64/python3.6/site-packages` folders of the :file:`stage` folders of +|project| and |ost_s|. For convenience, you can place the export-command in +your :file:`.bashrc` (or so). Then, you can import modules from ``promod3`` +and ``ost`` as in the example codes shown in this documentation. + +To test low-level |C++| features, you can copy the :file:`extras/test_code` +folder and adapt it for your purposes. First, you will have to fix the paths +to |project| and |ost_s| in the :file:`Makefile` by changing the following +lines: + +.. code-block:: make + + # path to OST and ProMod3 stage + OST_ROOT = <DEFINEME>/ost/build/stage + PROMOD3_ROOT = <DEFINEME>/ProMod3/build/stage + +Afterwards, you should be able to compile and run small sample codes that use +|project| and |ost_s| as in the :file:`test.cc` example. You can compile your +code by executing ``make`` and run it with ``make run``. Also, remember to set +the ``PROMOD3_SHARED_DATA_PATH`` variable if you moved the stage folder. + +-------------------------------------------------------------------------------- +Unit Tests +-------------------------------------------------------------------------------- +Of course your code should contain tests. But we cannot give an elaborate +tutorial on unit testing here. Again, have a look at how other modules treat +this topic and then there is quite a lot of educated material to be found on +the Internet. Nevertheless, here is a short list of most important advices: + +* Tests go into dedicated scripts/ source files in the :file:`tests` directory +* No external data dependencies, if tests need data, they find it in + :file:`tests/data` +* If 'exotic' |python| modules are used, consider making the test aware of the + possibility that the module is not available +* Tests do not fail on purpose +* No failing tests, that are considered 'this does not affect anything' + +To run the whole test suite, ``make check`` is enough. This will also trigger +the ``doctest`` and ``linkcheck`` targets. Alternatively you can run: + +- ``make codetest`` to run only unit tests from all modules in |project|. + Note that ``make check`` does nothing more but invoking ``doctest``, + ``linkcheck`` and ``codetest`` as dependencies. +- ``make check_xml`` to run tests without stopping after each failure. + Failures are shortly reported to the command line and the result of each test + is written in 'PYTEST-<TestCaseName>.xml' files in the 'tests' subfolders of + your 'build' folder. +- Run single tests: + assuming you have :file:`your_module/tests/test_awesome_feature.py`, |cmake| + will provide you with a target ``test_awesome_feature.py_run``. If your module + has |C++| tests, those will be available by ``test_suite_your_module_run``. + +.. _writing-documentation: + +-------------------------------------------------------------------------------- +Writing Documentation +-------------------------------------------------------------------------------- +To create documentation, we use |sphinx|_ to go from |restructuredtext| +(|restructuredtext_abrv|) files and API documentation in source files to HTML +or man pages. + +For each module, at least one |restructuredtext_abrv| document exists, that +gives an idea of concepts and pulls in interfaces from source. Copying files to +the build directory, issuing the |sphinx| call and everything else that is +needed to create the actual documentation is done by |cmake| and its makefiles. +Hence, the :file:`CMakeLists.txt` of the :file:`doc` directory of a module is +crucial. For documentation which does not relate to a particular module, the +repository comes with a top-level :file:`doc` directory. + +If you write new functionality for |project|, or fix bugs, feel free to extend +the :file:`CHANGELOG` file. It will be automatically pulled into the +documentation. + +It is highly recommended to add code examples with your documentation. For that +purpose, you should write a fully runnable script which is to be placed in the +:file:`doc/tests/scripts` directory. The script is to be runnable from within +the :file:`doc/tests` directory as ``pm SCRIPTPATH`` and may use data stored in +the :file:`doc/tests/data` directory. The script and any data needed by it, must +then be referenced in the :file:`doc/tests/CMakeLists.txt` file. Afterwards, +they can be included in the documentation using the literalinclude +directive. +For instance, if you add a new example code :file:`loop_main.py`, +you would add it in your module documentation as follows: + +.. code-block:: rest + + .. literalinclude:: ../../../tests/doc/scripts/loop_main.py + +If your example does not relate to a specific module and the documentation is +in the top-level :file:`doc` directory, you need to drop one of the ``..`` as +follows: + +.. code-block:: rest + + .. literalinclude:: ../../tests/doc/scripts/hello_world.py + +To ensure that the code examples keep on working, a unit test has to be defined +in :file:`doc/tests/test_doctests.py`. Each example code is run by a dedicated +test function. Usually, the codes are run and the return code is checked. +Command-line output or resulting files can also be checked (see existing test +codes for examples). A few more guidelines for example codes: + +- If it generates files as output, please delete them after checking them. +- If it requires external modules or binaries, check for their availablity. If + the external dependencies are not available, output a warning and skip the + test. + +A copy of the generated html documentation is kept in :file:`doc/html` so that +there is no need to compile |project| to read it. Our policy is to keep that +folder in-sync with the latest documentation at least on the ``master`` branch +(i.e. for every release). You can use the following commands to do the update: + +.. code-block:: console + + $ cd <PROMOD3_PATH>/build + $ make html + $ rsync -iv -az --exclude=".*" --delete \ + "stage/share/promod3/html/" "../doc/html" + +-------------------------------------------------------------------------------- +Third Party Contributions (License Issues) +-------------------------------------------------------------------------------- +For some tasks you may want to make use of third party contributions in your +module, for example + +* calling/ using the output of third party binaries +* external libraries +* smallish bits of source code included into the |project| directory tree +* |python| modules not distributed as part of the |python| + :py_docs:`standard library <library/>` + +Modules from the |python| standard library are covered by the |python| +`license <https://docs.python.org/3.6/license.html>`_ and +licenses is what you have to watch out for with this subject. While the |python| +license is safe to be used, in the past several projects went restrictive +because of exclusive terms of use. Those issues often came from 'academic +licenses', allowing use if free of charge but for commercial entities. To +prevent this is one reason for the existence of |project|. This means, before +utilising external code, third party libraries, basically anything not created +within this project (including pictures, test data, etc.), check licensing. +What cannot be used at all are items without any license. Those things are not +'free' but more in a legally uncertain state. Also forbidden are licenses which +exclude commercial entities. + +There are a lot of rather permissive licenses out there, very often asking for +acknowledgements. We definitively support this. Either go by example phrases +suggested in the license itself or find some nice paragraph yourself and place +it in the documentation. We should also not forget to promote those +contributions to web pages using |project|. + + +.. |fedora| replace:: Fedora +.. |nameattr| replace:: :attr:`__name__` +.. |mainattr| replace:: :attr:`__main__` diff --git a/doc/html/_sources/core/geometry.rst.txt b/doc/html/_sources/core/geometry.txt similarity index 97% rename from doc/html/_sources/core/geometry.rst.txt rename to doc/html/_sources/core/geometry.txt index 8dfdae2989b34f64917a570a51ec3371fed2ea21..69d10564ed5015c5dbaf109eb2e8d6c01513be45 100644 --- a/doc/html/_sources/core/geometry.rst.txt +++ b/doc/html/_sources/core/geometry.txt @@ -1,157 +1,157 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Geometry functions -================================================================================ - -.. currentmodule:: promod3.core - -.. function:: EvaluateGromacsPosRule(rule, number, anchors) - - Constructs *number* positions with the given Gromacs rule and anchor positions - (see Gromacs manual for details). - - :param rule: Gromacs rule - :type rule: :class:`int` - :param number: Desired number of positions (max. 3) - :type number: :class:`int` - :param anchors: Anchor positions (max. 4) - :type anchors: :class:`list` of :class:`~ost.geom.Vec3` - :return: Constructed *number* positions. - :rtype: :class:`list` of :class:`~ost.geom.Vec3` - -.. function:: ConstructCTerminalOxygens(c_pos, ca_pos, n_pos) - - Constructs positions of O and OXT atoms for C terminal. - - :param c_pos: Position of C atom - :type c_pos: :class:`~ost.geom.Vec3` - :param n_pos: Position of nitrogen atom - :type n_pos: :class:`~ost.geom.Vec3` - :param ca_pos: Position of C-alpha atom - :type ca_pos: :class:`~ost.geom.Vec3` - :return: Positions of O and OXT atoms. - :rtype: :class:`tuple` of :class:`~ost.geom.Vec3` - -.. function:: ConstructAtomPos(A, B, C, bond_length, angle, dihedral) - - Constructs position of atom "D" based on bond length (C-D), angle (B-C-D) and - dihedral (A-B-C-D). - - :param A: Position of atom A - :type A: :class:`~ost.geom.Vec3` - :param B: Position of atom B - :type B: :class:`~ost.geom.Vec3` - :param C: Position of atom C - :type C: :class:`~ost.geom.Vec3` - :param bond_length: Bond length (C-D) - :type bond_length: :class:`float` - :param angle: Angle (B-C-D) - :type angle: :class:`float` - :param dihedral: Dihedral (A-B-C-D) - :type dihedral: :class:`float` - :return: Position of atom D - :rtype: :class:`~ost.geom.Vec3` - -.. function:: ConstructCBetaPos(n_pos, ca_pos, c_pos) - - Constructs position of C-beta atom given the positions of the backbone nitrogen, - C-alpha and C atoms. - - :param n_pos: Position of nitrogen atom - :type n_pos: :class:`~ost.geom.Vec3` - :param ca_pos: Position of C-alpha atom - :type ca_pos: :class:`~ost.geom.Vec3` - :param c_pos: Position of C atom - :type c_pos: :class:`~ost.geom.Vec3` - :return: Position of C-beta atom - :rtype: :class:`~ost.geom.Vec3` - -.. function:: RotationAroundLine(axis, anchor, angle) - - Creates a geometric transform leading to a rotation with specified `angle` - around a line defined by `axis` and `anchor`. - - :param axis: Axis of rotation - :type axis: :class:`~ost.geom.Vec3` - :param anchor: Anchor for rotation - :type anchor: :class:`~ost.geom.Vec3` - :param angle: Angle (in radians in range [-pi,pi]) of rotation - :type angle: :class:`float` - :return: Transformation matrix - :rtype: :class:`~ost.geom.Mat4` - -.. function:: RotationAroundLine(axis, angle) - - Creates a 3x3 matrix for a rotation by a specified `angle` around an `axis` - going through the origin. - - :param axis: Axis of rotation - :type axis: :class:`~ost.geom.Vec3` - :param angle: Angle (in radians in range [-pi,pi]) of rotation - :type angle: :class:`float` - :return: Rotation matrix - :rtype: :class:`~ost.geom.Mat3` - -.. class:: StemCoords() - StemCoords(res) - - Simple container class to store N, CA and C coordinates. - - :param res: Residue handle from which to extract N, CA and C coordinates. - :type res: :class:`ost.mol.ResidueHandle` - - :raises: :exc:`~exceptions.RuntimeError` if *res* does not contain N, CA and C - atoms. - - .. attribute:: n_coord - ca_coord - c_coord - - Position of nitrogen / alpha carbon / carbon atom. - - :type: :class:`~ost.geom.Vec3` - -.. class:: StemPairOrientation() - StemPairOrientation(n_stem, c_stem) - - Relative orientation of a pair of stems. Can be used to define gaps with four - angles and one distance and is used in the fragment database for fast lookups. - - :param n_stem: Coordinates of stem A. - :type n_stem: :class:`StemCoords` - :param c_stem: Coordinates of stem B. - :type c_stem: :class:`StemCoords` - - .. attribute:: distance - - Distance of C atom of stem A to N atom of stem B. - - :type: :class:`float` - - .. attribute:: angle_one - angle_two - - Angles defining relative orientation of stem B with respect to stem A. - - :type: :class:`float` - - .. attribute:: angle_three - angle_four - - Angles defining relative orientation of stem A with respect to stem B. - - :type: :class:`float` +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Geometry functions +================================================================================ + +.. currentmodule:: promod3.core + +.. function:: EvaluateGromacsPosRule(rule, number, anchors) + + Constructs *number* positions with the given Gromacs rule and anchor positions + (see Gromacs manual for details). + + :param rule: Gromacs rule + :type rule: :class:`int` + :param number: Desired number of positions (max. 3) + :type number: :class:`int` + :param anchors: Anchor positions (max. 4) + :type anchors: :class:`list` of :class:`~ost.geom.Vec3` + :return: Constructed *number* positions. + :rtype: :class:`list` of :class:`~ost.geom.Vec3` + +.. function:: ConstructCTerminalOxygens(c_pos, ca_pos, n_pos) + + Constructs positions of O and OXT atoms for C terminal. + + :param c_pos: Position of C atom + :type c_pos: :class:`~ost.geom.Vec3` + :param n_pos: Position of nitrogen atom + :type n_pos: :class:`~ost.geom.Vec3` + :param ca_pos: Position of C-alpha atom + :type ca_pos: :class:`~ost.geom.Vec3` + :return: Positions of O and OXT atoms. + :rtype: :class:`tuple` of :class:`~ost.geom.Vec3` + +.. function:: ConstructAtomPos(A, B, C, bond_length, angle, dihedral) + + Constructs position of atom "D" based on bond length (C-D), angle (B-C-D) and + dihedral (A-B-C-D). + + :param A: Position of atom A + :type A: :class:`~ost.geom.Vec3` + :param B: Position of atom B + :type B: :class:`~ost.geom.Vec3` + :param C: Position of atom C + :type C: :class:`~ost.geom.Vec3` + :param bond_length: Bond length (C-D) + :type bond_length: :class:`float` + :param angle: Angle (B-C-D) + :type angle: :class:`float` + :param dihedral: Dihedral (A-B-C-D) + :type dihedral: :class:`float` + :return: Position of atom D + :rtype: :class:`~ost.geom.Vec3` + +.. function:: ConstructCBetaPos(n_pos, ca_pos, c_pos) + + Constructs position of C-beta atom given the positions of the backbone nitrogen, + C-alpha and C atoms. + + :param n_pos: Position of nitrogen atom + :type n_pos: :class:`~ost.geom.Vec3` + :param ca_pos: Position of C-alpha atom + :type ca_pos: :class:`~ost.geom.Vec3` + :param c_pos: Position of C atom + :type c_pos: :class:`~ost.geom.Vec3` + :return: Position of C-beta atom + :rtype: :class:`~ost.geom.Vec3` + +.. function:: RotationAroundLine(axis, anchor, angle) + + Creates a geometric transform leading to a rotation with specified `angle` + around a line defined by `axis` and `anchor`. + + :param axis: Axis of rotation + :type axis: :class:`~ost.geom.Vec3` + :param anchor: Anchor for rotation + :type anchor: :class:`~ost.geom.Vec3` + :param angle: Angle (in radians in range [-pi,pi]) of rotation + :type angle: :class:`float` + :return: Transformation matrix + :rtype: :class:`~ost.geom.Mat4` + +.. function:: RotationAroundLine(axis, angle) + + Creates a 3x3 matrix for a rotation by a specified `angle` around an `axis` + going through the origin. + + :param axis: Axis of rotation + :type axis: :class:`~ost.geom.Vec3` + :param angle: Angle (in radians in range [-pi,pi]) of rotation + :type angle: :class:`float` + :return: Rotation matrix + :rtype: :class:`~ost.geom.Mat3` + +.. class:: StemCoords() + StemCoords(res) + + Simple container class to store N, CA and C coordinates. + + :param res: Residue handle from which to extract N, CA and C coordinates. + :type res: :class:`ost.mol.ResidueHandle` + + :raises: :exc:`~exceptions.RuntimeError` if *res* does not contain N, CA and C + atoms. + + .. attribute:: n_coord + ca_coord + c_coord + + Position of nitrogen / alpha carbon / carbon atom. + + :type: :class:`~ost.geom.Vec3` + +.. class:: StemPairOrientation() + StemPairOrientation(n_stem, c_stem) + + Relative orientation of a pair of stems. Can be used to define gaps with four + angles and one distance and is used in the fragment database for fast lookups. + + :param n_stem: Coordinates of stem A. + :type n_stem: :class:`StemCoords` + :param c_stem: Coordinates of stem B. + :type c_stem: :class:`StemCoords` + + .. attribute:: distance + + Distance of C atom of stem A to N atom of stem B. + + :type: :class:`float` + + .. attribute:: angle_one + angle_two + + Angles defining relative orientation of stem B with respect to stem A. + + :type: :class:`float` + + .. attribute:: angle_three + angle_four + + Angles defining relative orientation of stem A with respect to stem B. + + :type: :class:`float` diff --git a/doc/html/_sources/core/graph_minimizer.rst.txt b/doc/html/_sources/core/graph_minimizer.txt similarity index 97% rename from doc/html/_sources/core/graph_minimizer.rst.txt rename to doc/html/_sources/core/graph_minimizer.txt index 918975dd4ddbac5553c429217dd414f3652a4551..1be1aa1375b754577c2c9a63ad201b9dee219b51 100644 --- a/doc/html/_sources/core/graph_minimizer.rst.txt +++ b/doc/html/_sources/core/graph_minimizer.txt @@ -1,246 +1,246 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Graph Minimizer -================================================================================ - -.. currentmodule:: promod3.core - -The graph minimizer solves an energy minimization problem where we have n -nodes :math:`N_i`, with each node having several possible solutions. -Every solution has a self energy :math:`E_{self}` and pairwise energies in between nodes -are possible. The goal is to select exactly one solution per node to obtain -a set :math:`X=[x_1, x_2, ..., x_n]` that minimizes: - -.. math:: - F(X)=\displaystyle\sum_iE_{self}(N_i[x_i]) +\displaystyle \sum_i \displaystyle \sum_{j>i}E_{pair}(N_i[x_i], N_j[x_j]) - - - -.. class:: GraphMinimizer - - .. method:: AddNode(self_energies) - - Adds a node to the graph. - - :param self_energies: Directly controls the number of possible solutions in that - node and assigns the corresponding self energies - :type self_energies: :class:`list` of :class:`float` - - :returns: The idx of the added node - :rtype: :class:`int` - - - .. method:: AddEdge(node_idx_one, node_idx_two, pairwise_energies) - - Adds an edge between the specified nodes. - - :param node_idx_one: Index of the first node - :param node_idx_two: Index of the second node - :param pairwise_energies: The pairwise energies that contribute to the - overall energy function. There must be a list for - every possible solution in node one. All of those - lists must have exactly the length of possible - solutions in node two. - - :type node_idx_one: :class:`int` - :type node_idx_two: :class:`int` - :type pairwise_energies: :class:`list` of :class:`list` of :class:`float` - - :returns: The idx of the added edge - :rtype: :class:`int` - :raises: :exc:`~exceptions.RuntimeError` if *node_idx_one* or *node_idx_two* - specify non existent nodes or when *pairwise_energies* is - inconsistent with the number of solutions in the specified nodes. - - - .. method:: ApplyDEE(node_idx, [e_cut=0.0]) - - Applies dead end elimination on one particular node and potentially - deactivates certain solutions. The goldstein criterion is described in - [goldstein1994]_. - - :param node_idx: Node to apply dead end elimination - :param e_cut: If set to - 0.0, the default goldstein criterion is applied => - a solution is removed if it's dominated by all other - solutions in the same node. If you increase this value, - a solution must be dominated by at least this **e_cut**. - - :type node_idx: :class:`int` - :type e_cut: :class:`float` - - :returns: :class:`bool` whether any solution has been deactivated. - - - .. method:: ApplyEdgeDecomposition(edge_idx, epsilon) - - Applies edge decomposition on one particular edge and potentially - deactivates it. The exact decomposition procedure is described in - [krivov2009]_. - - :param edge_idx: Edge to decompose. - :param epsilon: The energy threshold to perform edge decomposition. - - :type edge_idx: :class:`int` - :type epsilon: :class:`float` - - - :returns: :class:`bool` whether the edge has been decomposed and - deactivated - - - - .. method:: Prune(epsilon, [e_cut=0.0, 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 e_cut: Parameter to control dead end elimination. - :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. - - :type epsilon: :class:`float` - :type e_cut: :class:`float` - :type consider_all_nodes: :class:`bool` - - - .. method:: Reset() - - Resets the graph by undoing any pruning operation (DEE and edge decomposition) - - - .. method:: TreeSolve([max_complexity=inf, initial_epsilon=0.02]) - - The method solves a graph using a minimal width tree decomposition - approach in an iterative manner. In every iteration, the algorithm performs - a pruning step (DEE / Edge Decomposition) and subsequently tries to solve - each connected component in the graph separately. - If the number of possible enumerations in the tree constructetd from a - particular connected component is is larger **max_complexity**, - this component is solved in a later iteration. The algorithm iterates until - all connected components are solved and steadily increases the epsilon value - resulting in a more and more agressive edge decomposition. - Algorithm further descsribed in [krivov2009]_. - - :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: A tuple with the first element being a list of indices - representing the single solutions minimizing - the overall energy function. - The second element is the according energy value. - - - .. method:: AStarSolve(e_thresh, [max_n=100, max_visited_nodes=100000000]) - - The method solves a graph using the A\* algorithm. Besides creating the - minimal energy solution, the function produces a maximum of **max_n** - solutions sorted by energy. It aborts as soon as it sees the first solution - with an energy difference of **e_thresh** to the optimal solution or hits - **max_n**. If you're only interested in the optimal solution you should use - the TreeSolve function since it's much faster and uses less memory. - There is no automatic pruning of the graph using DEE or edge decomposition, - so you have to do it by yourself, otherwise you'll have a looooooong - runtime or even hit the **max_visited_nodes** parameter that caps the memory - usage. - To have a valid solution you have to take care that you set the **e_cut** - parameter in the pruning function to **e_tresh**. - Algorithm is described in [leach1998]_. - - :param e_thresh: Maximal energy difference of a solution to the - optimal solution to be considered. - - :param max_n: The maximum number of solutions that will be generated. - - :param max_visited_nodes: Caps the memory usage of the algorithm. Besides - The memory used for pairwise energies and self - energies, the algorithm uses about - **max_visited_nodes** * 20 bytes. - - - :type e_thresh: :class:`float` - :type max_n: :class:`int` - :type max_visited_nodes: :class:`int` - - :returns: A tuple with the first element being a list of - solutions. The second element is a list - of energies for the according solutions. - - - .. method:: MCSolve([n=100, mc_steps=100000, start_temperature=1000.0, \\ - change_frequency=1000, cooling_factor=0.9, seed=0]) - - Does a total of **n** Monte Carlo runs to find low energy solutions - of the graph. Each run starts with a random - configuration. At each of the **mc_steps** steps, a random node and - a random solution at that location is selected and an energy difference - of that random selection relative to the current configuration is - estimated. If the difference in energy is negative, the step is - accepted. If not, the step is accepted with a probability given by - the temperature dependent Metropolis criterion - :math:`exp^{\left(\frac{-e_{diff}}{T}\right)}`. - The temperature for every run starts with **start_temperature** - and is multiplied every **change_frequency** steps with **cooling_factor** - to achieve a simulated annealing effect. - There is no automatic pruning of the graph using DEE or edge decomposition, - you have to do that by yourself. - - :param n: Number of Monte Carlo runs - :param mc_steps: Number of Monte Carlo steps per run - :param start_temperature: Start temperature for the temperature dependent - Metropolis criterion - :param change_frequency: Number of steps the temperature stays the same - :param cooling_factor: Factor to multiply temperature each - **change_frequency** steps - :param seed: Seed for random number generator - - :type n: :class:`int` - :type mc_steps: :class:`int` - :type start_temperature: :class:`float` - :type change_frequency: :class:`int` - :type cooling_factor: :class:`float` - :type seed: :class:`float` - - :returns: A tuple with the first element being a list of - solutions. The second element is a list - of energies for the according solutions. - - .. method:: NaiveSolve() - - Don't even think of using this... This function only exists for debug - purposes and does the full enumeration of the solution space. - It might become faster with the appropriate - `techniques <https://www.youtube.com/watch?v=fQGbXmkSArs>`_. - - :returns: A tuple with the first element being a list of indices - representing the single solutions minimizing - the overall energy function. - The second element is the according energy value. +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Graph Minimizer +================================================================================ + +.. currentmodule:: promod3.core + +The graph minimizer solves an energy minimization problem where we have n +nodes :math:`N_i`, with each node having several possible solutions. +Every solution has a self energy :math:`E_{self}` and pairwise energies in between nodes +are possible. The goal is to select exactly one solution per node to obtain +a set :math:`X=[x_1, x_2, ..., x_n]` that minimizes: + +.. math:: + F(X)=\displaystyle\sum_iE_{self}(N_i[x_i]) +\displaystyle \sum_i \displaystyle \sum_{j>i}E_{pair}(N_i[x_i], N_j[x_j]) + + + +.. class:: GraphMinimizer + + .. method:: AddNode(self_energies) + + Adds a node to the graph. + + :param self_energies: Directly controls the number of possible solutions in that + node and assigns the corresponding self energies + :type self_energies: :class:`list` of :class:`float` + + :returns: The idx of the added node + :rtype: :class:`int` + + + .. method:: AddEdge(node_idx_one, node_idx_two, pairwise_energies) + + Adds an edge between the specified nodes. + + :param node_idx_one: Index of the first node + :param node_idx_two: Index of the second node + :param pairwise_energies: The pairwise energies that contribute to the + overall energy function. There must be a list for + every possible solution in node one. All of those + lists must have exactly the length of possible + solutions in node two. + + :type node_idx_one: :class:`int` + :type node_idx_two: :class:`int` + :type pairwise_energies: :class:`list` of :class:`list` of :class:`float` + + :returns: The idx of the added edge + :rtype: :class:`int` + :raises: :exc:`~exceptions.RuntimeError` if *node_idx_one* or *node_idx_two* + specify non existent nodes or when *pairwise_energies* is + inconsistent with the number of solutions in the specified nodes. + + + .. method:: ApplyDEE(node_idx, [e_cut=0.0]) + + Applies dead end elimination on one particular node and potentially + deactivates certain solutions. The goldstein criterion is described in + [goldstein1994]_. + + :param node_idx: Node to apply dead end elimination + :param e_cut: If set to + 0.0, the default goldstein criterion is applied => + a solution is removed if it's dominated by all other + solutions in the same node. If you increase this value, + a solution must be dominated by at least this **e_cut**. + + :type node_idx: :class:`int` + :type e_cut: :class:`float` + + :returns: :class:`bool` whether any solution has been deactivated. + + + .. method:: ApplyEdgeDecomposition(edge_idx, epsilon) + + Applies edge decomposition on one particular edge and potentially + deactivates it. The exact decomposition procedure is described in + [krivov2009]_. + + :param edge_idx: Edge to decompose. + :param epsilon: The energy threshold to perform edge decomposition. + + :type edge_idx: :class:`int` + :type epsilon: :class:`float` + + + :returns: :class:`bool` whether the edge has been decomposed and + deactivated + + + + .. method:: Prune(epsilon, [e_cut=0.0, 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 e_cut: Parameter to control dead end elimination. + :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. + + :type epsilon: :class:`float` + :type e_cut: :class:`float` + :type consider_all_nodes: :class:`bool` + + + .. method:: Reset() + + Resets the graph by undoing any pruning operation (DEE and edge decomposition) + + + .. method:: TreeSolve([max_complexity=inf, initial_epsilon=0.02]) + + The method solves a graph using a minimal width tree decomposition + approach in an iterative manner. In every iteration, the algorithm performs + a pruning step (DEE / Edge Decomposition) and subsequently tries to solve + each connected component in the graph separately. + If the number of possible enumerations in the tree constructetd from a + particular connected component is is larger **max_complexity**, + this component is solved in a later iteration. The algorithm iterates until + all connected components are solved and steadily increases the epsilon value + resulting in a more and more agressive edge decomposition. + Algorithm further descsribed in [krivov2009]_. + + :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: A tuple with the first element being a list of indices + representing the single solutions minimizing + the overall energy function. + The second element is the according energy value. + + + .. method:: AStarSolve(e_thresh, [max_n=100, max_visited_nodes=100000000]) + + The method solves a graph using the A\* algorithm. Besides creating the + minimal energy solution, the function produces a maximum of **max_n** + solutions sorted by energy. It aborts as soon as it sees the first solution + with an energy difference of **e_thresh** to the optimal solution or hits + **max_n**. If you're only interested in the optimal solution you should use + the TreeSolve function since it's much faster and uses less memory. + There is no automatic pruning of the graph using DEE or edge decomposition, + so you have to do it by yourself, otherwise you'll have a looooooong + runtime or even hit the **max_visited_nodes** parameter that caps the memory + usage. + To have a valid solution you have to take care that you set the **e_cut** + parameter in the pruning function to **e_tresh**. + Algorithm is described in [leach1998]_. + + :param e_thresh: Maximal energy difference of a solution to the + optimal solution to be considered. + + :param max_n: The maximum number of solutions that will be generated. + + :param max_visited_nodes: Caps the memory usage of the algorithm. Besides + The memory used for pairwise energies and self + energies, the algorithm uses about + **max_visited_nodes** * 20 bytes. + + + :type e_thresh: :class:`float` + :type max_n: :class:`int` + :type max_visited_nodes: :class:`int` + + :returns: A tuple with the first element being a list of + solutions. The second element is a list + of energies for the according solutions. + + + .. method:: MCSolve([n=100, mc_steps=100000, start_temperature=1000.0, \\ + change_frequency=1000, cooling_factor=0.9, seed=0]) + + Does a total of **n** Monte Carlo runs to find low energy solutions + of the graph. Each run starts with a random + configuration. At each of the **mc_steps** steps, a random node and + a random solution at that location is selected and an energy difference + of that random selection relative to the current configuration is + estimated. If the difference in energy is negative, the step is + accepted. If not, the step is accepted with a probability given by + the temperature dependent Metropolis criterion + :math:`exp^{\left(\frac{-e_{diff}}{T}\right)}`. + The temperature for every run starts with **start_temperature** + and is multiplied every **change_frequency** steps with **cooling_factor** + to achieve a simulated annealing effect. + There is no automatic pruning of the graph using DEE or edge decomposition, + you have to do that by yourself. + + :param n: Number of Monte Carlo runs + :param mc_steps: Number of Monte Carlo steps per run + :param start_temperature: Start temperature for the temperature dependent + Metropolis criterion + :param change_frequency: Number of steps the temperature stays the same + :param cooling_factor: Factor to multiply temperature each + **change_frequency** steps + :param seed: Seed for random number generator + + :type n: :class:`int` + :type mc_steps: :class:`int` + :type start_temperature: :class:`float` + :type change_frequency: :class:`int` + :type cooling_factor: :class:`float` + :type seed: :class:`float` + + :returns: A tuple with the first element being a list of + solutions. The second element is a list + of energies for the according solutions. + + .. method:: NaiveSolve() + + Don't even think of using this... This function only exists for debug + purposes and does the full enumeration of the solution space. + It might become faster with the appropriate + `techniques <https://www.youtube.com/watch?v=fQGbXmkSArs>`_. + + :returns: A tuple with the first element being a list of indices + representing the single solutions minimizing + the overall energy function. + The second element is the according energy value. diff --git a/doc/html/_sources/core/helper.rst.txt b/doc/html/_sources/core/helper.txt similarity index 97% rename from doc/html/_sources/core/helper.rst.txt rename to doc/html/_sources/core/helper.txt index 53d6c01687eb2a557794d1e24b138f0587ce679c..6fcee377975a7f4ffb674bf8e0c73104de151a50 100644 --- a/doc/html/_sources/core/helper.rst.txt +++ b/doc/html/_sources/core/helper.txt @@ -1,51 +1,51 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -:mod:`~promod3.core.helper` - Shared Functionality For the Everything -================================================================================ - -.. module:: promod3.core.helper - :synopsis: Helper functions - -.. currentmodule:: promod3.core.helper - -Introduction --------------------------------------------------------------------------------- - -We collect functions here, which should be useful in many places but would make -rather empty modules left alone. - - -Messages --------------------------------------------------------------------------------- - -.. literalinclude:: ../../../tests/doc/scripts/core_msg_error.py - -.. autofunction:: MsgErrorAndExit - -File Tests --------------------------------------------------------------------------------- - -The following example parses an argument (call as ``pm SCRIPTNAME FILENAME``) as -a file name and checks whether it is a ``pdb`` or ``mmcif`` file. - -.. literalinclude:: ../../../tests/doc/scripts/core_file_checks.py - -.. autofunction:: FileExists - -.. autofunction:: FileExtension - -.. autofunction:: FileGzip +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +:mod:`~promod3.core.helper` - Shared Functionality For the Everything +================================================================================ + +.. module:: promod3.core.helper + :synopsis: Helper functions + +.. currentmodule:: promod3.core.helper + +Introduction +-------------------------------------------------------------------------------- + +We collect functions here, which should be useful in many places but would make +rather empty modules left alone. + + +Messages +-------------------------------------------------------------------------------- + +.. literalinclude:: ../../../tests/doc/scripts/core_msg_error.py + +.. autofunction:: MsgErrorAndExit + +File Tests +-------------------------------------------------------------------------------- + +The following example parses an argument (call as ``pm SCRIPTNAME FILENAME``) as +a file name and checks whether it is a ``pdb`` or ``mmcif`` file. + +.. literalinclude:: ../../../tests/doc/scripts/core_file_checks.py + +.. autofunction:: FileExists + +.. autofunction:: FileExtension + +.. autofunction:: FileGzip diff --git a/doc/html/_sources/core/index.rst.txt b/doc/html/_sources/core/index.txt similarity index 97% rename from doc/html/_sources/core/index.rst.txt rename to doc/html/_sources/core/index.txt index 03437d9ff39c961a37021953a60164f7a9b065e7..22caa264b61a15af68cff56d300b88c0ad18f97f 100644 --- a/doc/html/_sources/core/index.rst.txt +++ b/doc/html/_sources/core/index.txt @@ -1,35 +1,35 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -:mod:`~promod3.core` - |project| Core Functionality -================================================================================ - -.. module:: promod3.core - :synopsis: Basic functionality, supporting standard tasks in your code. - -This module gathers functions and classes which are not devoted to homology -modeling per se but cover standard programming issues. - -Contents: - -.. toctree:: - :maxdepth: 2 - - pm3argparse - helper - geometry - runtime_profiling - graph_minimizer +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +:mod:`~promod3.core` - |project| Core Functionality +================================================================================ + +.. module:: promod3.core + :synopsis: Basic functionality, supporting standard tasks in your code. + +This module gathers functions and classes which are not devoted to homology +modeling per se but cover standard programming issues. + +Contents: + +.. toctree:: + :maxdepth: 2 + + pm3argparse + helper + geometry + runtime_profiling + graph_minimizer diff --git a/doc/html/_sources/core/pm3argparse.rst.txt b/doc/html/_sources/core/pm3argparse.txt similarity index 97% rename from doc/html/_sources/core/pm3argparse.rst.txt rename to doc/html/_sources/core/pm3argparse.txt index 1269e837c8208c1e360f0327d56a1f8c27109090..fa27dcb7fc64336288b5593984399166bf5e0511 100644 --- a/doc/html/_sources/core/pm3argparse.rst.txt +++ b/doc/html/_sources/core/pm3argparse.txt @@ -1,59 +1,59 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -:mod:`~promod3.core.pm3argparse` - Parsing Command Lines -================================================================================ - -.. module:: promod3.core.pm3argparse - :synopsis: Argument Parsing - -.. currentmodule:: promod3.core.pm3argparse - -Introduction --------------------------------------------------------------------------------- - -A lot of the actions in |project| have a bunch of command line parameters/ -arguments in common. For example we need an input alignment quite often and -usually for an alignment we need information on what is the target sequence, -what identifies a template sequence and eventually a hint on the format. That -means we need the same functionality on the command line in several actions. -There :class:`~promod3.core.pm3argparse.PM3ArgumentParser` serves as a -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. - -.. literalinclude:: ../../../tests/doc/scripts/core_pm3argparse.py - -When the example above is run with ``pm`` and no additional arguments, the -script exits with a code 2. If it is run with an additional argument ``-h`` or -``--help``, it exits with a code 0 and displays the help message given as a -docstring in your script. - -Argument Parser --------------------------------------------------------------------------------- - -.. autoclass:: PM3ArgumentParser - :members: - - .. automethod:: __init__ - -.. |descattr| replace:: :attr:`description` -.. |argpinit| replace:: :meth:`argparse.ArgumentParser.__init__` -.. |progattr| replace:: :attr:`prog` -.. |sysargv| replace:: :attr:`sys.argv` - -.. LocalWords: currentmodule argparse ArgumentParser autoclass automethod -.. LocalWords: init descattr attr argpinit meth progattr prog +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +:mod:`~promod3.core.pm3argparse` - Parsing Command Lines +================================================================================ + +.. module:: promod3.core.pm3argparse + :synopsis: Argument Parsing + +.. currentmodule:: promod3.core.pm3argparse + +Introduction +-------------------------------------------------------------------------------- + +A lot of the actions in |project| have a bunch of command line parameters/ +arguments in common. For example we need an input alignment quite often and +usually for an alignment we need information on what is the target sequence, +what identifies a template sequence and eventually a hint on the format. That +means we need the same functionality on the command line in several actions. +There :class:`~promod3.core.pm3argparse.PM3ArgumentParser` serves as a +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. + +.. literalinclude:: ../../../tests/doc/scripts/core_pm3argparse.py + +When the example above is run with ``pm`` and no additional arguments, the +script exits with a code 2. If it is run with an additional argument ``-h`` or +``--help``, it exits with a code 0 and displays the help message given as a +docstring in your script. + +Argument Parser +-------------------------------------------------------------------------------- + +.. autoclass:: PM3ArgumentParser + :members: + + .. automethod:: __init__ + +.. |descattr| replace:: :attr:`description` +.. |argpinit| replace:: :meth:`argparse.ArgumentParser.__init__` +.. |progattr| replace:: :attr:`prog` +.. |sysargv| replace:: :attr:`sys.argv` + +.. LocalWords: currentmodule argparse ArgumentParser autoclass automethod +.. LocalWords: init descattr attr argpinit meth progattr prog diff --git a/doc/html/_sources/core/runtime_profiling.rst.txt b/doc/html/_sources/core/runtime_profiling.txt similarity index 97% rename from doc/html/_sources/core/runtime_profiling.rst.txt rename to doc/html/_sources/core/runtime_profiling.txt index 02146a6a5867eb7f2c724ca74b3606c879043c39..3ce033c71678a21601a69c3a687940e1a736d473 100644 --- a/doc/html/_sources/core/runtime_profiling.rst.txt +++ b/doc/html/_sources/core/runtime_profiling.txt @@ -1,89 +1,89 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Runtime profiling -================================================================================ - -.. currentmodule:: promod3.core - -.. class:: StaticRuntimeProfiler - - Defines functionality for runtime profiling. - - All profiling is completely turned off by default and must be activated at - compile-time by adding ``-DPM3_RUNTIME_PROFILING_LEVEL=N`` to your |cmake| - call, where ``N`` must be larger than 0. If turned off, all these functions - will still exist and work but will not do anything. Functionality in the |C++| - code is usually profiled at level 2, while |python| functionality is profiled - at level 1. The default profiling only covers the steps of the modelling - pipeline. - - You can start multiple timers with the same id and statistics will be - generated considering the number of timings and the total runtime for that - timer. If a timer within another timed entity, the outer timer is paused, - while the inner one is running. Hence, the sum of all timers will be the - total time spent in any timer (nothing is counted twice!). - - .. staticmethod:: Start(id, level=1) - - Start a timer for the given `id`. This pauses any other currently running - timer. - - :param id: Identifier for this timer. - :type id: :class:`str` - :param level: Timer only started if level <= ``PM3_RUNTIME_PROFILING_LEVEL`` - :type level: :class:`int` - - .. staticmethod:: StartScoped(id, level=1) - - Start a timer for the given `id` as in :meth:`Start`, but this will stop it - automatically when the returned variable goes out of scope. - - :param id: Identifier for this timer. - :type id: :class:`str` - :param level: Timer only started if level <= ``PM3_RUNTIME_PROFILING_LEVEL`` - :type level: :class:`int` - :return: Object that will call :meth:`Stop` when it goes out of scope - - .. staticmethod:: Stop(id, level=1) - - Stop the currently running timer. If a timer was paused when starting this - timer, it will be resumed now. Note that there is no error checking here, so - this will fail miserably if no timer is currently running. - - :param level: Timer only stopped if level <= ``PM3_RUNTIME_PROFILING_LEVEL`` - :type level: :class:`int` - - .. staticmethod:: PrintSummary(max_to_show=-1) - - Display a summary of all timed entities. The timers are collected by id and - sorted by total runtime. If more than 10 entries are shown and the used id's - have the form "GROUP::NAME", an additional summary is shown with the total - times spent in each "GROUP". - - :param max_to_show: if >= 0, show only top `max_to_show` entries. - :type max_to_show: :class:`int` - - .. staticmethod:: IsEnabled() - - :return: True, if ``PM3_RUNTIME_PROFILING_LEVEL`` > 0. Otherwise, profiling - is completely turned off. - :rtype: :class:`bool` - - .. staticmethod:: Clear() - - Clears all timed entries. Note that there is no error checking here, so this - will fail miserably if timers are currently running. +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Runtime profiling +================================================================================ + +.. currentmodule:: promod3.core + +.. class:: StaticRuntimeProfiler + + Defines functionality for runtime profiling. + + All profiling is completely turned off by default and must be activated at + compile-time by adding ``-DPM3_RUNTIME_PROFILING_LEVEL=N`` to your |cmake| + call, where ``N`` must be larger than 0. If turned off, all these functions + will still exist and work but will not do anything. Functionality in the |C++| + code is usually profiled at level 2, while |python| functionality is profiled + at level 1. The default profiling only covers the steps of the modelling + pipeline. + + You can start multiple timers with the same id and statistics will be + generated considering the number of timings and the total runtime for that + timer. If a timer within another timed entity, the outer timer is paused, + while the inner one is running. Hence, the sum of all timers will be the + total time spent in any timer (nothing is counted twice!). + + .. staticmethod:: Start(id, level=1) + + Start a timer for the given `id`. This pauses any other currently running + timer. + + :param id: Identifier for this timer. + :type id: :class:`str` + :param level: Timer only started if level <= ``PM3_RUNTIME_PROFILING_LEVEL`` + :type level: :class:`int` + + .. staticmethod:: StartScoped(id, level=1) + + Start a timer for the given `id` as in :meth:`Start`, but this will stop it + automatically when the returned variable goes out of scope. + + :param id: Identifier for this timer. + :type id: :class:`str` + :param level: Timer only started if level <= ``PM3_RUNTIME_PROFILING_LEVEL`` + :type level: :class:`int` + :return: Object that will call :meth:`Stop` when it goes out of scope + + .. staticmethod:: Stop(id, level=1) + + Stop the currently running timer. If a timer was paused when starting this + timer, it will be resumed now. Note that there is no error checking here, so + this will fail miserably if no timer is currently running. + + :param level: Timer only stopped if level <= ``PM3_RUNTIME_PROFILING_LEVEL`` + :type level: :class:`int` + + .. staticmethod:: PrintSummary(max_to_show=-1) + + Display a summary of all timed entities. The timers are collected by id and + sorted by total runtime. If more than 10 entries are shown and the used id's + have the form "GROUP::NAME", an additional summary is shown with the total + times spent in each "GROUP". + + :param max_to_show: if >= 0, show only top `max_to_show` entries. + :type max_to_show: :class:`int` + + .. staticmethod:: IsEnabled() + + :return: True, if ``PM3_RUNTIME_PROFILING_LEVEL`` > 0. Otherwise, profiling + is completely turned off. + :rtype: :class:`bool` + + .. staticmethod:: Clear() + + Clears all timed entries. Note that there is no error checking here, so this + will fail miserably if timers are currently running. diff --git a/doc/html/_sources/core/setcompoundschemlib.rst.txt b/doc/html/_sources/core/setcompoundschemlib.txt similarity index 97% rename from doc/html/_sources/core/setcompoundschemlib.rst.txt rename to doc/html/_sources/core/setcompoundschemlib.txt index b8c23815e8ed639f9926251e2c86dace3e55cf6a..f664e4b31aee0ae9885debefc5225433002b0497 100644 --- a/doc/html/_sources/core/setcompoundschemlib.rst.txt +++ b/doc/html/_sources/core/setcompoundschemlib.txt @@ -1,33 +1,33 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -:func:`~promod3.SetCompoundsChemlib` -================================================================================ - -.. currentmodule:: promod3 - -This is the one function defined on the highest level of |project|'s module -hierarchy. It is used to load an |ost_s| compound library to avoid running -|python| code via the ancient |ost_s| wrapper. Applying this function at -top-level, we can set a decent default by |cmake| plus the library is -immediately available just by invoking **any** |project| module. You do not -need to call this function, only if you want to load a different chemical -components dictionary. - -.. autofunction:: SetCompoundsChemlib - -.. LocalWords: func promod SetCompoundsChemlib currentmodule ost cmake -.. LocalWords: autofunction +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +:func:`~promod3.SetCompoundsChemlib` +================================================================================ + +.. currentmodule:: promod3 + +This is the one function defined on the highest level of |project|'s module +hierarchy. It is used to load an |ost_s| compound library to avoid running +|python| code via the ancient |ost_s| wrapper. Applying this function at +top-level, we can set a decent default by |cmake| plus the library is +immediately available just by invoking **any** |project| module. You do not +need to call this function, only if you want to load a different chemical +components dictionary. + +.. autofunction:: SetCompoundsChemlib + +.. LocalWords: func promod SetCompoundsChemlib currentmodule ost cmake +.. LocalWords: autofunction diff --git a/doc/html/_sources/dev_setup.rst.txt b/doc/html/_sources/dev_setup.txt similarity index 97% rename from doc/html/_sources/dev_setup.rst.txt rename to doc/html/_sources/dev_setup.txt index 942fe65435f39956030e2b33d72670bc706cf3f9..04d8450744dee2c1b26dd37b061527cc0919ee24 100644 --- a/doc/html/_sources/dev_setup.rst.txt +++ b/doc/html/_sources/dev_setup.txt @@ -1,254 +1,254 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -|project| Setup -================================================================================ - -The following should give an overview of how this project is set up. Anyone -planning to develop parts of |project| should read this! Important topics are -|git| branches, the directory structure and tightly linked with this also -|cmake|. - -.. _git-branches: - --------------------------------------------------------------------------------- -|git| Branches --------------------------------------------------------------------------------- -Basically we have two, sometimes three major branches. ``master``, ``develop`` -and in front of a new release a dedicated release branch. For bugs, hotfix -branches of a rather short life are used. - -``master`` is the stable branch, corresponding to a released version. It is -solely fed by a release or hotfix branch. - -Release branches, usually labelled ``release-<VERSION>``, are branched of -``develop`` to fix features and thoroughly test them before a new major -release. Once everything looks trustworthy, such a branch is merged into -``master`` and since there should be a few bug fixes in, ``master`` is merged -into ``develop``. Bugs are fixed in dedicated hotfix branches, which should -only exist for the fix and testing itself. Those are forged from release -branches or ``master``. If created for ``master``, they are also merged back -into ``develop``. - -The ``develop`` branch exists to introduce new features up to the level of -whole projects extending |project| and see that they work seamlessly together -with the rest of the system. There do exist a couple of rather strict rules for -what goes into this branch: - -* Your code must have been (briefly) reviewed by others -* There have to be unit tests -* It needs to pass ``make check`` **including** ``doctest`` & ``linkcheck`` -* Your project needs documentation -* It must not break the ability of out-of-source builds - -The reason to be a bit restrictive on branches which end up in actual releases, -should be mostly obvious: |project| is used by productive services as a third -party toolbox. There it is not an item of active development and people -probably have no insight in its internals. So messing up a new release creates -a lot of extra work for a lot of people. First for the developer of a service -to find out that |project| has turned malicious, then for the maintainer of -this package to figure out that its your contribution messing things up and in -the end for you, fixing the problems. - -The place where you may get messy is your own |git| branch within the |project| -repository. This is basically where you should develop your project. Once you -created something that could go into a release, tidy things up according to the -rules from above and merge it into ``develop``. From there it will -automatically find its way into the next release. - -To set up your own branch, start from a current ``develop`` branch: - -.. code-block:: console - - $ git checkout develop # switch to branch develop - $ git pull --rebase # update branch develop - $ git checkout -b <BRANCHNAME> # create branch <BRANCHNAME> and switch to it - -Over time, ``develop`` may recognise some changes, e.g. new features, which you -want to make use of in your project. Keeping your branch up to date is a three -step process. |git| does not allow updates on top of changed code, so either -changes have to be committed, or if in the middle of implementing something, -stored away temporarily. Making commits is straight forward: - -.. code-block:: console - - $ git commit -m '<DESCRIPTION>' # commit changes including a comment - -Hiding your changes away from |git| just for updating files is a bit more -involved. Everything is easily stored on an internal stack and needs to be -fetched from there, once the branch was updated. One major problem in the past -was a possible loss of code by those operations. If the update changes a file -you have changed, too, and stashed away, this may end up in a non-resolvable -merge conflict and your changes are lost. Usually the log tells you, which -files were recently modified. Moving all current changes to the stack is -achieved by: - -.. code-block:: console - - $ git stash save - -To revive them, use: - -.. code-block:: console - - $ git stash pop - -After cleaning up your branch, switch to ``develop``, update it and switch back: - -.. code-block:: console - - $ git checkout develop - $ git pull --rebase - $ git checkout <BRANCHNAME> - -Now for actually updating your branch, there are two different ways: merging -and rebasing. A rebase may only be done, if you **never** pushed your branch to -the origin of the repository (otherwise you will mess up history, in the worst -case ``develop`` may be unusable once you merge): - -.. code-block:: console - - $ git rebase develop - -For branches which are available to others, do a proper merge: - -.. code-block:: console - - $ git merge develop - -This may require some manual conflict solving and will end up in a merge commit. - --------------------------------------------------------------------------------- -|git| Hooks --------------------------------------------------------------------------------- -|git| hooks are scripts invoked by |git| in connection to certain commands. -|project| currently provides one for :command:`commit`. It is installed by - -.. code-block:: console - - $ cp extras/pre_commit/pre-commit .git/hooks/ - -Its task is applying coding standards and doing a bunch of other checks on the -files involved in a commit. Everything around the script is hosted in -:file:`extras/pre_commit/`. The checks can be manually executed with - -.. code-block:: console - - $ python .git/hooks/pre-commit - -If you ever have to skip the hook, - -.. code-block:: console - - $ git commit --no-verify - -does the trick. **But** checks are always run on the complete file containing -changes, not only on the lines changed. This means if you opt out of an issue, -it will reappear next time that very file changes. - -For checking |python| code, the pre-commit hook employs |pylint|_, to make sure -we stay close to |pep8|_. If you feel the need to make changes to the |pylint| -call, please make sure you fully understand what the complaints are. Sometimes -|pep8| sounds overly restrictive but it may help with performance and -compatibility with |python| 3. For |project| it is also important that the code -looks similar throughout the various modules. So do not disable a check because -it just seems inconvenient or you do not understand why |pylint| is croaking at -what looks like 'working' code. But then there are also cases where |pylint| is -not smart enough to cope with valid |pep8| code. For changes with valid cause, -the configuration flushed into |pylint| may be found at -:file:`extras/pre_commit/pm3_csc/filecheck/pylintrc` and -:file:`extras/pre_commit/pm3_csc/filecheck/pylint-unittest-rc`. The latter one -is invoked on unit test code, where we may go a little bit less restrictive. - --------------------------------------------------------------------------------- -Directory Structure --------------------------------------------------------------------------------- -The directory structure of the |project| repository is supposed to 'keep -everything together that belongs together'. That is, code, documentation and -extra data should be gathered on a per-module basis immediately in the -repository root. The directory structure of your module should look like this: - -.. code-block:: text - - promod3.git/ Project folder - your_module/ Module directory - CMakeLists.txt CMake configuration - data/ Extra data (if needed) - CMakeLists.txt CMake configuration - ... - doc/ Documentation - CMakeLists.txt CMake configuration - your_module.rst Overview/frame of your module - ... - pymod/ Python code - CMakeLists.txt CMake configuration - __init__.py Init file needed for import - submodule1.py Code - ... - src/ C/ C++ code - CMakeLists.txt CMake configuration - source1.cc C++ code - source2.hh Header - ... - tests/ Unit tests - CMakeLists.txt CMake configuration - data/ Test data (if needed) - ... - test_your_module.py Unit tests for your_module - test_submodule1.py Unit tests for submodule1 - ... - -Additionally to the module directories there are a few extra folders: - -- :file:`actions`: Scripts callable as ``pm <ACTION_NAME>``. - See :ref:`here <how-to-start-your-own-action>` for details. -- :file:`cmake_support`: Helper functions for |cmake|. - See :ref:`here <pm3-cmake-doc>` for details. -- :file:`doc`: High-level documentation, test scripts (:file:`doc/tests`) and a - copy of the generated html documentation (:file:`doc/html`). The latter must - be kept up-to-date at least on the ``master`` branch. - See :ref:`here <writing-documentation>` for details. -- :file:`extras`: Extra data and information that doesn't fit anywhere - else (e.g. |git| hooks or scripts to recreate the binary files). -- :file:`scripts`: Input for scripts that end up in :file:`stage/bin` - --------------------------------------------------------------------------------- -|cmake| --------------------------------------------------------------------------------- -The attentive reader may have noticed all the :file:`CMakeLists.txt` files in -the directory structure. Those are needed to configure the build system, e.g. -tell it which files have to be considered packaging, compiling, etc.. Also -|python| modules are declared there as well as which files belong to the -documentation. |cmake| is a rather complex topic (unfortunately all usable -build systems seem to be) so we skip a detailed view, here, and just advice you -to go by example. There is a tiny bit of documentation on our additions to -|cmake| :ref:`here <pm3-cmake-doc>`. If you really need to make changes to the -build system, other than adding new files and modules, you have to dive into -|cmake| documentation all by yourself and on your own responsibility. You have -been warned. - --------------------------------------------------------------------------------- -The :file:`stage` Directory --------------------------------------------------------------------------------- -Once you hit :command:`make` in your build directory, a directory :file:`stage` -in this path will be populated. It just resembles a directory structure as of a -usual Unix file system filled with the build products of |project|. The -:file:`stage` directory tree can already be utilised. You may import Python -modules from there, use the binaries from :file:`stage/bin`, etc.. - - -.. |pylint| replace:: Pylint -.. _pylint: https://www.pylint.org +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +|project| Setup +================================================================================ + +The following should give an overview of how this project is set up. Anyone +planning to develop parts of |project| should read this! Important topics are +|git| branches, the directory structure and tightly linked with this also +|cmake|. + +.. _git-branches: + +-------------------------------------------------------------------------------- +|git| Branches +-------------------------------------------------------------------------------- +Basically we have two, sometimes three major branches. ``master``, ``develop`` +and in front of a new release a dedicated release branch. For bugs, hotfix +branches of a rather short life are used. + +``master`` is the stable branch, corresponding to a released version. It is +solely fed by a release or hotfix branch. + +Release branches, usually labelled ``release-<VERSION>``, are branched of +``develop`` to fix features and thoroughly test them before a new major +release. Once everything looks trustworthy, such a branch is merged into +``master`` and since there should be a few bug fixes in, ``master`` is merged +into ``develop``. Bugs are fixed in dedicated hotfix branches, which should +only exist for the fix and testing itself. Those are forged from release +branches or ``master``. If created for ``master``, they are also merged back +into ``develop``. + +The ``develop`` branch exists to introduce new features up to the level of +whole projects extending |project| and see that they work seamlessly together +with the rest of the system. There do exist a couple of rather strict rules for +what goes into this branch: + +* Your code must have been (briefly) reviewed by others +* There have to be unit tests +* It needs to pass ``make check`` **including** ``doctest`` & ``linkcheck`` +* Your project needs documentation +* It must not break the ability of out-of-source builds + +The reason to be a bit restrictive on branches which end up in actual releases, +should be mostly obvious: |project| is used by productive services as a third +party toolbox. There it is not an item of active development and people +probably have no insight in its internals. So messing up a new release creates +a lot of extra work for a lot of people. First for the developer of a service +to find out that |project| has turned malicious, then for the maintainer of +this package to figure out that its your contribution messing things up and in +the end for you, fixing the problems. + +The place where you may get messy is your own |git| branch within the |project| +repository. This is basically where you should develop your project. Once you +created something that could go into a release, tidy things up according to the +rules from above and merge it into ``develop``. From there it will +automatically find its way into the next release. + +To set up your own branch, start from a current ``develop`` branch: + +.. code-block:: console + + $ git checkout develop # switch to branch develop + $ git pull --rebase # update branch develop + $ git checkout -b <BRANCHNAME> # create branch <BRANCHNAME> and switch to it + +Over time, ``develop`` may recognise some changes, e.g. new features, which you +want to make use of in your project. Keeping your branch up to date is a three +step process. |git| does not allow updates on top of changed code, so either +changes have to be committed, or if in the middle of implementing something, +stored away temporarily. Making commits is straight forward: + +.. code-block:: console + + $ git commit -m '<DESCRIPTION>' # commit changes including a comment + +Hiding your changes away from |git| just for updating files is a bit more +involved. Everything is easily stored on an internal stack and needs to be +fetched from there, once the branch was updated. One major problem in the past +was a possible loss of code by those operations. If the update changes a file +you have changed, too, and stashed away, this may end up in a non-resolvable +merge conflict and your changes are lost. Usually the log tells you, which +files were recently modified. Moving all current changes to the stack is +achieved by: + +.. code-block:: console + + $ git stash save + +To revive them, use: + +.. code-block:: console + + $ git stash pop + +After cleaning up your branch, switch to ``develop``, update it and switch back: + +.. code-block:: console + + $ git checkout develop + $ git pull --rebase + $ git checkout <BRANCHNAME> + +Now for actually updating your branch, there are two different ways: merging +and rebasing. A rebase may only be done, if you **never** pushed your branch to +the origin of the repository (otherwise you will mess up history, in the worst +case ``develop`` may be unusable once you merge): + +.. code-block:: console + + $ git rebase develop + +For branches which are available to others, do a proper merge: + +.. code-block:: console + + $ git merge develop + +This may require some manual conflict solving and will end up in a merge commit. + +-------------------------------------------------------------------------------- +|git| Hooks +-------------------------------------------------------------------------------- +|git| hooks are scripts invoked by |git| in connection to certain commands. +|project| currently provides one for :command:`commit`. It is installed by + +.. code-block:: console + + $ cp extras/pre_commit/pre-commit .git/hooks/ + +Its task is applying coding standards and doing a bunch of other checks on the +files involved in a commit. Everything around the script is hosted in +:file:`extras/pre_commit/`. The checks can be manually executed with + +.. code-block:: console + + $ python .git/hooks/pre-commit + +If you ever have to skip the hook, + +.. code-block:: console + + $ git commit --no-verify + +does the trick. **But** checks are always run on the complete file containing +changes, not only on the lines changed. This means if you opt out of an issue, +it will reappear next time that very file changes. + +For checking |python| code, the pre-commit hook employs |pylint|_, to make sure +we stay close to |pep8|_. If you feel the need to make changes to the |pylint| +call, please make sure you fully understand what the complaints are. Sometimes +|pep8| sounds overly restrictive but it may help with performance and +compatibility with |python| 3. For |project| it is also important that the code +looks similar throughout the various modules. So do not disable a check because +it just seems inconvenient or you do not understand why |pylint| is croaking at +what looks like 'working' code. But then there are also cases where |pylint| is +not smart enough to cope with valid |pep8| code. For changes with valid cause, +the configuration flushed into |pylint| may be found at +:file:`extras/pre_commit/pm3_csc/filecheck/pylintrc` and +:file:`extras/pre_commit/pm3_csc/filecheck/pylint-unittest-rc`. The latter one +is invoked on unit test code, where we may go a little bit less restrictive. + +-------------------------------------------------------------------------------- +Directory Structure +-------------------------------------------------------------------------------- +The directory structure of the |project| repository is supposed to 'keep +everything together that belongs together'. That is, code, documentation and +extra data should be gathered on a per-module basis immediately in the +repository root. The directory structure of your module should look like this: + +.. code-block:: text + + promod3.git/ Project folder + your_module/ Module directory + CMakeLists.txt CMake configuration + data/ Extra data (if needed) + CMakeLists.txt CMake configuration + ... + doc/ Documentation + CMakeLists.txt CMake configuration + your_module.rst Overview/frame of your module + ... + pymod/ Python code + CMakeLists.txt CMake configuration + __init__.py Init file needed for import + submodule1.py Code + ... + src/ C/ C++ code + CMakeLists.txt CMake configuration + source1.cc C++ code + source2.hh Header + ... + tests/ Unit tests + CMakeLists.txt CMake configuration + data/ Test data (if needed) + ... + test_your_module.py Unit tests for your_module + test_submodule1.py Unit tests for submodule1 + ... + +Additionally to the module directories there are a few extra folders: + +- :file:`actions`: Scripts callable as ``pm <ACTION_NAME>``. + See :ref:`here <how-to-start-your-own-action>` for details. +- :file:`cmake_support`: Helper functions for |cmake|. + See :ref:`here <pm3-cmake-doc>` for details. +- :file:`doc`: High-level documentation, test scripts (:file:`doc/tests`) and a + copy of the generated html documentation (:file:`doc/html`). The latter must + be kept up-to-date at least on the ``master`` branch. + See :ref:`here <writing-documentation>` for details. +- :file:`extras`: Extra data and information that doesn't fit anywhere + else (e.g. |git| hooks or scripts to recreate the binary files). +- :file:`scripts`: Input for scripts that end up in :file:`stage/bin` + +-------------------------------------------------------------------------------- +|cmake| +-------------------------------------------------------------------------------- +The attentive reader may have noticed all the :file:`CMakeLists.txt` files in +the directory structure. Those are needed to configure the build system, e.g. +tell it which files have to be considered packaging, compiling, etc.. Also +|python| modules are declared there as well as which files belong to the +documentation. |cmake| is a rather complex topic (unfortunately all usable +build systems seem to be) so we skip a detailed view, here, and just advice you +to go by example. There is a tiny bit of documentation on our additions to +|cmake| :ref:`here <pm3-cmake-doc>`. If you really need to make changes to the +build system, other than adding new files and modules, you have to dive into +|cmake| documentation all by yourself and on your own responsibility. You have +been warned. + +-------------------------------------------------------------------------------- +The :file:`stage` Directory +-------------------------------------------------------------------------------- +Once you hit :command:`make` in your build directory, a directory :file:`stage` +in this path will be populated. It just resembles a directory structure as of a +usual Unix file system filled with the build products of |project|. The +:file:`stage` directory tree can already be utilised. You may import Python +modules from there, use the binaries from :file:`stage/bin`, etc.. + + +.. |pylint| replace:: Pylint +.. _pylint: https://www.pylint.org diff --git a/doc/html/_sources/developers.rst.txt b/doc/html/_sources/developers.txt similarity index 97% rename from doc/html/_sources/developers.rst.txt rename to doc/html/_sources/developers.txt index de9daf7d66b4c15ed137e913719e833540cd0934..f6f8d87b436f9d35d469d70aa95f5ef30c0379ff 100644 --- a/doc/html/_sources/developers.rst.txt +++ b/doc/html/_sources/developers.txt @@ -1,33 +1,33 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Documentation For Developers -=============================================================================== - -This section is for developers that wish to extending the functionality of -|project|. It describes helper classes for development and how to contribute -new features. - -Contents: - -.. toctree:: - :maxdepth: 2 - - dev_setup - contributing - actions/index_dev - cmake/index - portableIO +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Documentation For Developers +=============================================================================== + +This section is for developers that wish to extending the functionality of +|project|. It describes helper classes for development and how to contribute +new features. + +Contents: + +.. toctree:: + :maxdepth: 2 + + dev_setup + contributing + actions/index_dev + cmake/index + portableIO diff --git a/doc/html/_sources/gettingstarted.rst.txt b/doc/html/_sources/gettingstarted.txt similarity index 97% rename from doc/html/_sources/gettingstarted.rst.txt rename to doc/html/_sources/gettingstarted.txt index 677457ad7044f9d87d022e3ffd1accb5bfee8ade..46292a7a8a9d64cc1380dfea331837ddd8c82f21 100644 --- a/doc/html/_sources/gettingstarted.rst.txt +++ b/doc/html/_sources/gettingstarted.txt @@ -1,71 +1,71 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Getting Started -================================================================================ - -Get and Run |project| --------------------------------------------------------------------------------- -First steps to get |project| up and running: - -#. Fetch the source code from https://git.scicore.unibas.ch/schwede/ProMod3.git. - Or directly pull it with git: - - .. code-block:: console - - $ git clone https://git.scicore.unibas.ch/schwede/ProMod3.git <DIR> - -#. Obtain all dependencies and compile |project| with ``cmake`` and ``make`` - (see :ref:`here <building-promod>`). -#. Ensure that you have a ``stage/bin`` folder which includes a ``pm`` executable. - For convenience, add the folder to your ``PATH`` env. variable. -#. You can now execute |project| by running the following in your terminal: - - .. code-block:: console - - $ pm <COMMAND> - - Here ``<COMMAND>`` can be: - - - a predefined "action" (see :ref:`here <promod-actions>`) - - the path to a python script, such as the following example: - - .. literalinclude:: ../../tests/doc/scripts/hello_world.py - - The execution of this script should generate a ``test.pdb`` file, which you - can visualize with any pdb reader (e.g. ``dng`` from |ost_s|). - - -Modelling pipeline --------------------------------------------------------------------------------- -|project| is meant to help you perform operations for protein homology modelling. -Commonly, your input is a template structure and an alignment of the template to -the desired target sequence. The modelling steps then are: - -- Build a raw model from a template by copying the part of the template which - is conserved -- Perform loop modelling to close all gaps (see :mod:`~promod3.loop` module) -- Reconstruct sidechains (using :mod:`~promod3.sidechain` module) -- Minimize energy of final model using molecular mechanics - (using :mod:`ost.mol.mm` from |ost_s|) - -Since a good amount of time is spent in OpenMM routines to minimize energy, we -try to use the fast and multi-threaded "CPU" platform of OpenMM (should be -included and working on any hardware supported by OpenMM). If the platform is -not available, we use the slower "Reference" platform. For the "CPU" platform, -multiple CPU threads can be used by setting the env. variable -``PM3_OPENMM_CPU_THREADS`` to the number of desired threads. If the variable is -not set, 1 thread will be used by default. +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Getting Started +================================================================================ + +Get and Run |project| +-------------------------------------------------------------------------------- +First steps to get |project| up and running: + +#. Fetch the source code from https://git.scicore.unibas.ch/schwede/ProMod3.git. + Or directly pull it with git: + + .. code-block:: console + + $ git clone https://git.scicore.unibas.ch/schwede/ProMod3.git <DIR> + +#. Obtain all dependencies and compile |project| with ``cmake`` and ``make`` + (see :ref:`here <building-promod>`). +#. Ensure that you have a ``stage/bin`` folder which includes a ``pm`` executable. + For convenience, add the folder to your ``PATH`` env. variable. +#. You can now execute |project| by running the following in your terminal: + + .. code-block:: console + + $ pm <COMMAND> + + Here ``<COMMAND>`` can be: + + - a predefined "action" (see :ref:`here <promod-actions>`) + - the path to a python script, such as the following example: + + .. literalinclude:: ../../tests/doc/scripts/hello_world.py + + The execution of this script should generate a ``test.pdb`` file, which you + can visualize with any pdb reader (e.g. ``dng`` from |ost_s|). + + +Modelling pipeline +-------------------------------------------------------------------------------- +|project| is meant to help you perform operations for protein homology modelling. +Commonly, your input is a template structure and an alignment of the template to +the desired target sequence. The modelling steps then are: + +- Build a raw model from a template by copying the part of the template which + is conserved +- Perform loop modelling to close all gaps (see :mod:`~promod3.loop` module) +- Reconstruct sidechains (using :mod:`~promod3.sidechain` module) +- Minimize energy of final model using molecular mechanics + (using :mod:`ost.mol.mm` from |ost_s|) + +Since a good amount of time is spent in OpenMM routines to minimize energy, we +try to use the fast and multi-threaded "CPU" platform of OpenMM (should be +included and working on any hardware supported by OpenMM). If the platform is +not available, we use the slower "Reference" platform. For the "CPU" platform, +multiple CPU threads can be used by setting the env. variable +``PM3_OPENMM_CPU_THREADS`` to the number of desired threads. If the variable is +not set, 1 thread will be used by default. diff --git a/doc/html/_sources/index.rst.txt b/doc/html/_sources/index.txt similarity index 96% rename from doc/html/_sources/index.rst.txt rename to doc/html/_sources/index.txt index bd8288a5112bed6b768136df1fde496f4e047f47..cb7b8e6cf2eb36e5228bf9081780ddfbc2eb54e1 100644 --- a/doc/html/_sources/index.rst.txt +++ b/doc/html/_sources/index.txt @@ -1,43 +1,43 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -ProMod3 -======= - -|project| is a modelling engine based on the `OpenStructure <https://openstructure.org>`_ [biasini2013]_ -computational structural biology framework that can perform all steps required -to generate a protein model by homology. Its modular design aims at -implementing flexible modelling pipelines and fast prototyping of novel -algorithms. - -The source code can be found here: https://git.scicore.unibas.ch/schwede/ProMod3 - - -Documentation -============= - -.. toctree:: - :maxdepth: 2 - - Users <users> - -.. toctree:: - :maxdepth: 1 - - Developers <developers> - License <license> - References <references> - Changelog <changelog> +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +ProMod3 +======= + +|project| is a modelling engine based on the `OpenStructure <https://openstructure.org>`_ [biasini2013]_ +computational structural biology framework that can perform all steps required +to generate a protein model by homology. Its modular design aims at +implementing flexible modelling pipelines and fast prototyping of novel +algorithms. + +The source code can be found here: https://git.scicore.unibas.ch/schwede/ProMod3 + + +Documentation +============= + +.. toctree:: + :maxdepth: 2 + + Users <users> + +.. toctree:: + :maxdepth: 1 + + Developers <developers> + License <license> + References <references> + Changelog <changelog> diff --git a/doc/html/_sources/license.rst.txt b/doc/html/_sources/license.txt similarity index 97% rename from doc/html/_sources/license.rst.txt rename to doc/html/_sources/license.txt index 0a5f2dfb9cabe325d4af13c4a161652e262e2477..90235e9bec3febaf6e1720500db916f17c52331c 100644 --- a/doc/html/_sources/license.rst.txt +++ b/doc/html/_sources/license.txt @@ -1,22 +1,22 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -License -======= - - - -.. literalinclude:: license.txt +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +License +======= + + + +.. literalinclude:: license.txt diff --git a/doc/html/_sources/loop/all_atom.rst.txt b/doc/html/_sources/loop/all_atom.txt similarity index 97% rename from doc/html/_sources/loop/all_atom.rst.txt rename to doc/html/_sources/loop/all_atom.txt index 1717ce0da7de51ec9fa62aa3f3a226a21edcdf4d..f971b0723ac011b556b9376b357c52ef0dd0783a 100644 --- a/doc/html/_sources/loop/all_atom.rst.txt +++ b/doc/html/_sources/loop/all_atom.txt @@ -1,673 +1,673 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Handling All Atom Positions -================================================================================ - -.. currentmodule:: promod3.loop - -To represent and handle all atom loops, we provide a container -(:class:`AllAtomPositions`) to represent arbitrary amino acid sequences with the -positions of all their heavy atoms and an environment (:class:`AllAtomEnv`) to -handle changes during loop modelling. - -The example below showcases some operations on the two classes: - -.. literalinclude:: ../../../tests/doc/scripts/loop_all_atom.py - - -The AllAtomEnv class --------------------------------------------------------------------------------- - -.. class:: AllAtomEnv(seqres) - - The all atom environment contains and handles positions of all atoms during - loop modelling. It is linked to a (list of) seqres (one per chain) at - construction. The idea is to initialize it at the beginning of the modelling - process with all known positions and then update the environment whenever a - new loop is being added. - - :param seqres: Internal SEQRES to be set (single chain or list with one per - chain). Whenever setting structural data, consistency with this SEQRES is enforced. - :type seqres: :class:`str` / :class:`ost.seq.SequenceHandle` / - :class:`list` of :class:`str` / :class:`ost.seq.SequenceList` - - Indexing to access parts of the environment: - - * *chain_idx*: Index of chain as it occurs in *seqres* (0 for single sequence) - * *start_resnum*: Residue number defining the position in the SEQRES of chain - with index *chain_idx*. **The numbering starts for every chain with the - value 1**. - * internal residue indexing: all residues of all chains are simply - concatenated one after each other (indexing starts at 0) - - .. method:: SetInitialEnvironment(env_structure) - - Sets full environment. Existing data is cleared first. - - :param env_structure: Structral data to be set as environment. The chains - in *env_structure* are expected to be in the same - order as the SEQRES items provided in constructor. - :type env_structure: :class:`ost.mol.EntityHandle` - - :raises: :exc:`~exceptions.RuntimeError` if *env* is inconsistent with - SEQRES set in constructor. This can be because of corrupt residue - numbers or sequence mismatches. - - .. method:: SetEnvironment(new_env_pos) - SetEnvironment(new_pos, start_resnum, chain_idx=0) - SetEnvironment(bb_list, start_resnum, chain_idx=0) - - Add/update atom positions in environment. In the end, all residues covered - in *new_env_pos* / *new_pos* / *bb_list* will be set as defined there. This - means, that positions in the env. may be reset, newly set or cleared. - - :param new_env_pos: Structural data to be set as environment. - :type new_env_pos: :class:`AllAtomEnvPositions` - :param new_pos: Structural data to be set as environment. - :type new_pos: :class:`AllAtomPositions` - :param bb_list: Backbone data to be set as environment. - :type bb_list: :class:`BackboneList` - :param start_resnum: Res. number defining the start position in the SEQRES. - :type start_resnum: :class:`int` / :class:`ost.mol.ResNum` - :param chain_idx: Index of chain the structural data belongs to. - :type chain_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *new_pos* / *new_env_pos* / - *bb_list* is inconsistent with SEQRES set in constructor or when - either *start_resnum* or *chain_idx* point to invalid positions in - the SEQRES. - - .. method:: ClearEnvironment(start_resnum, num_residues, chain_idx=0) - - Clears a stretch of length *num_residues* in the environment in chain - with idx *chain_idx* starting from residue number *start_resnum* - - :param start_resnum: Start of stretch to clear - :type start_resnum: :class:`int` - :param num_residues: Length of stretch to clear - :type num_residues: :class:`int` - :param chain_idx: Chain the stretch belongs to - :type chain_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` when either *start_resnum* or - *chain_idx* point to invalid positions in the SEQRES. - - .. method:: GetEnvironment(start_resnum, num_residues, chain_idx=0) - - :return: Copy of stretch of structural data in environment. Useful to store - a loop to reset later with :meth:`SetEnvironment`. - :rtype: :class:`AllAtomEnvPositions` - - :param start_resnum: Start of stretch to store - :type start_resnum: :class:`int` - :param num_residues: Length of stretch to store - :type num_residues: :class:`int` - :param chain_idx: Chain the stretch belongs to - :type chain_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` when either *start_resnum* or - *chain_idx* point to invalid positions in the SEQRES. - - .. method:: GetSeqres() - - :return: SEQRES that was set in constructor (one sequence per chain). - :rtype: :class:`ost.seq.SequenceList` - - .. method:: GetAllAtomPositions() - - :return: Reference (use with caution!) to the internal storage of all atom - positions for the environment. All residues of all chains are - stored continuously in there. To get a copy of some positions use - :meth:`GetEnvironment`. - :rtype: :class:`AllAtomPositions` - - -The AllAtomPositions class --------------------------------------------------------------------------------- - -.. class:: AllAtomPositions - - Container for the positions of all heavy atoms of an arbitrary amino acid sequence. This is tailored for fast operations within |C++| codes. The Python export described here, is mainly meant for debugging or to initialize the object and feed it to other classes using it. - - Indexing of positions and residues: - - - residue indexing is in the range [0, :meth:`GetNumResidues`-1] and is in the - order of the sequence used to initialize the object - - indexing of single atoms is in the range [0, :meth:`GetNumAtoms`-1]. For - each residue you can find the bounds with :meth:`GetFirstIndex` and - :meth:`GetLastIndex` or find a single atom with :meth:`GetIndex` - - Each atom position is initially unset (unless a list of residues is passed - when constructing it) and can only be set with calls to :meth:`SetPos` or - :meth:`SetResidue`. - - .. method:: AllAtomPositions(sequence) - - Creates a container for the given *sequence* with all positions unset. - - :param sequence: Sequence of amino acid one letter codes. - :type sequence: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if *sequence* contains a one letter - code which is not one of the 20 default amino acids. - - .. method:: AllAtomPositions(residues) - - Creates a container for the given *residues*. Both sequence and positions - are extracted from the given residues. - - :param residues: List of residues - :type residues: :class:`ost.mol.ResidueHandleList` - - :raises: :exc:`~exceptions.RuntimeError` if any residue has a one letter - code which is not one of the 20 default amino acids. - - .. method:: AllAtomPositions(sequence, residues) - - Creates a container for the given *sequence* and extracts positions from - *residues*. The residues may be different amino acids than the given - *sequence* (see :meth:`SetResidue`). - - :param sequence: Sequence of amino acid one letter codes. - :type sequence: :class:`str` - :param residues: List of residues from which positions are extracted. - :type residues: :class:`ost.mol.ResidueHandleList` - - :raises: :exc:`~exceptions.RuntimeError` if *sequence* contains a one letter - code which is not one of the 20 default amino acids or if - *sequence* and *residues* are inconsistent in size. - - .. method:: AllAtomPositions(bb_list) - - Creates a container for the given backbone. Both sequence and backbone - positions are extracted from the given residues. - - :param bb_list: Backbone list of residues - :type bb_list: :class:`BackboneList` - - :raises: :exc:`~exceptions.RuntimeError` if any residue has a one letter - code which is not one of the 20 default amino acids. - - - .. method:: SetResidue(res_index, res) - - Set positions for residue at index *res_index* given the atoms in *res*. - For each expected heavy atom, we search for an atom of that name in *res* - and if found set the corresponding position, otherwise we unset it. - - :param res_index: Residue index - :type res_index: :class:`int` - :param res: Residue providing atoms - :type res: :class:`ost.mol.ResidueHandle` - - :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds. - - .. method:: SetResidue(res_index, other, other_res_index) - - Set positions for residue at index *res_index* given the positions of - residue at index *other_res_index* in *other* position container. Each - position is set or cleared according to the data in *other*. - - :param res_index: Residue index - :type res_index: :class:`int` - :param other: Position container from which we take data - :type other: :class:`AllAtomPositions` - :param other_res_index: Residue index in *other* - :type other_res_index: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *res_index* or *other_res_index* - out of bounds or if residues in the two containers are inconsistent - (different amino acids). - - .. method:: SetPos(index, pos) - - :param index: Set position at that index. - :type index: :class:`int` - :param pos: Set position to *pos*. - :type pos: :class:`ost.geom.Vec3` - - :raises: :exc:`~exceptions.RuntimeError` if *index* out of bounds. - - .. method:: ClearPos(index) - - :param index: Unset position at that index. - :type index: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *index* out of bounds. - - .. method:: ClearResidue(res_index) - - :param res_index: Unset all positions for residue at that index. - :type res_index: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds. - - - .. method:: GetPos(index) - - :return: Position at given index. - :rtype: :class:`ost.geom.Vec3` - :param index: Atom position index. - :type index: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *index* out of bounds. - - .. method:: IsSet(index) - - :return: True, if the position at that index is currently set. - :rtype: :class:`bool` - :param index: Atom position index. - :type index: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *index* out of bounds. - - - .. method:: GetIndex(res_index, atom_name) - - :return: Atom position index for atom named *atom_name* (standard PDB - naming) for residue at index *res_index*. - :rtype: :class:`int` - :param res_index: Residue index - :type res_index: :class:`int` - :param atom_name: Atom name - :type atom_name: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds or - if *atom_name* is not one of that residue's heavy atoms. - - .. method:: GetFirstIndex(res_index) - - :return: First atom position index for residue at index *res_index*. - :rtype: :class:`int` - :param res_index: Residue index - :type res_index: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds. - - .. method:: GetLastIndex(res_index) - - :return: Last atom position index for residue at index *res_index*. - :rtype: :class:`int` - :param res_index: Residue index - :type res_index: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds. - - .. method:: GetAA(res_index) - - :return: Amino acid type of residue at index *res_index*. - :rtype: :class:`ost.conop.AminoAcid` - :param res_index: Residue index - :type res_index: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds. - - .. method:: IsAnySet(res_index) - - :return: True, if any atom position of residue at index *res_index* is set. - :rtype: :class:`bool` - :param res_index: Residue index - :type res_index: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds. - - .. method:: IsAllSet(res_index) - - :return: True, if all atom positions of residue at index *res_index* are set. - :rtype: :class:`bool` - :param res_index: Residue index - :type res_index: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds. - - - .. method:: GetPhiTorsion(res_index, def_angle=-1.0472) - - :return: Phi torsion angle of residue at index *res_index* or *def_angle* - if required atom positions (C-N-CA-C) are not set. - :rtype: :class:`float` - :param res_index: Residue index - :type res_index: :class:`int` - :param def_angle: Default phi angle. - :type def_angle: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if *res_index* - 1 or *res_index* - out of bounds. - - .. method:: GetPsiTorsion(res_index, def_angle=-0.7854) - - :return: Psi torsion angle of residue at index *res_index* or *def_angle* - if required atom positions (N-CA-C-N) are not set. - :rtype: :class:`float` - :param res_index: Residue index - :type res_index: :class:`int` - :param def_angle: Default psi angle. - :type def_angle: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if *res_index* or *res_index* + 1 - out of bounds. - - .. method:: GetOmegaTorsion(res_index, def_angle=3.14159) - - :return: Omega torsion angle of residue at index *res_index* or *def_angle* - if required atom positions (CA-C-N-CA) are not set. - Here, we use CA-C of residue *res_index* - 1 and N-CA of residue - *res_index* (consistent with OST's - :meth:`~ost.mol.ResidueHandle.GetOmegaTorsion`). - :rtype: :class:`float` - :param res_index: Residue index - :type res_index: :class:`int` - :param def_angle: Default omega angle. - :type def_angle: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if *res_index* - 1 or *res_index* - out of bounds. - - .. method:: GetNumAtoms() - - :return: Number of atom positions stored in this container. - :rtype: :class:`int` - - .. method:: GetNumResidues() - - :return: Number of residues stored in this container. - :rtype: :class:`int` - - .. method:: GetSequence() - - :return: Sequence of one letter codes of all residues stored here. - :rtype: :class:`str` - - - .. method:: Copy() - - :return: Full copy of this object. - :rtype: :class:`AllAtomPositions` - - .. method:: Extract(from, to) - - :return: Container with residues with indices in range [*from*, *to*-1]. - :rtype: :class:`AllAtomPositions` - :param from: First residue index - :type from: :class:`int` - :param to: One after last residue index - :type to: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *from* >= *to* or if any residue - index is out of bounds. - - .. method:: Extract(res_indices) - - :return: Container with residues with indices in *res_indices*. - :rtype: :class:`AllAtomPositions` - :param res_indices: List of residue index - :type res_indices: :class:`list` of :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if any residue index is out of - bounds. - - .. method:: ExtractBackbone(from, to) - - :return: Backbone list of residues with indices in range [*from*, *to*-1]. - CB atoms are reconstructed if unset. - :rtype: :class:`BackboneList` - :param from: First residue index - :type from: :class:`int` - :param to: One after last residue index - :type to: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *from* >= *to*, if any residue - index is out of bounds or if any residue has any unset backbone - atom (N, CA, C, O). - - .. method:: ToEntity() - - :return: All residues packed in a single chain as an OST entity. - Connectivity resolved with :class:`ost.conop.HeuristicProcessor`. - :rtype: :class:`ost.mol.EntityHandle` - - .. method:: InsertInto(res_index, chain, res_num) - - Insert a single residue (taken from given index) into the *chain* (with - given res. number). Existing data is replaced and atoms are (re)connected - according to the default connectivity of that amino acid. Peptide links to - neighboring residues are set according to residue numbering. To make this - function efficient, we require the backbone atoms (N, C, CA) to be set. - - :param res_index: Residue index - :type res_index: :class:`int` - :param chain: Chain into which we insert - :type chain: :class:`ost.mol.ChainHandle` - :param start_resnum: Residue number for the inserted residue - :type start_resnum: :class:`int` / :class:`ost.mol.ResNum` - - :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds, if - *chain* is invalid or if not all backbone atoms (N, C, CA) set. - - -The AllAtomEnvPositions class --------------------------------------------------------------------------------- - -.. class:: AllAtomEnvPositions - - To link the arbitrary amino acid sequence defined in :class:`AllAtomPositions` - and the SEQRES of :class:`AllAtomEnv`, we provide a helper class containing - structural data as well as a mapping to the internal residue indices of - :class:`AllAtomEnv`. - - .. attribute:: all_pos - - Container for the positions of all heavy atoms of some residues. - - :type: :class:`AllAtomPositions` - - .. attribute:: res_indices - - Residue indices to be used by :class:`AllAtomEnv` for each residue defined - in *all_pos*. - - :type: :class:`list` of :class:`int` - - -Distinguishing amino acid atoms --------------------------------------------------------------------------------- - -.. class:: AminoAcidAtom - - Enumerates all heavy atoms of all amino acids. The naming scheme is TLC_AN, - where TLC is the standard three letter code of the amino acid and AN is the - atom name (standard PDB naming) of the heavy atom. Examples: *ALA_CB*, - *ARG_CA*, *ASN_C*, *ASP_O*, *CYS_SG*, *GLU_OE1*, *GLN_NE2*, *GLY_N*. - - We include all heavy atoms that amino acids have when they are peptide bound - to other residues (i.e. no OXT). - - Additionally, there is the value *XXX_NUM_ATOMS*, which corresponds to the - number of atoms in the enumerator. Each heavy atom hence corresponds to an - integer in the range [0, *XXX_NUM_ATOMS*-1]. - -.. class:: AminoAcidHydrogen - - Enumerates all hydrogens of all amino acids. The naming scheme is TLC_AN, - where TLC is the standard three letter code of the amino acid and AN is the - atom name (standard PDB naming) of the hydrogen. Examples: *ALA_H*, - *ARG_HD3*, *ASN_HB2*, *ASP_HA*, *CYS_HB3*, *LEU_H*. - - We include all hydrogens that amino acids can have including *H1* (def. PDB - name = "H"), *H2* and (if not PRO) *H3* for charged N-terminal residues. Note - that the H atom attached to N when peptide bound (*H*) is distinct from the N - terminal hydrogens (e.g. *ALA_H* != *ALA_H1*). For *HIS* we consider the fully - protonated state, while *ASP* and *GLU* are included in their charged state. - - Additionally, there is the value *XXX_NUM_HYDROGENS*, which corresponds to the - number of hydrogens in the enumerator. Each hydrogen hence corresponds to an - integer in the range [0, *XXX_NUM_HYDROGENS*-1]. - -.. class:: AminoAcidLookup - - Collection of static methods to lookup properties of amino acid types - (:class:`ost.conop.AminoAcid`), heavy atom types (:class:`AminoAcidAtom`) and - hydrogen types (:class:`AminoAcidHydrogen`). - - .. staticmethod:: GetOLC(aa) - - :return: One letter code for the given amino acid - :rtype: :class:`str` - :param aa: Amino acid type - :type aa: :class:`~ost.conop.AminoAcid` - - .. staticmethod:: GetAAA(aa, atom_idx) - GetAAA(aa, atom_name) - - :return: Heavy atom type for the given amino acid and atom. - :rtype: :class:`AminoAcidAtom` - :param aa: Amino acid type - :type aa: :class:`~ost.conop.AminoAcid` - :param atom_idx: Atom index (in [0, GetNumAtoms(aa)-1]) - :type atom_idx: :class:`int` - :param atom_name: Atom name - :type atom_name: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if *atom_idx* out of bounds or if - *atom_name* is not one of the heavy atoms of *aa*. - - .. staticmethod:: GetAAH(aa, atom_idx) - GetAAH(aa, atom_name) - - :return: Hydrogen type for the given amino acid and atom. - :rtype: :class:`AminoAcidHydrogen` - :param aa: Amino acid type - :type aa: :class:`~ost.conop.AminoAcid` - :param atom_idx: Atom index (in [0, GetNumHydrogens(aa)-1]) - :type atom_idx: :class:`int` - :param atom_name: Atom name - :type atom_name: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if *atom_idx* out of bounds or if - *atom_name* is not one of the hydrogens of *aa*. - - .. staticmethod:: GetIndex(aa, atom_name) - - :return: Atom index (in [0, GetNumAtoms(aa)-1]) for the given amino acid and - atom. - :rtype: :class:`int` - :param aa: Amino acid type - :type aa: :class:`~ost.conop.AminoAcid` - :param atom_name: Atom name - :type atom_name: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if *atom_name* is not one of the - heavy atoms of *aa*. - - .. staticmethod:: GetHydrogenIndex(aa, atom_name) - - :return: Atom index (in [0, GetNumHydrogens(aa)-1]) for the given amino acid - and atom. - :rtype: :class:`int` - :param aa: Amino acid type - :type aa: :class:`~ost.conop.AminoAcid` - :param atom_name: Atom name - :type atom_name: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if *atom_name* is not one of the - hydrogens of *aa*. - - .. staticmethod:: GetNumAtoms(aa) - - :return: Number of heavy atoms of the given amino acid - :rtype: :class:`int` - :param aa: Amino acid type - :type aa: :class:`~ost.conop.AminoAcid` - - .. staticmethod:: GetMaxNumAtoms() - - :return: Max. number of heavy atoms for any amino acid - :rtype: :class:`int` - - .. staticmethod:: GetNumHydrogens(aa) - - :return: Number of hydrogens of the given amino acid - :rtype: :class:`int` - :param aa: Amino acid type - :type aa: :class:`~ost.conop.AminoAcid` - - .. staticmethod:: GetMaxNumHydrogens() - - :return: Max. number of hydrogens for any amino acid - :rtype: :class:`int` - - .. staticmethod:: GetAA(aaa) - GetAA(aah) - - :return: Amino acid type of the given heavy atom type - :rtype: :class:`~ost.conop.AminoAcid` - :param aaa: Heavy atom type - :type aaa: :class:`AminoAcidAtom` - :param aah: Hydrogen type - :type aah: :class:`AminoAcidHydrogen` - - .. staticmethod:: GetAtomName(aaa) - GetAtomName(aah) - GetAtomNameCharmm(aaa) - GetAtomNameCharmm(aah) - GetAtomNameAmber(aaa) - GetAtomNameAmber(aah) - - :return: Atom name of the given heavy atom type according to PDB (default), - CHARMM or AMBER naming. - :rtype: :class:`str` - :param aaa: Heavy atom type - :type aaa: :class:`AminoAcidAtom` - :param aah: Hydrogen type - :type aah: :class:`AminoAcidHydrogen` - - .. staticmethod:: GetElement(aaa) - - :return: Chemical element of the given heavy atom type - :rtype: :class:`str` - :param aaa: Heavy atom type - :type aaa: :class:`AminoAcidAtom` - - .. staticmethod:: GetAnchorAtomIndex(aah) - - :return: Atom index (in [0, GetNumAtoms(GetAA(aah))-1]) of the anchor to - which the given hydrogen is attached. - :rtype: :class:`int` - :param aah: Hydrogen type - :type aah: :class:`AminoAcidHydrogen` - - .. staticmethod:: GetHNIndex(aa) - - :return: Atom index (in [0, GetNumHydrogens(aa)-1]) of H atom attached to N - when residue is peptide bound. - :rtype: :class:`int` - :param aa: Amino acid type - :type aa: :class:`~ost.conop.AminoAcid` - - :raises: :exc:`~exceptions.RuntimeError` if no such atom (i.e. PRO) - - .. staticmethod:: GetH1Index(aa) - GetH2Index(aa) - GetH3Index(aa) - - :return: Atom index (in [0, GetNumHydrogens(aa)-1]) of H atom attached to N - when residue is N terminal. - :rtype: :class:`int` - :param aa: Amino acid type - :type aa: :class:`~ost.conop.AminoAcid` - - :raises: :exc:`~exceptions.RuntimeError` if no such atom (i.e. H3 for PRO) +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Handling All Atom Positions +================================================================================ + +.. currentmodule:: promod3.loop + +To represent and handle all atom loops, we provide a container +(:class:`AllAtomPositions`) to represent arbitrary amino acid sequences with the +positions of all their heavy atoms and an environment (:class:`AllAtomEnv`) to +handle changes during loop modelling. + +The example below showcases some operations on the two classes: + +.. literalinclude:: ../../../tests/doc/scripts/loop_all_atom.py + + +The AllAtomEnv class +-------------------------------------------------------------------------------- + +.. class:: AllAtomEnv(seqres) + + The all atom environment contains and handles positions of all atoms during + loop modelling. It is linked to a (list of) seqres (one per chain) at + construction. The idea is to initialize it at the beginning of the modelling + process with all known positions and then update the environment whenever a + new loop is being added. + + :param seqres: Internal SEQRES to be set (single chain or list with one per + chain). Whenever setting structural data, consistency with this SEQRES is enforced. + :type seqres: :class:`str` / :class:`ost.seq.SequenceHandle` / + :class:`list` of :class:`str` / :class:`ost.seq.SequenceList` + + Indexing to access parts of the environment: + + * *chain_idx*: Index of chain as it occurs in *seqres* (0 for single sequence) + * *start_resnum*: Residue number defining the position in the SEQRES of chain + with index *chain_idx*. **The numbering starts for every chain with the + value 1**. + * internal residue indexing: all residues of all chains are simply + concatenated one after each other (indexing starts at 0) + + .. method:: SetInitialEnvironment(env_structure) + + Sets full environment. Existing data is cleared first. + + :param env_structure: Structral data to be set as environment. The chains + in *env_structure* are expected to be in the same + order as the SEQRES items provided in constructor. + :type env_structure: :class:`ost.mol.EntityHandle` + + :raises: :exc:`~exceptions.RuntimeError` if *env* is inconsistent with + SEQRES set in constructor. This can be because of corrupt residue + numbers or sequence mismatches. + + .. method:: SetEnvironment(new_env_pos) + SetEnvironment(new_pos, start_resnum, chain_idx=0) + SetEnvironment(bb_list, start_resnum, chain_idx=0) + + Add/update atom positions in environment. In the end, all residues covered + in *new_env_pos* / *new_pos* / *bb_list* will be set as defined there. This + means, that positions in the env. may be reset, newly set or cleared. + + :param new_env_pos: Structural data to be set as environment. + :type new_env_pos: :class:`AllAtomEnvPositions` + :param new_pos: Structural data to be set as environment. + :type new_pos: :class:`AllAtomPositions` + :param bb_list: Backbone data to be set as environment. + :type bb_list: :class:`BackboneList` + :param start_resnum: Res. number defining the start position in the SEQRES. + :type start_resnum: :class:`int` / :class:`ost.mol.ResNum` + :param chain_idx: Index of chain the structural data belongs to. + :type chain_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *new_pos* / *new_env_pos* / + *bb_list* is inconsistent with SEQRES set in constructor or when + either *start_resnum* or *chain_idx* point to invalid positions in + the SEQRES. + + .. method:: ClearEnvironment(start_resnum, num_residues, chain_idx=0) + + Clears a stretch of length *num_residues* in the environment in chain + with idx *chain_idx* starting from residue number *start_resnum* + + :param start_resnum: Start of stretch to clear + :type start_resnum: :class:`int` + :param num_residues: Length of stretch to clear + :type num_residues: :class:`int` + :param chain_idx: Chain the stretch belongs to + :type chain_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` when either *start_resnum* or + *chain_idx* point to invalid positions in the SEQRES. + + .. method:: GetEnvironment(start_resnum, num_residues, chain_idx=0) + + :return: Copy of stretch of structural data in environment. Useful to store + a loop to reset later with :meth:`SetEnvironment`. + :rtype: :class:`AllAtomEnvPositions` + + :param start_resnum: Start of stretch to store + :type start_resnum: :class:`int` + :param num_residues: Length of stretch to store + :type num_residues: :class:`int` + :param chain_idx: Chain the stretch belongs to + :type chain_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` when either *start_resnum* or + *chain_idx* point to invalid positions in the SEQRES. + + .. method:: GetSeqres() + + :return: SEQRES that was set in constructor (one sequence per chain). + :rtype: :class:`ost.seq.SequenceList` + + .. method:: GetAllAtomPositions() + + :return: Reference (use with caution!) to the internal storage of all atom + positions for the environment. All residues of all chains are + stored continuously in there. To get a copy of some positions use + :meth:`GetEnvironment`. + :rtype: :class:`AllAtomPositions` + + +The AllAtomPositions class +-------------------------------------------------------------------------------- + +.. class:: AllAtomPositions + + Container for the positions of all heavy atoms of an arbitrary amino acid sequence. This is tailored for fast operations within |C++| codes. The Python export described here, is mainly meant for debugging or to initialize the object and feed it to other classes using it. + + Indexing of positions and residues: + + - residue indexing is in the range [0, :meth:`GetNumResidues`-1] and is in the + order of the sequence used to initialize the object + - indexing of single atoms is in the range [0, :meth:`GetNumAtoms`-1]. For + each residue you can find the bounds with :meth:`GetFirstIndex` and + :meth:`GetLastIndex` or find a single atom with :meth:`GetIndex` + + Each atom position is initially unset (unless a list of residues is passed + when constructing it) and can only be set with calls to :meth:`SetPos` or + :meth:`SetResidue`. + + .. method:: AllAtomPositions(sequence) + + Creates a container for the given *sequence* with all positions unset. + + :param sequence: Sequence of amino acid one letter codes. + :type sequence: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if *sequence* contains a one letter + code which is not one of the 20 default amino acids. + + .. method:: AllAtomPositions(residues) + + Creates a container for the given *residues*. Both sequence and positions + are extracted from the given residues. + + :param residues: List of residues + :type residues: :class:`ost.mol.ResidueHandleList` + + :raises: :exc:`~exceptions.RuntimeError` if any residue has a one letter + code which is not one of the 20 default amino acids. + + .. method:: AllAtomPositions(sequence, residues) + + Creates a container for the given *sequence* and extracts positions from + *residues*. The residues may be different amino acids than the given + *sequence* (see :meth:`SetResidue`). + + :param sequence: Sequence of amino acid one letter codes. + :type sequence: :class:`str` + :param residues: List of residues from which positions are extracted. + :type residues: :class:`ost.mol.ResidueHandleList` + + :raises: :exc:`~exceptions.RuntimeError` if *sequence* contains a one letter + code which is not one of the 20 default amino acids or if + *sequence* and *residues* are inconsistent in size. + + .. method:: AllAtomPositions(bb_list) + + Creates a container for the given backbone. Both sequence and backbone + positions are extracted from the given residues. + + :param bb_list: Backbone list of residues + :type bb_list: :class:`BackboneList` + + :raises: :exc:`~exceptions.RuntimeError` if any residue has a one letter + code which is not one of the 20 default amino acids. + + + .. method:: SetResidue(res_index, res) + + Set positions for residue at index *res_index* given the atoms in *res*. + For each expected heavy atom, we search for an atom of that name in *res* + and if found set the corresponding position, otherwise we unset it. + + :param res_index: Residue index + :type res_index: :class:`int` + :param res: Residue providing atoms + :type res: :class:`ost.mol.ResidueHandle` + + :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds. + + .. method:: SetResidue(res_index, other, other_res_index) + + Set positions for residue at index *res_index* given the positions of + residue at index *other_res_index* in *other* position container. Each + position is set or cleared according to the data in *other*. + + :param res_index: Residue index + :type res_index: :class:`int` + :param other: Position container from which we take data + :type other: :class:`AllAtomPositions` + :param other_res_index: Residue index in *other* + :type other_res_index: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *res_index* or *other_res_index* + out of bounds or if residues in the two containers are inconsistent + (different amino acids). + + .. method:: SetPos(index, pos) + + :param index: Set position at that index. + :type index: :class:`int` + :param pos: Set position to *pos*. + :type pos: :class:`ost.geom.Vec3` + + :raises: :exc:`~exceptions.RuntimeError` if *index* out of bounds. + + .. method:: ClearPos(index) + + :param index: Unset position at that index. + :type index: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *index* out of bounds. + + .. method:: ClearResidue(res_index) + + :param res_index: Unset all positions for residue at that index. + :type res_index: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds. + + + .. method:: GetPos(index) + + :return: Position at given index. + :rtype: :class:`ost.geom.Vec3` + :param index: Atom position index. + :type index: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *index* out of bounds. + + .. method:: IsSet(index) + + :return: True, if the position at that index is currently set. + :rtype: :class:`bool` + :param index: Atom position index. + :type index: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *index* out of bounds. + + + .. method:: GetIndex(res_index, atom_name) + + :return: Atom position index for atom named *atom_name* (standard PDB + naming) for residue at index *res_index*. + :rtype: :class:`int` + :param res_index: Residue index + :type res_index: :class:`int` + :param atom_name: Atom name + :type atom_name: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds or + if *atom_name* is not one of that residue's heavy atoms. + + .. method:: GetFirstIndex(res_index) + + :return: First atom position index for residue at index *res_index*. + :rtype: :class:`int` + :param res_index: Residue index + :type res_index: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds. + + .. method:: GetLastIndex(res_index) + + :return: Last atom position index for residue at index *res_index*. + :rtype: :class:`int` + :param res_index: Residue index + :type res_index: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds. + + .. method:: GetAA(res_index) + + :return: Amino acid type of residue at index *res_index*. + :rtype: :class:`ost.conop.AminoAcid` + :param res_index: Residue index + :type res_index: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds. + + .. method:: IsAnySet(res_index) + + :return: True, if any atom position of residue at index *res_index* is set. + :rtype: :class:`bool` + :param res_index: Residue index + :type res_index: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds. + + .. method:: IsAllSet(res_index) + + :return: True, if all atom positions of residue at index *res_index* are set. + :rtype: :class:`bool` + :param res_index: Residue index + :type res_index: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds. + + + .. method:: GetPhiTorsion(res_index, def_angle=-1.0472) + + :return: Phi torsion angle of residue at index *res_index* or *def_angle* + if required atom positions (C-N-CA-C) are not set. + :rtype: :class:`float` + :param res_index: Residue index + :type res_index: :class:`int` + :param def_angle: Default phi angle. + :type def_angle: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if *res_index* - 1 or *res_index* + out of bounds. + + .. method:: GetPsiTorsion(res_index, def_angle=-0.7854) + + :return: Psi torsion angle of residue at index *res_index* or *def_angle* + if required atom positions (N-CA-C-N) are not set. + :rtype: :class:`float` + :param res_index: Residue index + :type res_index: :class:`int` + :param def_angle: Default psi angle. + :type def_angle: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if *res_index* or *res_index* + 1 + out of bounds. + + .. method:: GetOmegaTorsion(res_index, def_angle=3.14159) + + :return: Omega torsion angle of residue at index *res_index* or *def_angle* + if required atom positions (CA-C-N-CA) are not set. + Here, we use CA-C of residue *res_index* - 1 and N-CA of residue + *res_index* (consistent with OST's + :meth:`~ost.mol.ResidueHandle.GetOmegaTorsion`). + :rtype: :class:`float` + :param res_index: Residue index + :type res_index: :class:`int` + :param def_angle: Default omega angle. + :type def_angle: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if *res_index* - 1 or *res_index* + out of bounds. + + .. method:: GetNumAtoms() + + :return: Number of atom positions stored in this container. + :rtype: :class:`int` + + .. method:: GetNumResidues() + + :return: Number of residues stored in this container. + :rtype: :class:`int` + + .. method:: GetSequence() + + :return: Sequence of one letter codes of all residues stored here. + :rtype: :class:`str` + + + .. method:: Copy() + + :return: Full copy of this object. + :rtype: :class:`AllAtomPositions` + + .. method:: Extract(from, to) + + :return: Container with residues with indices in range [*from*, *to*-1]. + :rtype: :class:`AllAtomPositions` + :param from: First residue index + :type from: :class:`int` + :param to: One after last residue index + :type to: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *from* >= *to* or if any residue + index is out of bounds. + + .. method:: Extract(res_indices) + + :return: Container with residues with indices in *res_indices*. + :rtype: :class:`AllAtomPositions` + :param res_indices: List of residue index + :type res_indices: :class:`list` of :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if any residue index is out of + bounds. + + .. method:: ExtractBackbone(from, to) + + :return: Backbone list of residues with indices in range [*from*, *to*-1]. + CB atoms are reconstructed if unset. + :rtype: :class:`BackboneList` + :param from: First residue index + :type from: :class:`int` + :param to: One after last residue index + :type to: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *from* >= *to*, if any residue + index is out of bounds or if any residue has any unset backbone + atom (N, CA, C, O). + + .. method:: ToEntity() + + :return: All residues packed in a single chain as an OST entity. + Connectivity resolved with :class:`ost.conop.HeuristicProcessor`. + :rtype: :class:`ost.mol.EntityHandle` + + .. method:: InsertInto(res_index, chain, res_num) + + Insert a single residue (taken from given index) into the *chain* (with + given res. number). Existing data is replaced and atoms are (re)connected + according to the default connectivity of that amino acid. Peptide links to + neighboring residues are set according to residue numbering. To make this + function efficient, we require the backbone atoms (N, C, CA) to be set. + + :param res_index: Residue index + :type res_index: :class:`int` + :param chain: Chain into which we insert + :type chain: :class:`ost.mol.ChainHandle` + :param start_resnum: Residue number for the inserted residue + :type start_resnum: :class:`int` / :class:`ost.mol.ResNum` + + :raises: :exc:`~exceptions.RuntimeError` if *res_index* out of bounds, if + *chain* is invalid or if not all backbone atoms (N, C, CA) set. + + +The AllAtomEnvPositions class +-------------------------------------------------------------------------------- + +.. class:: AllAtomEnvPositions + + To link the arbitrary amino acid sequence defined in :class:`AllAtomPositions` + and the SEQRES of :class:`AllAtomEnv`, we provide a helper class containing + structural data as well as a mapping to the internal residue indices of + :class:`AllAtomEnv`. + + .. attribute:: all_pos + + Container for the positions of all heavy atoms of some residues. + + :type: :class:`AllAtomPositions` + + .. attribute:: res_indices + + Residue indices to be used by :class:`AllAtomEnv` for each residue defined + in *all_pos*. + + :type: :class:`list` of :class:`int` + + +Distinguishing amino acid atoms +-------------------------------------------------------------------------------- + +.. class:: AminoAcidAtom + + Enumerates all heavy atoms of all amino acids. The naming scheme is TLC_AN, + where TLC is the standard three letter code of the amino acid and AN is the + atom name (standard PDB naming) of the heavy atom. Examples: *ALA_CB*, + *ARG_CA*, *ASN_C*, *ASP_O*, *CYS_SG*, *GLU_OE1*, *GLN_NE2*, *GLY_N*. + + We include all heavy atoms that amino acids have when they are peptide bound + to other residues (i.e. no OXT). + + Additionally, there is the value *XXX_NUM_ATOMS*, which corresponds to the + number of atoms in the enumerator. Each heavy atom hence corresponds to an + integer in the range [0, *XXX_NUM_ATOMS*-1]. + +.. class:: AminoAcidHydrogen + + Enumerates all hydrogens of all amino acids. The naming scheme is TLC_AN, + where TLC is the standard three letter code of the amino acid and AN is the + atom name (standard PDB naming) of the hydrogen. Examples: *ALA_H*, + *ARG_HD3*, *ASN_HB2*, *ASP_HA*, *CYS_HB3*, *LEU_H*. + + We include all hydrogens that amino acids can have including *H1* (def. PDB + name = "H"), *H2* and (if not PRO) *H3* for charged N-terminal residues. Note + that the H atom attached to N when peptide bound (*H*) is distinct from the N + terminal hydrogens (e.g. *ALA_H* != *ALA_H1*). For *HIS* we consider the fully + protonated state, while *ASP* and *GLU* are included in their charged state. + + Additionally, there is the value *XXX_NUM_HYDROGENS*, which corresponds to the + number of hydrogens in the enumerator. Each hydrogen hence corresponds to an + integer in the range [0, *XXX_NUM_HYDROGENS*-1]. + +.. class:: AminoAcidLookup + + Collection of static methods to lookup properties of amino acid types + (:class:`ost.conop.AminoAcid`), heavy atom types (:class:`AminoAcidAtom`) and + hydrogen types (:class:`AminoAcidHydrogen`). + + .. staticmethod:: GetOLC(aa) + + :return: One letter code for the given amino acid + :rtype: :class:`str` + :param aa: Amino acid type + :type aa: :class:`~ost.conop.AminoAcid` + + .. staticmethod:: GetAAA(aa, atom_idx) + GetAAA(aa, atom_name) + + :return: Heavy atom type for the given amino acid and atom. + :rtype: :class:`AminoAcidAtom` + :param aa: Amino acid type + :type aa: :class:`~ost.conop.AminoAcid` + :param atom_idx: Atom index (in [0, GetNumAtoms(aa)-1]) + :type atom_idx: :class:`int` + :param atom_name: Atom name + :type atom_name: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if *atom_idx* out of bounds or if + *atom_name* is not one of the heavy atoms of *aa*. + + .. staticmethod:: GetAAH(aa, atom_idx) + GetAAH(aa, atom_name) + + :return: Hydrogen type for the given amino acid and atom. + :rtype: :class:`AminoAcidHydrogen` + :param aa: Amino acid type + :type aa: :class:`~ost.conop.AminoAcid` + :param atom_idx: Atom index (in [0, GetNumHydrogens(aa)-1]) + :type atom_idx: :class:`int` + :param atom_name: Atom name + :type atom_name: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if *atom_idx* out of bounds or if + *atom_name* is not one of the hydrogens of *aa*. + + .. staticmethod:: GetIndex(aa, atom_name) + + :return: Atom index (in [0, GetNumAtoms(aa)-1]) for the given amino acid and + atom. + :rtype: :class:`int` + :param aa: Amino acid type + :type aa: :class:`~ost.conop.AminoAcid` + :param atom_name: Atom name + :type atom_name: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if *atom_name* is not one of the + heavy atoms of *aa*. + + .. staticmethod:: GetHydrogenIndex(aa, atom_name) + + :return: Atom index (in [0, GetNumHydrogens(aa)-1]) for the given amino acid + and atom. + :rtype: :class:`int` + :param aa: Amino acid type + :type aa: :class:`~ost.conop.AminoAcid` + :param atom_name: Atom name + :type atom_name: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if *atom_name* is not one of the + hydrogens of *aa*. + + .. staticmethod:: GetNumAtoms(aa) + + :return: Number of heavy atoms of the given amino acid + :rtype: :class:`int` + :param aa: Amino acid type + :type aa: :class:`~ost.conop.AminoAcid` + + .. staticmethod:: GetMaxNumAtoms() + + :return: Max. number of heavy atoms for any amino acid + :rtype: :class:`int` + + .. staticmethod:: GetNumHydrogens(aa) + + :return: Number of hydrogens of the given amino acid + :rtype: :class:`int` + :param aa: Amino acid type + :type aa: :class:`~ost.conop.AminoAcid` + + .. staticmethod:: GetMaxNumHydrogens() + + :return: Max. number of hydrogens for any amino acid + :rtype: :class:`int` + + .. staticmethod:: GetAA(aaa) + GetAA(aah) + + :return: Amino acid type of the given heavy atom type + :rtype: :class:`~ost.conop.AminoAcid` + :param aaa: Heavy atom type + :type aaa: :class:`AminoAcidAtom` + :param aah: Hydrogen type + :type aah: :class:`AminoAcidHydrogen` + + .. staticmethod:: GetAtomName(aaa) + GetAtomName(aah) + GetAtomNameCharmm(aaa) + GetAtomNameCharmm(aah) + GetAtomNameAmber(aaa) + GetAtomNameAmber(aah) + + :return: Atom name of the given heavy atom type according to PDB (default), + CHARMM or AMBER naming. + :rtype: :class:`str` + :param aaa: Heavy atom type + :type aaa: :class:`AminoAcidAtom` + :param aah: Hydrogen type + :type aah: :class:`AminoAcidHydrogen` + + .. staticmethod:: GetElement(aaa) + + :return: Chemical element of the given heavy atom type + :rtype: :class:`str` + :param aaa: Heavy atom type + :type aaa: :class:`AminoAcidAtom` + + .. staticmethod:: GetAnchorAtomIndex(aah) + + :return: Atom index (in [0, GetNumAtoms(GetAA(aah))-1]) of the anchor to + which the given hydrogen is attached. + :rtype: :class:`int` + :param aah: Hydrogen type + :type aah: :class:`AminoAcidHydrogen` + + .. staticmethod:: GetHNIndex(aa) + + :return: Atom index (in [0, GetNumHydrogens(aa)-1]) of H atom attached to N + when residue is peptide bound. + :rtype: :class:`int` + :param aa: Amino acid type + :type aa: :class:`~ost.conop.AminoAcid` + + :raises: :exc:`~exceptions.RuntimeError` if no such atom (i.e. PRO) + + .. staticmethod:: GetH1Index(aa) + GetH2Index(aa) + GetH3Index(aa) + + :return: Atom index (in [0, GetNumHydrogens(aa)-1]) of H atom attached to N + when residue is N terminal. + :rtype: :class:`int` + :param aa: Amino acid type + :type aa: :class:`~ost.conop.AminoAcid` + + :raises: :exc:`~exceptions.RuntimeError` if no such atom (i.e. H3 for PRO) diff --git a/doc/html/_sources/loop/backbone.rst.txt b/doc/html/_sources/loop/backbone.txt similarity index 97% rename from doc/html/_sources/loop/backbone.rst.txt rename to doc/html/_sources/loop/backbone.txt index 989dbc075e087eeea1ceb9ee055fd3012ad11af6..568f331b21c20358c7605fdbe7a1fe2fdfb233ff 100644 --- a/doc/html/_sources/loop/backbone.rst.txt +++ b/doc/html/_sources/loop/backbone.txt @@ -1,552 +1,552 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Representing Loops -================================================================================ - -.. currentmodule:: promod3.loop - - -The most simple representation of structural information in |project| is the -:class:`BackboneList`. It provides a way to store the backbone positions of -residues. They provide structural manipulations, they can be manipulated and -converted from, to, or inserted to a :class:`ost.mol.EntityHandle`. - -.. literalinclude:: ../../../tests/doc/scripts/loop_backbone.py - - -The BackboneList class --------------------------------------------------------------------------------- - -.. class:: BackboneList() - - Container for the positions of the backbone atoms (nitrogen (N), alpha carbon - (CA), beta carbon (CB), carbon (C), oxygen (O)), the one letter codes and - amino acid types of a segment. This object allows to get, set or modify the - atom positions, etc through a set of functions (**indexing to access each - residue starts at 0**). To simplify algorithms, which use this structure, each - residue has a CB position defined (i.e. even if it's a glycine) and we only - allow amino acid types belonging to the 20 default amino acids. Note that the - omega torsion angle defined here for residue *i* is the dihedral between CA-C - of residue *i* and N-CA of residue *i+1* (this is shifted by 1 residue - compared to OST's :meth:`~ost.mol.ResidueHandle.GetOmegaTorsion`). - - .. 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` - - :raises: :exc:`~exceptions.RuntimeError` if *sequence* contains a one letter - code which is not one of the 20 default amino acids. - - .. 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:`tuple` objects defining the backbone - dihedral angles of created BackboneList. Every - :class:`tuple` must either have two or three - elements. Two elements are considered to define the - phi and psi angles, leading to an idealized omega - angle of 180 degrees. In case of three elements, all - angles are defined. - - :type sequence: :class:`str` - :type dihedral_angles: :class:`list` - - :raises: :exc:`~exceptions.RuntimeError` if *sequence* contains a one letter - code which is not one of the 20 default amino acids or if - *sequence* and *dihedral_angles* are inconsistent in size. - - .. method:: BackboneList(residues) - - Creates a BackboneList with positions and sequence extracted from - *residues*. - - :param residues: List of :class:`ost.mol.ResidueHandle` objects from - which the backbone positions and one letter codes - are extracted. - - :type residues: :class:`list` - - :raises: :exc:`~exceptions.RuntimeError` if a residue in *residues* - contains a one letter code which is not one of the 20 default - amino acids or when there is a residue not providing all - required positions. - - .. 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: :exc:`~exceptions.RuntimeError` if *sequence* contains a one letter - code which is not one of the 20 default amino acids or if - *sequence* and *residues* are inconsistent in size or when there is - a residue not providing all necessary positions. - - - .. method:: ToDensity(padding=10.0, sampling=Vec3(1.0,1.0,1.0), \ - resolution=3.0, high_resolution=false) - - :return: The whole backbone list converted to a density map. - :rtype: :class:`ost.img.ImageHandle` - - .. note that ImageHandle and MapHandle are the same, but former is mentioned - in OST doc, so we use that for documentation purposes - - :param padding: - :type padding: :class:`float` - :param sampling: - :type sampling: :class:`~ost.geom.Vec3` - :param resolution: - :type resolution: :class:`float` - :param high_resolution: - :type high_resolution: :class:`bool` - - .. method:: ToEntity() - - :return: The whole backbone list converted to an OST entity. - :rtype: :class:`ost.mol.EntityHandle` - - .. method:: InsertInto(chain, start_resnum) - - 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 - :type chain: :class:`ost.mol.ChainHandle` - :param start_resnum: Residue number defining the start location of insertion - :type start_resnum: :class:`int` / :class:`ost.mol.ResNum` - - .. method:: InsertInto(map, resolution=3.0, high_resolution=false) - - :param map: - :type map: :class:`ost.img.ImageHandle` - :param resolution: - :type resolution: :class:`float` - :param high_resolution: - :type high_resolution: :class:`bool` - - .. method:: GetBounds(all_atom=True) - - :returns: - :rtype: :class:`ost.geom.AlignedCuboid` - :param all_atom: - :type all_atom: :class:`bool` - - - .. method:: GetSequence() - - :return: The amino acid sequence. - :rtype: :class:`str` - - .. method:: SetSequence(sequence) - - :param sequence: Set amino acid sequence to this. - :type sequence: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if *sequence* contains a one letter - code which is not one of the 20 default amino acids or size of - *sequence* does not match. - - - .. method:: Extract(from, to) - - :returns: Items with indices *from*, ..., *to*-1 of this list. - :rtype: :class:`BackboneList` - - .. method:: ReplaceFragment(sub_fragment, index, superpose_stems) - - 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 - :param superpose_stems: If set to false, the function will simply - replace the according - :class:`Backbone` objects. If set to True, - the n-terminal and c-terminal tails are superposed onto the *sub_fragment* - stems using the positions at *index* and - *index* + len( *sub_fragment* )-1. - :type sub_fragment: :class:`BackboneList` - :type index: :class:`int` - :type superpose_stems: :class:`bool` - - :raises: :exc:`~exceptions.RuntimeError` if - *sub_fragment* does not fully fit into - actual fragment at specified *index* - - - .. method:: GetN(index) - GetCA(index) - GetCB(index) - GetC(index) - GetO(index) - - :return: Position of nitrogen / alpha carbon / beta carbon / carbon / oxygen - atom for residue at given index. - :rtype: :class:`~ost.geom.Vec3` - :param index: Residue index. - :type index: :class:`int` - - .. method:: SetN(index, pos) - SetCA(index, pos) - SetCB(index, pos) - SetC(index, pos) - SetO(index, pos) - - :param index: Residue index. - :type index: :class:`int` - :param pos: Set position of nitrogen / alpha carbon / beta carbon / carbon - / oxygen atom to this. - :type pos: :class:`~ost.geom.Vec3` - - .. method:: GetOLC(index) - - :return: One letter code of the residue at given index. - :rtype: :class:`char` - :param index: Residue index. - :type index: :class:`int` - - .. method:: SetOLC(index, olc) - - :param index: Residue index. - :type index: :class:`int` - :param olc: Set one letter code of the residue to this. - :type olc: :class:`char` - - .. method:: GetAA(index) - - :return: Amino acid type of the residue at given index. - :rtype: :class:`ost.conop.AminoAcid` - :param index: Residue index. - :type index: :class:`int` - - .. method:: SetAA(index, aa) - - :param index: Residue index. - :type index: :class:`int` - :param aa: Set amino acid type of the residue to this. - :type aa: :class:`ost.conop.AminoAcid` - - :raises: :exc:`~exceptions.RuntimeError` if *aa* == ost.conop.XXX. - - - .. method:: Set(index, n_pos, ca_pos, cb_pos, c_pos, o_pos, olc) - Set(index, n_pos, ca_pos, c_pos, o_pos, olc) - Set(index, res, olc) - - Set all backbone informations. This will reconstruct CB positions if needed - and set the amino acid type according to the given one letter code. - - :param index: Residue index. - :type index: :class:`int` - :param res: Residue from which to extract backbone atom positions - :type res: :class:`~ost.mol.ResidueHandle` - :param n_pos: Set position of nitrogen atom to this. - :type n_pos: :class:`~ost.geom.Vec3` - :param ca_pos: Set position of alpha carbon atom to this. - :type ca_pos: :class:`~ost.geom.Vec3` - :param cb_pos: Set position of beta carbon atom to this. - :type cb_pos: :class:`~ost.geom.Vec3` - :param c_pos: Set position of carbon atom to this. - :type c_pos: :class:`~ost.geom.Vec3` - :param o_pos: Set position of oxygen atom to this. - :type o_pos: :class:`~ost.geom.Vec3` - :param olc: Set one letter code of the residue to this. - :type olc: :class:`char` - - - .. method:: __len__() - - :returns: Number of residues in this backbone list. - :rtype: :class:`int` - - .. method:: resize(new_size) - - :param new_size: Resize backbone list to contain this number of residues. - If new residues are added, their properties will not be - initialized. Existing residues are untouched unless the - list is shrinked (in that case extra residues are deleted). - :type new_size: :class:`int` - - .. method:: empty() - - :returns: True if the list is empty (i.e. size 0). - :rtype: :class:`bool` - - .. method:: append(n_pos, ca_pos, cb_pos, c_pos, o_pos, olc) - append(n_pos, ca_pos, c_pos, o_pos, olc) - append(res, olc) - - Appends a new residue at the end of the :class:`BackboneList`. This will - reconstruct CB positions if needed and set the amino acid type according - to the given one letter code. - - :param res: Residue from which to extract backbone atom positions - :type res: :class:`~ost.mol.ResidueHandle` - :param n_pos: Set position of nitrogen atom to this. - :type n_pos: :class:`~ost.geom.Vec3` - :param ca_pos: Set position of alpha carbon atom to this. - :type ca_pos: :class:`~ost.geom.Vec3` - :param cb_pos: Set position of beta carbon atom to this. - :type cb_pos: :class:`~ost.geom.Vec3` - :param c_pos: Set position of carbon atom to this. - :type c_pos: :class:`~ost.geom.Vec3` - :param o_pos: Set position of oxygen atom to this. - :type o_pos: :class:`~ost.geom.Vec3` - :param olc: Set one letter code of the residue to this. - :type olc: :class:`char` - - .. method:: clear() - - Remove all residues from this list. - - .. method:: Copy() - - Creates and returns a deep copy of this :class:`BackboneList`. This can be - useful, since Python uses reference assignments. - - :rtype: :class:`BackboneList` - - .. method:: ReconstructCBetaPositions() - - Does a simple reconstruction of all CB positions based on the current - N, CA and C positions. - - .. method:: ReconstructOxygenPositions(last_psi=-0.78540) - - Does a simple reconstruction of all oxygen positions based on the actual - N, CA and C positions. The position of the last oxygen depends on the next - residue, an additional parameter is therefore required. - - :param last_psi: Psi angle of the last BackboneList residue, - the default value corresponds to a typical alpha-helix. - :type last_psi: :class:`float` - - .. method:: ReconstructCStemOxygen(after_c_stem) - - Reconstructs the last oxygen of this backbone list. The oxygen position - depends on the residue following the C stem. The position is only - reconstructed if the residue handle is valid. - - :param after_c_stem: Residue following the C stem (C stem residue is last - element of this backbone list) - :type after_c_stem: :class:`ost.mol.ResidueHandle` - - - .. method:: ApplyTransform(index, transform) - - Applies a transformation to the positions of a single residue. - - :param index: Residue index. - :type index: :class:`int` - :param transform: The transformation - :type transform: :class:`ost.geom.Mat4` - - .. method:: ApplyTransform(from, to, transform) - - Applies a transformation to the positions of the residues with indices - *from*, ..., *to*-1 of this list. - - :param from: Start index. - :type from: :class:`int` - :param to: End index (one past last residue to transform). - :type to: :class:`int` - :param transform: The transformation - :type transform: :class:`ost.geom.Mat4` - - .. method:: ApplyTransform(transform) - - Applies a transformation to all positions of this list. - - :param transform: The transformation - :type transform: :class:`ost.geom.Transform` / :class:`ost.geom.Mat4` - - .. method:: GetTransform(index, res) - GetTransform(index, other, other_index) - - :returns: Minimum RMSD transformation of residue *index* onto *res* or - residue *other_index* of *other* backbone list considering the - positions of the N, CA and C atoms. - :rtype: :class:`ost.geom.Mat4` - - :param index: Residue index. - :type index: :class:`int` - :param res: The other residue. - :type res: :class:`ost.mol.ResidueHandle` - :param other: The other backbone list. - :type other: :class:`BackboneList` - :param other_index: Residue index in *other* backbone list. - :type other_index: :class:`int` - - .. method:: GetTransform(other) - - :returns: Get minimum RMSD transformation of CA positions of this backbone - list onto CA positions of *other* backbone list. - :rtype: :class:`ost.geom.Mat4` - - :param other: The other backbone list. - :type other: :class:`BackboneList` - - .. method:: SuperposeOnto(other) - - Superposes this backbone list onto another one using CA positions. - - :param other: The other backbone list. - :type other: :class:`BackboneList` - - - .. method:: RotateAroundPhiTorsion(index, phi, sequential=False) - RotateAroundPsiTorsion(index, psi, sequential=False) - RotateAroundOmegaTorsion(index, omega, sequential=False) - RotateAroundPhiPsiTorsion(index, phi, psi, sequential=False) - SetAroundPhiTorsion(index, phi, sequential=False) - SetAroundPsiTorsion(index, psi, sequential=False) - SetAroundOmegaTorsion(index, omega, sequential=False) - SetAroundPhiPsiTorsion(index, phi, psi, sequential=False) - - Rotates/sets the phi/psi/omega torsion angle of the backbone at position - *index* in the backbone list by/to the given angle(s). - - :param index: Residue index. - :type index: :class:`int` - :param phi: Angle by which to rotate phi torsion. - :type phi: :class:`float` - :param psi: Angle by which to rotate psi torsion. - :type psi: :class:`float` - :param omega: Angle by which to rotate omega torsion. - :type omega: :class:`float` - :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 sequential: :class:`bool` - - .. method:: GetPhiTorsion(index) - GetPsiTorsion(index) - GetOmegaTorsion(index) - - :return: The phi/psi/omega torsion angle for residue at given index. - :rtype: :class:`float` - :param index: Residue index. - :type index: :class:`int` - - - .. method:: TransOmegaTorsions(thresh=20/180*pi, allow_prepro_cis=True) - - Checks whether this backbone list only contains trans omega torsion angles. - Usually, you would want this to be the case, but it can fail if you have any - unfavorable omega torsion angle in your backbone. - - :param thresh: Allowed deviation from ideal trans angle (pi) - :type thresh: :class:`float` - :param allow_prepro_cis: Flag, whether cis-omega torsions should be - allowed in case of a subsequent proline. - :type allow_prepro_cis: :class:`bool` - - :returns: whether *bb_list* only contains trans-omega torsions. - :rtype: :class:`bool` - - :raises: :exc:`~exceptions.RuntimeError` if size of this backbone list is - smaller than 3. - - .. method:: SetBackrub(index, primary_rot_angle, flanking_rot_angle_one, flanking_rot_angle_two) - - Applies a backrub motion [davis2006]_ at residue defined by **index**. - The first rotation axis is defined by the CA positions from residues at - **index** -1 and **index** +1. All atoms in between get rotated around this - axis by **primary_rot_angle**. To restore the the hydrogen bond network - of the two transformed oxygens, the backrub motion gets completed by - two compensatory rotations. The first rotation is around the axis defined by - the CA position from residue **index**-1 and the transformed central CA - position with an angle of **flanking_rot_angle_one**. The second rotation is - around the axis from the transformed central CA position to the CA position - from residue at position **index** +1 with an angle of - **flanking_rot_angle_two**. - - :param index: Position of central residue of the backrub motion - :param primary_rot_angle: Angle of the first rotation in radians - :param flanking_rot_angle_one: Angle of the first compensatory rotation - in radians - :param flanking_rot_angle_two: Angle of the second compensatory rotation - in radians - - :type index: :class:`int` - :type primary_rot_angle: :class:`float` - :type flanking_rot_angle_one: :class:`float` - :type flanking_rot_angle_two: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if **index** is smaller 1 or - larger size of BackboneList - 2 - - .. method:: SetBackrub(index, primary_rot_angle, [scaling=1.0]) - - Applies the backrub motion described above but calculates the ideal angles - for the compensatory rotations in a way, that the new oxygen positions are - as close as possible to the original ones. The ideal angles can be scaled - down by **scaling** to make them less extreme. - - :param index: Position of central residue of the backrub motion - :param primary_rot_angle: Angle of the first rotation in radians - :param scaling: The ideal angles for the compensatory rotations will - be scaled by this value. - - :type index: :class:`int` - :type primary_rot_angle: :class:`float` - :type scaling: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if **index** is smaller 1 or - larger size of BackboneList - 2 - - - - .. method:: MinCADistance(other) - - :returns: Minimal pairwise CA-distance between this and the *other* - backbone list. - :rtype: :class:`float` - - :param other: The other backbone list. - :type other: :class:`BackboneList` - - .. method:: RMSD(other, superposed_rmsd=False) - CARMSD(other, superposed_rmsd=False) - - :returns: RMSD / C-alpha RMSD between this and the *other* backbone list. - :rtype: :class:`float` - - :param other: The other backbone list. - :type other: :class:`BackboneList` - :param superposed_rmsd: Whether to superpose before calculating the RMSD. - :type superposed_rmsd: :class:`bool` +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Representing Loops +================================================================================ + +.. currentmodule:: promod3.loop + + +The most simple representation of structural information in |project| is the +:class:`BackboneList`. It provides a way to store the backbone positions of +residues. They provide structural manipulations, they can be manipulated and +converted from, to, or inserted to a :class:`ost.mol.EntityHandle`. + +.. literalinclude:: ../../../tests/doc/scripts/loop_backbone.py + + +The BackboneList class +-------------------------------------------------------------------------------- + +.. class:: BackboneList() + + Container for the positions of the backbone atoms (nitrogen (N), alpha carbon + (CA), beta carbon (CB), carbon (C), oxygen (O)), the one letter codes and + amino acid types of a segment. This object allows to get, set or modify the + atom positions, etc through a set of functions (**indexing to access each + residue starts at 0**). To simplify algorithms, which use this structure, each + residue has a CB position defined (i.e. even if it's a glycine) and we only + allow amino acid types belonging to the 20 default amino acids. Note that the + omega torsion angle defined here for residue *i* is the dihedral between CA-C + of residue *i* and N-CA of residue *i+1* (this is shifted by 1 residue + compared to OST's :meth:`~ost.mol.ResidueHandle.GetOmegaTorsion`). + + .. 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` + + :raises: :exc:`~exceptions.RuntimeError` if *sequence* contains a one letter + code which is not one of the 20 default amino acids. + + .. 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:`tuple` objects defining the backbone + dihedral angles of created BackboneList. Every + :class:`tuple` must either have two or three + elements. Two elements are considered to define the + phi and psi angles, leading to an idealized omega + angle of 180 degrees. In case of three elements, all + angles are defined. + + :type sequence: :class:`str` + :type dihedral_angles: :class:`list` + + :raises: :exc:`~exceptions.RuntimeError` if *sequence* contains a one letter + code which is not one of the 20 default amino acids or if + *sequence* and *dihedral_angles* are inconsistent in size. + + .. method:: BackboneList(residues) + + Creates a BackboneList with positions and sequence extracted from + *residues*. + + :param residues: List of :class:`ost.mol.ResidueHandle` objects from + which the backbone positions and one letter codes + are extracted. + + :type residues: :class:`list` + + :raises: :exc:`~exceptions.RuntimeError` if a residue in *residues* + contains a one letter code which is not one of the 20 default + amino acids or when there is a residue not providing all + required positions. + + .. 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: :exc:`~exceptions.RuntimeError` if *sequence* contains a one letter + code which is not one of the 20 default amino acids or if + *sequence* and *residues* are inconsistent in size or when there is + a residue not providing all necessary positions. + + + .. method:: ToDensity(padding=10.0, sampling=Vec3(1.0,1.0,1.0), \ + resolution=3.0, high_resolution=false) + + :return: The whole backbone list converted to a density map. + :rtype: :class:`ost.img.ImageHandle` + + .. note that ImageHandle and MapHandle are the same, but former is mentioned + in OST doc, so we use that for documentation purposes + + :param padding: + :type padding: :class:`float` + :param sampling: + :type sampling: :class:`~ost.geom.Vec3` + :param resolution: + :type resolution: :class:`float` + :param high_resolution: + :type high_resolution: :class:`bool` + + .. method:: ToEntity() + + :return: The whole backbone list converted to an OST entity. + :rtype: :class:`ost.mol.EntityHandle` + + .. method:: InsertInto(chain, start_resnum) + + 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 + :type chain: :class:`ost.mol.ChainHandle` + :param start_resnum: Residue number defining the start location of insertion + :type start_resnum: :class:`int` / :class:`ost.mol.ResNum` + + .. method:: InsertInto(map, resolution=3.0, high_resolution=false) + + :param map: + :type map: :class:`ost.img.ImageHandle` + :param resolution: + :type resolution: :class:`float` + :param high_resolution: + :type high_resolution: :class:`bool` + + .. method:: GetBounds(all_atom=True) + + :returns: + :rtype: :class:`ost.geom.AlignedCuboid` + :param all_atom: + :type all_atom: :class:`bool` + + + .. method:: GetSequence() + + :return: The amino acid sequence. + :rtype: :class:`str` + + .. method:: SetSequence(sequence) + + :param sequence: Set amino acid sequence to this. + :type sequence: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if *sequence* contains a one letter + code which is not one of the 20 default amino acids or size of + *sequence* does not match. + + + .. method:: Extract(from, to) + + :returns: Items with indices *from*, ..., *to*-1 of this list. + :rtype: :class:`BackboneList` + + .. method:: ReplaceFragment(sub_fragment, index, superpose_stems) + + 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 + :param superpose_stems: If set to false, the function will simply + replace the according + :class:`Backbone` objects. If set to True, + the n-terminal and c-terminal tails are superposed onto the *sub_fragment* + stems using the positions at *index* and + *index* + len( *sub_fragment* )-1. + :type sub_fragment: :class:`BackboneList` + :type index: :class:`int` + :type superpose_stems: :class:`bool` + + :raises: :exc:`~exceptions.RuntimeError` if + *sub_fragment* does not fully fit into + actual fragment at specified *index* + + + .. method:: GetN(index) + GetCA(index) + GetCB(index) + GetC(index) + GetO(index) + + :return: Position of nitrogen / alpha carbon / beta carbon / carbon / oxygen + atom for residue at given index. + :rtype: :class:`~ost.geom.Vec3` + :param index: Residue index. + :type index: :class:`int` + + .. method:: SetN(index, pos) + SetCA(index, pos) + SetCB(index, pos) + SetC(index, pos) + SetO(index, pos) + + :param index: Residue index. + :type index: :class:`int` + :param pos: Set position of nitrogen / alpha carbon / beta carbon / carbon + / oxygen atom to this. + :type pos: :class:`~ost.geom.Vec3` + + .. method:: GetOLC(index) + + :return: One letter code of the residue at given index. + :rtype: :class:`char` + :param index: Residue index. + :type index: :class:`int` + + .. method:: SetOLC(index, olc) + + :param index: Residue index. + :type index: :class:`int` + :param olc: Set one letter code of the residue to this. + :type olc: :class:`char` + + .. method:: GetAA(index) + + :return: Amino acid type of the residue at given index. + :rtype: :class:`ost.conop.AminoAcid` + :param index: Residue index. + :type index: :class:`int` + + .. method:: SetAA(index, aa) + + :param index: Residue index. + :type index: :class:`int` + :param aa: Set amino acid type of the residue to this. + :type aa: :class:`ost.conop.AminoAcid` + + :raises: :exc:`~exceptions.RuntimeError` if *aa* == ost.conop.XXX. + + + .. method:: Set(index, n_pos, ca_pos, cb_pos, c_pos, o_pos, olc) + Set(index, n_pos, ca_pos, c_pos, o_pos, olc) + Set(index, res, olc) + + Set all backbone informations. This will reconstruct CB positions if needed + and set the amino acid type according to the given one letter code. + + :param index: Residue index. + :type index: :class:`int` + :param res: Residue from which to extract backbone atom positions + :type res: :class:`~ost.mol.ResidueHandle` + :param n_pos: Set position of nitrogen atom to this. + :type n_pos: :class:`~ost.geom.Vec3` + :param ca_pos: Set position of alpha carbon atom to this. + :type ca_pos: :class:`~ost.geom.Vec3` + :param cb_pos: Set position of beta carbon atom to this. + :type cb_pos: :class:`~ost.geom.Vec3` + :param c_pos: Set position of carbon atom to this. + :type c_pos: :class:`~ost.geom.Vec3` + :param o_pos: Set position of oxygen atom to this. + :type o_pos: :class:`~ost.geom.Vec3` + :param olc: Set one letter code of the residue to this. + :type olc: :class:`char` + + + .. method:: __len__() + + :returns: Number of residues in this backbone list. + :rtype: :class:`int` + + .. method:: resize(new_size) + + :param new_size: Resize backbone list to contain this number of residues. + If new residues are added, their properties will not be + initialized. Existing residues are untouched unless the + list is shrinked (in that case extra residues are deleted). + :type new_size: :class:`int` + + .. method:: empty() + + :returns: True if the list is empty (i.e. size 0). + :rtype: :class:`bool` + + .. method:: append(n_pos, ca_pos, cb_pos, c_pos, o_pos, olc) + append(n_pos, ca_pos, c_pos, o_pos, olc) + append(res, olc) + + Appends a new residue at the end of the :class:`BackboneList`. This will + reconstruct CB positions if needed and set the amino acid type according + to the given one letter code. + + :param res: Residue from which to extract backbone atom positions + :type res: :class:`~ost.mol.ResidueHandle` + :param n_pos: Set position of nitrogen atom to this. + :type n_pos: :class:`~ost.geom.Vec3` + :param ca_pos: Set position of alpha carbon atom to this. + :type ca_pos: :class:`~ost.geom.Vec3` + :param cb_pos: Set position of beta carbon atom to this. + :type cb_pos: :class:`~ost.geom.Vec3` + :param c_pos: Set position of carbon atom to this. + :type c_pos: :class:`~ost.geom.Vec3` + :param o_pos: Set position of oxygen atom to this. + :type o_pos: :class:`~ost.geom.Vec3` + :param olc: Set one letter code of the residue to this. + :type olc: :class:`char` + + .. method:: clear() + + Remove all residues from this list. + + .. method:: Copy() + + Creates and returns a deep copy of this :class:`BackboneList`. This can be + useful, since Python uses reference assignments. + + :rtype: :class:`BackboneList` + + .. method:: ReconstructCBetaPositions() + + Does a simple reconstruction of all CB positions based on the current + N, CA and C positions. + + .. method:: ReconstructOxygenPositions(last_psi=-0.78540) + + Does a simple reconstruction of all oxygen positions based on the actual + N, CA and C positions. The position of the last oxygen depends on the next + residue, an additional parameter is therefore required. + + :param last_psi: Psi angle of the last BackboneList residue, + the default value corresponds to a typical alpha-helix. + :type last_psi: :class:`float` + + .. method:: ReconstructCStemOxygen(after_c_stem) + + Reconstructs the last oxygen of this backbone list. The oxygen position + depends on the residue following the C stem. The position is only + reconstructed if the residue handle is valid. + + :param after_c_stem: Residue following the C stem (C stem residue is last + element of this backbone list) + :type after_c_stem: :class:`ost.mol.ResidueHandle` + + + .. method:: ApplyTransform(index, transform) + + Applies a transformation to the positions of a single residue. + + :param index: Residue index. + :type index: :class:`int` + :param transform: The transformation + :type transform: :class:`ost.geom.Mat4` + + .. method:: ApplyTransform(from, to, transform) + + Applies a transformation to the positions of the residues with indices + *from*, ..., *to*-1 of this list. + + :param from: Start index. + :type from: :class:`int` + :param to: End index (one past last residue to transform). + :type to: :class:`int` + :param transform: The transformation + :type transform: :class:`ost.geom.Mat4` + + .. method:: ApplyTransform(transform) + + Applies a transformation to all positions of this list. + + :param transform: The transformation + :type transform: :class:`ost.geom.Transform` / :class:`ost.geom.Mat4` + + .. method:: GetTransform(index, res) + GetTransform(index, other, other_index) + + :returns: Minimum RMSD transformation of residue *index* onto *res* or + residue *other_index* of *other* backbone list considering the + positions of the N, CA and C atoms. + :rtype: :class:`ost.geom.Mat4` + + :param index: Residue index. + :type index: :class:`int` + :param res: The other residue. + :type res: :class:`ost.mol.ResidueHandle` + :param other: The other backbone list. + :type other: :class:`BackboneList` + :param other_index: Residue index in *other* backbone list. + :type other_index: :class:`int` + + .. method:: GetTransform(other) + + :returns: Get minimum RMSD transformation of CA positions of this backbone + list onto CA positions of *other* backbone list. + :rtype: :class:`ost.geom.Mat4` + + :param other: The other backbone list. + :type other: :class:`BackboneList` + + .. method:: SuperposeOnto(other) + + Superposes this backbone list onto another one using CA positions. + + :param other: The other backbone list. + :type other: :class:`BackboneList` + + + .. method:: RotateAroundPhiTorsion(index, phi, sequential=False) + RotateAroundPsiTorsion(index, psi, sequential=False) + RotateAroundOmegaTorsion(index, omega, sequential=False) + RotateAroundPhiPsiTorsion(index, phi, psi, sequential=False) + SetAroundPhiTorsion(index, phi, sequential=False) + SetAroundPsiTorsion(index, psi, sequential=False) + SetAroundOmegaTorsion(index, omega, sequential=False) + SetAroundPhiPsiTorsion(index, phi, psi, sequential=False) + + Rotates/sets the phi/psi/omega torsion angle of the backbone at position + *index* in the backbone list by/to the given angle(s). + + :param index: Residue index. + :type index: :class:`int` + :param phi: Angle by which to rotate phi torsion. + :type phi: :class:`float` + :param psi: Angle by which to rotate psi torsion. + :type psi: :class:`float` + :param omega: Angle by which to rotate omega torsion. + :type omega: :class:`float` + :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 sequential: :class:`bool` + + .. method:: GetPhiTorsion(index) + GetPsiTorsion(index) + GetOmegaTorsion(index) + + :return: The phi/psi/omega torsion angle for residue at given index. + :rtype: :class:`float` + :param index: Residue index. + :type index: :class:`int` + + + .. method:: TransOmegaTorsions(thresh=20/180*pi, allow_prepro_cis=True) + + Checks whether this backbone list only contains trans omega torsion angles. + Usually, you would want this to be the case, but it can fail if you have any + unfavorable omega torsion angle in your backbone. + + :param thresh: Allowed deviation from ideal trans angle (pi) + :type thresh: :class:`float` + :param allow_prepro_cis: Flag, whether cis-omega torsions should be + allowed in case of a subsequent proline. + :type allow_prepro_cis: :class:`bool` + + :returns: whether *bb_list* only contains trans-omega torsions. + :rtype: :class:`bool` + + :raises: :exc:`~exceptions.RuntimeError` if size of this backbone list is + smaller than 3. + + .. method:: SetBackrub(index, primary_rot_angle, flanking_rot_angle_one, flanking_rot_angle_two) + + Applies a backrub motion [davis2006]_ at residue defined by **index**. + The first rotation axis is defined by the CA positions from residues at + **index** -1 and **index** +1. All atoms in between get rotated around this + axis by **primary_rot_angle**. To restore the the hydrogen bond network + of the two transformed oxygens, the backrub motion gets completed by + two compensatory rotations. The first rotation is around the axis defined by + the CA position from residue **index**-1 and the transformed central CA + position with an angle of **flanking_rot_angle_one**. The second rotation is + around the axis from the transformed central CA position to the CA position + from residue at position **index** +1 with an angle of + **flanking_rot_angle_two**. + + :param index: Position of central residue of the backrub motion + :param primary_rot_angle: Angle of the first rotation in radians + :param flanking_rot_angle_one: Angle of the first compensatory rotation + in radians + :param flanking_rot_angle_two: Angle of the second compensatory rotation + in radians + + :type index: :class:`int` + :type primary_rot_angle: :class:`float` + :type flanking_rot_angle_one: :class:`float` + :type flanking_rot_angle_two: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if **index** is smaller 1 or + larger size of BackboneList - 2 + + .. method:: SetBackrub(index, primary_rot_angle, [scaling=1.0]) + + Applies the backrub motion described above but calculates the ideal angles + for the compensatory rotations in a way, that the new oxygen positions are + as close as possible to the original ones. The ideal angles can be scaled + down by **scaling** to make them less extreme. + + :param index: Position of central residue of the backrub motion + :param primary_rot_angle: Angle of the first rotation in radians + :param scaling: The ideal angles for the compensatory rotations will + be scaled by this value. + + :type index: :class:`int` + :type primary_rot_angle: :class:`float` + :type scaling: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if **index** is smaller 1 or + larger size of BackboneList - 2 + + + + .. method:: MinCADistance(other) + + :returns: Minimal pairwise CA-distance between this and the *other* + backbone list. + :rtype: :class:`float` + + :param other: The other backbone list. + :type other: :class:`BackboneList` + + .. method:: RMSD(other, superposed_rmsd=False) + CARMSD(other, superposed_rmsd=False) + + :returns: RMSD / C-alpha RMSD between this and the *other* backbone list. + :rtype: :class:`float` + + :param other: The other backbone list. + :type other: :class:`BackboneList` + :param superposed_rmsd: Whether to superpose before calculating the RMSD. + :type superposed_rmsd: :class:`bool` diff --git a/doc/html/_sources/loop/index.rst.txt b/doc/html/_sources/loop/index.txt similarity index 97% rename from doc/html/_sources/loop/index.rst.txt rename to doc/html/_sources/loop/index.txt index 6758e74bf902a4c591a0a173ef950053ef05b929..bff3ce8de2d77d571cb1a6c70c77670faa97580f 100644 --- a/doc/html/_sources/loop/index.rst.txt +++ b/doc/html/_sources/loop/index.txt @@ -1,41 +1,41 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -:mod:`~promod3.loop` - Loop Handling -================================================================================ - -.. module:: promod3.loop - :synopsis: Loop Handling - -.. currentmodule:: promod3.loop - -Tools and algorithms for loop handling. This module provides ways for -representation of peptides and to obtain fragments to potentially use as -loops. The following example should give you an idea of what can be done: - -.. literalinclude:: ../../../tests/doc/scripts/loop_main.py - -Contents: - -.. toctree:: - :maxdepth: 2 - - backbone - torsion_sampler - structure_db - all_atom - mm_system_creation - load_loop_objects +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +:mod:`~promod3.loop` - Loop Handling +================================================================================ + +.. module:: promod3.loop + :synopsis: Loop Handling + +.. currentmodule:: promod3.loop + +Tools and algorithms for loop handling. This module provides ways for +representation of peptides and to obtain fragments to potentially use as +loops. The following example should give you an idea of what can be done: + +.. literalinclude:: ../../../tests/doc/scripts/loop_main.py + +Contents: + +.. toctree:: + :maxdepth: 2 + + backbone + torsion_sampler + structure_db + all_atom + mm_system_creation + load_loop_objects diff --git a/doc/html/_sources/loop/load_loop_objects.rst.txt b/doc/html/_sources/loop/load_loop_objects.txt similarity index 97% rename from doc/html/_sources/loop/load_loop_objects.rst.txt rename to doc/html/_sources/loop/load_loop_objects.txt index 55f5ba4efb5fe2b3443cba9add0383ebf54fd945..2faa022bd3e66f5aece19c6fc8e2e7912aecd94a 100644 --- a/doc/html/_sources/loop/load_loop_objects.rst.txt +++ b/doc/html/_sources/loop/load_loop_objects.txt @@ -1,100 +1,100 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Loading Precomputed Objects -================================================================================ - -.. currentmodule:: promod3.loop - - -Several data objects are used throughout the loop module. -|project| 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 [solis2006]_ 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 [solis2006]_ 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 [solis2006]_ 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 [solis2006]_ 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:: LoadStructureDB() - - Loads and returns a structure db containing roughly 21000 chains form the - PDB with seqid redundancy cutoff of 60% - - :returns: The structure db - :rtype: :class:`StructureDB` - - -.. method:: LoadFragDB() - - Loads and returns a FragDB containing fragments up to the length of 14, - therefore capable of bridging gaps up to the length of 12. The returned - databases contains the location of fragments in the :class:`StructureDB` - returned by :meth:`LoadStructureDB`. - - :returns: The Fragment database - :rtype: :class:`FragDB` +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Loading Precomputed Objects +================================================================================ + +.. currentmodule:: promod3.loop + + +Several data objects are used throughout the loop module. +|project| 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 [solis2006]_ 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 [solis2006]_ 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 [solis2006]_ 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 [solis2006]_ 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:: LoadStructureDB() + + Loads and returns a structure db containing roughly 21000 chains form the + PDB with seqid redundancy cutoff of 60% + + :returns: The structure db + :rtype: :class:`StructureDB` + + +.. method:: LoadFragDB() + + Loads and returns a FragDB containing fragments up to the length of 14, + therefore capable of bridging gaps up to the length of 12. The returned + databases contains the location of fragments in the :class:`StructureDB` + returned by :meth:`LoadStructureDB`. + + :returns: The Fragment database + :rtype: :class:`FragDB` \ No newline at end of file diff --git a/doc/html/_sources/loop/mm_system_creation.rst.txt b/doc/html/_sources/loop/mm_system_creation.txt similarity index 97% rename from doc/html/_sources/loop/mm_system_creation.rst.txt rename to doc/html/_sources/loop/mm_system_creation.txt index ca75edfb85aa2c25bd66ed82c9e43a0e32ba154b..ff50bca936627f746ab3f527e06c1f0e60031ce0 100644 --- a/doc/html/_sources/loop/mm_system_creation.rst.txt +++ b/doc/html/_sources/loop/mm_system_creation.txt @@ -1,823 +1,823 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Generate :mod:`ost.mol.mm` systems -================================================================================ - -.. currentmodule:: promod3.loop - -To simplify the creation of :mod:`ost.mol.mm` / OpenMM simulations for loops in -proteins, we define a system creator for loops (:class:`MmSystemCreator`) and a -specialized forcefield lookup for amino acids (:class:`ForcefieldLookup`). - -The example below showcases the creation and use of an MM system: - -.. literalinclude:: ../../../tests/doc/scripts/loop_mm_sys_creation.py - -.. note:: - - To simplify use when sidechains may be missing and the region of interest for - the MM system has to be determined, it might be better to use the simpler - :class:`promod3.modelling.SidechainReconstructor` and - :class:`promod3.modelling.AllAtomRelaxer` classes. Even if all the sidechains - are available, those classes will be helpful since the overhead to check - sidechains without reconstructing them is minimal. - - -Create MM systems for loops --------------------------------------------------------------------------------- - -.. class:: MmSystemCreator(ff_lookup, fix_surrounding_hydrogens=True, \ - kill_electrostatics=False, nonbonded_cutoff=8, \ - inaccurate_pot_energy=False) - - Setup a system creator for a specific forcefield. The constructor only stores - the settings. Most setup work is done by :meth:`SetupSystem`. - - The idea is to have a set of movable loop residues and a set of fixed - surrounding residues which interact with the loop. - - :param ff_lookup: Forcefield to use with this system creator. - :type ff_lookup: :class:`ForcefieldLookup` - :param fix_surrounding_hydrogens: If False, the hydrogens of the surrounding - residues can move to improve H-bond building - (True by default as it only has a minor - impact on the result and a big one on - performance). - :type fix_surrounding_hydrogens: :class:`bool` - :param kill_electrostatics: If True, all charges are removed from the system. - This is good for H-bond building, but may be bad - if residues in the surrounding are missing (gaps). - :type kill_electrostatics: :class:`bool` - :param nonbonded_cutoff: Defines cutoff to set for non bonded interactions. - Recommended values: 5 if kill_electrostatics = True, - 8 otherwise. Negative value means no cutoff. - :type nonbonded_cutoff: :class:`float` - :param inaccurate_pot_energy: If True, we do not set correct non-bonded - interactions between fixed atoms. This leads - to inaccurate pot. energies but it is faster and - has no effect on simulation runs (e.g. ApplySD) - otherwise. - :type inaccurate_pot_energy: :class:`bool` - - .. method:: GetDisulfidBridges(all_pos, res_indices) - - :return: Pairs of indices (i,j), where res_indices[i] and res_indices[j] are - assumed to have a disulfid bridge (CYS-SG pairs within 2.5 A). - :rtype: :class:`list` of :class:`tuple` with two :class:`int` - - :param all_pos: Provides positions for each *res_indices[i]*. - :type all_pos: :class:`AllAtomPositions` - :param res_indices: Residue indices into *all_pos*. - :type res_indices: :class:`list` of :class:`int` - - .. method:: SetupSystem(all_pos, res_indices, loop_length, is_n_ter, \ - is_c_ter, disulfid_bridges) - SetupSystem(all_pos, res_indices, loop_start_indices, \ - loop_lengths, is_n_ter, is_c_ter, disulfid_bridges) - - Setup a new system for the loop / surrounding defined by *all_pos* and - *res_indices*. Positions are taken from *all_pos[res_indices[i]]* and each - of them must have all heavy atoms defined. Residue *all_pos[i]* is assumed - to be peptide bound to *all_pos[i-1]* unless res. *i* is labelled as - N-terminal. If *all_pos[i-1]* has an unset C (could happen for gaps while - modelling), res. *i* will still be treated as if peptide-bound and the - hydrogen attached to N is built assuming a helical structure as an - approximation. Similarly, we do not generate OXT atoms for residues followed - by a gap unless they are specifically labelled as C-terminal. - - Each loop is defined by an entry in *loop_start_indices* and *loop_lengths*. - For loop *i_loop*, *res_indices[loop_start_indices[i_loop]]* is the N-stem - and *res_indices[loop_start_indices[i_loop] + loop_lengths[i_loop] - 1]* is - the C-stem of the loop. The loop indices are expected to be contiguous in - *res_indices* between the stems. The stems of the loop are kept fixed (N, - CA, CB for N-stem / CA, CB, C, O for C-stem) unless they are terminal - residues. Overlapping loops are merged and 0-length loops are removed. - - If *loop_length* is given, a single loop with start index 0 and the given - loop length is defined. - - If a system was setup previously, it is overwritten completely. - - If possible, this uses the "CPU" platform in OpenMM using the env. variable - ``PM3_OPENMM_CPU_THREADS`` to define the number of desired threads (1 thread - is used if variable is undefined). - - :param all_pos: Provides positions for each *res_indices[i]*. - :type all_pos: :class:`AllAtomPositions` - :param res_indices: Residue indices into *all_pos*. - :type res_indices: :class:`list` of :class:`int` - :param loop_length: Length of single loop (incl. stems). - :type loop_length: :class:`int` - :param loop_start_indices: Start indices of loops. - :type loop_start_indices: :class:`list` of :class:`int` - :param loop_lengths: Lengths of loops (incl. stems). - :type loop_lengths: :class:`list` of :class:`int` - :param is_n_ter: For each *res_indices[i]*, *is_n_ter[i]* defines whether - that residue is N-terminal. - :type is_n_ter: :class:`list` of :class:`bool` - :param is_c_ter: For each *res_indices[i]*, *is_c_ter[i]* defines whether - that residue is C-terminal. - :type is_c_ter: :class:`list` of :class:`bool` - :param disulfid_bridges: Pairs of indices (i,j), where res_indices[i] and - res_indices[j] form a disulfid bridge (see - :meth:`GetDisulfidBridges`) - :type disulfid_bridges: :class:`list` of :class:`tuple` with two - :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if loops out of bounds with respect - to *res_indices*, *loop_start_indices* / *loop_lengths* or - *res_indices* / *is_n_ter* / *is_c_ter* have inconsistent lengths, - or if any *all_pos[res_indices[i]]* is invalid or has unset heavy - atoms. - - .. method:: UpdatePositions(all_pos, res_indices) - - Updates the positions in the system. Even though :meth:`SetupSystem` is - already very fast, this can speed up resetting a simulation. The data must - be consistent with the data used in the last :meth:`SetupSystem` call. - - :param all_pos: Provides positions for each *res_indices[i]*. - :type all_pos: :class:`AllAtomPositions` - :param res_indices: Residue indices into *all_pos*. - :type res_indices: :class:`list` of :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if data is inconsistent with last - :meth:`SetupSystem` call (same number of residues, same AA). - - .. method:: ExtractLoopPositions(loop_pos) - ExtractLoopPositions(out_pos, res_indices) - - Extracts loop positions from the current simulation. If the simulation was - run (via :meth:`GetSimulation`), we internally have new positions for the - residues corresponding to *all_pos[res_indices[i]]* passed in - :meth:`SetupSystem`. This function then extracts these positions back into a - compatible output storage. - - If *loop_pos* is passed, only the loops are stored. The loop residues are - stored contiguously and the loops are stored in the order given by - :meth:`GetLoopStartIndices` / :meth:`GetLoopLengths`. The *loop_pos* storage - must have at least :meth:`GetNumLoopResidues` residues and must have - matching amino acid types with respect to the loop residues passed as - *all_pos* of :meth:`SetupSystem`. - - If *out_pos* and *res_indices* are passed, residues must have matching amino - acid types for *out_pos[res_indices[i]]* and *all_pos[res_indices[i]]* of - :meth:`SetupSystem`. Only loop residues with *i* in the ranges defined by - :meth:`GetLoopStartIndices` / :meth:`GetLoopLengths` are touched. - - :param loop_pos: Reduced storage only covering loop positions. - :type loop_pos: :class:`AllAtomPositions` - :param out_pos: Storage for loop positions linked to *res_indices*. - :type out_pos: :class:`AllAtomPositions` - :param res_indices: Residue indices into *out_pos*. - :type res_indices: :class:`list` of :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if data is inconsistent with last - :meth:`SetupSystem` call (big enough and matching AA). - - .. method:: GetSimulation - - :return: Simulation object setup by :meth:`SetupSystem`. Use this to run - MM simulations. - :rtype: :class:`ost.mol.mm.Simulation` - - .. method:: GetNumResidues - - :return: Number of residues of current simulation setup. - :rtype: :class:`int` - - .. method:: GetNumLoopResidues - - :return: Number of loop residues (incl. stems) of current simulation setup. - :rtype: :class:`int` - - .. method:: GetLoopStartIndices - - :return: Start indices of loops (see :meth:`SetupSystem`). - :rtype: :class:`list` of :class:`int` - - .. method:: GetLoopLengths - - :return: Lengths of loops (see :meth:`SetupSystem`). - :rtype: :class:`list` of :class:`int` - - .. method:: GetForcefieldAminoAcids - - :return: Forcefield-specific amino acid type for each residue of last - :meth:`SetupSystem` call. - :rtype: :class:`list` of :class:`ForcefieldAminoAcid` - - .. method:: GetIndexing - - The atoms of residue *i* are stored from *idx[i]* to *idx[i+1]-1*, where - *idx* is the list returned by this function. The atoms themselves are - ordered according to the indexing defined by :class:`ForcefieldLookup`. - - :return: Indexing to positions vector used by the simulation object. - The last item of the list contains the number of atoms in the - system. - :rtype: :class:`list` of :class:`int` - - .. method:: GetCpuPlatformSupport - - :return: True, if we will use OpenMM's "CPU" platform (enabled by default - if platform is available). False, if we use "Reference" platform. - :rtype: :class:`bool` - - .. method:: SetCpuPlatformSupport(cpu_platform_support) - - Override "CPU" platform support setting. Useful to force the use of the - OpenMM's "Reference" platform for testing (by default we use "CPU" if it is - available). - - :param cpu_platform_support: True, if "CPU" platform desired (ignored if - platform not available). False, if "Reference" - platform desired. - :type cpu_platform_support: :class:`bool` - - -Forcefield lookup for amino acids --------------------------------------------------------------------------------- - -The :class:`ForcefieldLookup` class and its helpers define a fast way to extract -FF specific data for amino acids in a protein. We distinguish amino acid types -(and a few variants thereof) which may all be N- and/or C-terminal. - - -.. class:: ForcefieldLookup - - This class provides all functionality to generate :class:`ost.mol.mm.Simulation` objects. Specifically, we can: - - - get a consistent indexing of each atom of each residue in [*0, N-1*], where - *N* = :meth:`GetNumAtoms` (note that only OXT indexing depends on whether a - residue is terminal) - - extract masses, charges and LJ-parameters for each atom (list of length *N*) - - extract connectivities (:class:`ForcefieldConnectivity`), which include all - possible bonds, angles, dihedrals, impropers and LJ pairs - - There is functionality to adapt the lookup and store it as needed or you can - load a predefined one with :meth:`GetDefault` or :meth:`LoadCHARMM`. - - The atom indexing and :meth:`GetAA` are independent of the loaded file. - - - .. staticmethod:: GetDefault() - - :return: A default singleton instance (shared throughout the Python process) - of this class with all data defined. Using this instance has the - advantage that the object is only loaded once! - :rtype: :class:`ForcefieldLookup` - - .. staticmethod:: SetDefault(new_default) - - Sets default singleton instance for all future :meth:`GetDefault` calls. - - :param new_default: Lookup object to use as the new default. - :type new_default: :class:`ForcefieldLookup` - - .. staticmethod:: LoadCHARMM() - - :returns: Predefined lookup object extracted from a CHARMM forcefield - (loaded from disk) - :rtype: :class:`ForcefieldLookup` - - .. staticmethod:: Load(filename) - LoadPortable(filename) - - Loads raw binary file generated with :meth:`Save` (optimized for fast - reading) / portable file generated with :meth:`SavePortable` (slower but - less machine-dependent). - - :param filename: Path to the file from which to load. - :type filename: :class:`str` - - :returns: The loaded lookup object - :rtype: :class:`ForcefieldLookup` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if - file cannot be parsed (see :ref:`here <portableIO>` for details). - - .. method:: Save(filename) - SavePortable(filename) - - Saves a raw / portable binary representation. Use portable files for - distribution and convert locally to raw files. See :ref:`here <portableIO>` - for details. - - :param filename: Path to the file where it will be saved. - :type filename: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. - - - .. method:: GetAA(ff_aa) - - :return: Amino acid type for given *ff_aa* - :rtype: :class:`ost.conop.AminoAcid` - - :param ff_aa: Forcefield-specific amino acid type - :type ff_aa: :class:`ForcefieldAminoAcid` - - .. method:: GetNumAtoms(ff_aa, is_nter, is_cter) - - :return: Number of atoms for given input. - :rtype: :class:`int` - - :param ff_aa: Forcefield-specific amino acid type - :type ff_aa: :class:`ForcefieldAminoAcid` - :param is_nter: True if N-terminal variant desired - :type is_nter: :class:`bool` - :param is_cter: True if C-terminal variant desired - :type is_cter: :class:`bool` - - .. method:: GetHeavyIndex(ff_aa, atom_idx) - GetHeavyIndex(ff_aa, atom_name) - - :return: Internal index for given heavy atom in [0, :meth:`GetNumAtoms`] - :rtype: :class:`int` - - :param ff_aa: Forcefield-specific amino acid type - :type ff_aa: :class:`ForcefieldAminoAcid` - :param atom_idx: Atom index as returned by :meth:`AminoAcidLookup.GetIndex` - :type atom_idx: :class:`int` - :param atom_name: Atom name - :type atom_name: :class:`str` - - .. method:: GetHydrogenIndex(ff_aa, atom_idx) - GetHydrogenIndex(ff_aa, atom_name) - - :return: Internal index for given hydrogen atom in [0, :meth:`GetNumAtoms`] - :rtype: :class:`int` - - :param ff_aa: Forcefield-specific amino acid type - :type ff_aa: :class:`ForcefieldAminoAcid` - :param atom_idx: Atom index as returned by - :meth:`AminoAcidLookup.GetHydrogenIndex` - :type atom_idx: :class:`int` - :param atom_name: Atom name - :type atom_name: :class:`str` - - .. method:: GetOXTIndex(ff_aa, is_nter) - - :return: Internal index of OXT atom for C-terminal residue - :rtype: :class:`int` - - :param ff_aa: Forcefield-specific amino acid type - :type ff_aa: :class:`ForcefieldAminoAcid` - :param is_nter: True if N-terminal variant desired - :type is_nter: :class:`bool` - - - .. method:: GetFudgeLJ() - - :return: Dampening factor for LJ 1,4 interactions (see - :meth:`ost.mol.mm.Topology.SetFudgeLJ`) - :rtype: :class:`float` - - .. method:: GetFudgeQQ() - - :return: Dampening factor for electrostatic 1,4 interactions (see - :meth:`ost.mol.mm.Topology.SetFudgeQQ`) - :rtype: :class:`float` - - - .. method:: GetMasses(ff_aa, is_nter, is_cter) - - :return: Mass for each atom (see :meth:`ost.mol.mm.Topology.SetMasses`) - :rtype: :class:`list` of :class:`float` (length = :meth:`GetNumAtoms`) - - :param ff_aa: Forcefield-specific amino acid type - :type ff_aa: :class:`ForcefieldAminoAcid` - :param is_nter: True if N-terminal variant desired - :type is_nter: :class:`bool` - :param is_cter: True if C-terminal variant desired - :type is_cter: :class:`bool` - - .. method:: GetCharges(ff_aa, is_nter, is_cter) - - :return: Charge for each atom (see :meth:`ost.mol.mm.Topology.SetCharges`) - :rtype: :class:`list` of :class:`float` (length = :meth:`GetNumAtoms`) - - :param ff_aa: Forcefield-specific amino acid type - :type ff_aa: :class:`ForcefieldAminoAcid` - :param is_nter: True if N-terminal variant desired - :type is_nter: :class:`bool` - :param is_cter: True if C-terminal variant desired - :type is_cter: :class:`bool` - - .. method:: GetSigmas(ff_aa, is_nter, is_cter) - - :return: Sigma in nm for each atom - (see :meth:`ost.mol.mm.Topology.SetSigmas`) - :rtype: :class:`list` of :class:`float` (length = :meth:`GetNumAtoms`) - - :param ff_aa: Forcefield-specific amino acid type - :type ff_aa: :class:`ForcefieldAminoAcid` - :param is_nter: True if N-terminal variant desired - :type is_nter: :class:`bool` - :param is_cter: True if C-terminal variant desired - :type is_cter: :class:`bool` - - .. method:: GetEpsilons(ff_aa, is_nter, is_cter) - - :return: Epsilon in kJ/mol for each atom - (see :meth:`ost.mol.mm.Topology.SetEpsilons`) - :rtype: :class:`list` of :class:`float` (length = :meth:`GetNumAtoms`) - - :param ff_aa: Forcefield-specific amino acid type - :type ff_aa: :class:`ForcefieldAminoAcid` - :param is_nter: True if N-terminal variant desired - :type is_nter: :class:`bool` - :param is_cter: True if C-terminal variant desired - :type is_cter: :class:`bool` - - .. method:: GetInternalConnectivity(ff_aa, is_nter, is_cter) - - :return: Internal connectivity of a residue - :rtype: :class:`ForcefieldConnectivity` - - :param ff_aa: Forcefield-specific amino acid type - :type ff_aa: :class:`ForcefieldAminoAcid` - :param is_nter: True if N-terminal variant desired - :type is_nter: :class:`bool` - :param is_cter: True if C-terminal variant desired - :type is_cter: :class:`bool` - - .. method:: GetPeptideBoundConnectivity(ff_aa_one, ff_aa_two, is_nter,\ - is_cter) - - :return: All connectivity which include peptide bond between two residues - (additional to :meth:`GetInternalConnectivity`) - :rtype: :class:`ForcefieldConnectivity` - - :param ff_aa_one: Forcefield-specific amino acid type of first residue - :type ff_aa_one: :class:`ForcefieldAminoAcid` - :param ff_aa_two: Forcefield-specific amino acid type of second residue - :type ff_aa_two: :class:`ForcefieldAminoAcid` - :param is_nter: True if first residue is N-terminal - :type is_nter: :class:`bool` - :param is_cter: True if second residue is C-terminal - :type is_cter: :class:`bool` - - .. method:: GetDisulfidConnectivity() - - :return: All connectivity which include disulfid bridge between two cysteins - (additional to :meth:`GetInternalConnectivity`) - :rtype: :class:`ForcefieldConnectivity` - - - .. method:: SetFudgeLJ(fudge) - - Set value for future :meth:`GetFudgeLJ` calls to *fudge*. - - .. method:: SetFudgeQQ(fudge) - - Set value for future :meth:`GetFudgeQQ` calls to *fudge*. - - .. method:: SetMasses(ff_aa, is_nter, is_cter, masses) - - Set value for future :meth:`GetMasses` calls to *masses*. - - .. method:: SetCharges(ff_aa, is_nter, is_cter, charges) - - Set value for future :meth:`GetCharges` calls to *charges*. - - .. method:: SetSigmas(ff_aa, is_nter, is_cter, sigmas) - - Set value for future :meth:`GetSigmas` calls to *sigmas*. - - .. method:: SetEpsilons(ff_aa, is_nter, is_cter, epsilons) - - Set value for future :meth:`GetEpsilons` calls to *epsilons*. - - .. method:: SetInternalConnectivity(ff_aa, is_nter, is_cter, connectivity) - - Set value for future :meth:`GetInternalConnectivity` calls to - *connectivity*. - - .. method:: SetPeptideBoundConnectivity(ff_aa_one, ff_aa_two, is_nter,\ - is_cter, connectivity) - - Set value for future :meth:`GetPeptideBoundConnectivity` calls to - *connectivity*. - - .. method:: SetDisulfidConnectivity(connectivity) - - Set value for future :meth:`GetDisulfidConnectivity` calls to - *connectivity*. - - -.. class:: ForcefieldAminoAcid - - Enumerates the amino acid types for forcefields. The first 20 values - correspond to the 20 values of :class:`ost.conop.AminoAcid`. Additionally, - there are values for disulfid bridges (*FF_CYS2*), d-protonated histidine - (*FF_HISD*, default for *ost.conop.HIS* is *FF_HISE*) and *FF_XXX* for unknown - types. The full list of values is: - - *FF_ALA*, *FF_ARG*, *FF_ASN*, *FF_ASP*, *FF_GLN*, *FF_GLU*, *FF_LYS*, - *FF_SER*, *FF_CYS*, *FF_MET*, *FF_TRP*, *FF_TYR*, *FF_THR*, *FF_VAL*, - *FF_ILE*, *FF_LEU*, *FF_GLY*, *FF_PRO* *FF_HISE*, *FF_PHE*, *FF_CYS2*, - *FF_HISD*, *FF_XXX* - - -.. class:: ForcefieldConnectivity - - Contains lists of bonds, angles, dihedrals, impropers and LJ pairs (exclusions - are the combination of all bonds and 1,3 pairs of angles and are not stored - separately). Each type of connectivity has it's own class (see below) storing - indices and parameters to be used for methods of :class:`ost.mol.mm.Topology`. - The indexing of atoms for internal connectivities is in [*0, N-1*], where *N* - = :meth:`ForcefieldLookup.GetNumAtoms`. For connectivities of pairs of - residues, atoms of the first residue are in [*0, N1-1*] and atoms of the - second one are in [*N1, N1+N2-1*], where *N1* and *N2* are the number of atoms - of the two residues. For disulfid bridges, *N1* = *N2* = *GetNumAtoms(FF_CYS2, - False, False)*. - - .. attribute:: harmonic_bonds - - List of harmonic bonds. - - :type: :class:`list` of :class:`ForcefieldBondInfo` - - .. attribute:: harmonic_angles - - List of harmonic angles. - - :type: :class:`list` of :class:`ForcefieldHarmonicAngleInfo` - - .. attribute:: urey_bradley_angles - - List of Urey-Bradley angles. - - :type: :class:`list` of :class:`ForcefieldUreyBradleyAngleInfo` - - .. attribute:: periodic_dihedrals - - List of periodic dihedrals. - - :type: :class:`list` of :class:`ForcefieldPeriodicDihedralInfo` - - .. attribute:: periodic_impropers - - List of periodic impropers. - - :type: :class:`list` of :class:`ForcefieldPeriodicDihedralInfo` - - .. attribute:: harmonic_impropers - - List of harmonic impropers. - - :type: :class:`list` of :class:`ForcefieldHarmonicImproperInfo` - - .. attribute:: lj_pairs - - List of LJ pairs. - - :type: :class:`list` of :class:`ForcefieldLJPairInfo` - - -.. class:: ForcefieldBondInfo - - Define harmonic bond (see :meth:`ost.mol.mm.Topology.AddHarmonicBond`) - - .. attribute:: index_one - - Index of particle 1 - - :type: :class:`int` - - .. attribute:: index_two - - Index of particle 2 - - :type: :class:`int` - - .. attribute:: bond_length - - Bond length in nm - - :type: :class:`float` - - .. attribute:: force_constant - - Force constant in kJ/mol/nm^2 - - :type: :class:`float` - - -.. class:: ForcefieldHarmonicAngleInfo - - Define harmonic angle (see :meth:`ost.mol.mm.Topology.AddHarmonicAngle`) - - .. attribute:: index_one - - Index of particle 1 - - :type: :class:`int` - - .. attribute:: index_two - - Index of particle 2 - - :type: :class:`int` - - .. attribute:: index_three - - Index of particle 3 - - :type: :class:`int` - - .. attribute:: angle - - Angle in radians - - :type: :class:`float` - - .. attribute:: force_constant - - Force constant in kJ/mol/radian^2 - - :type: :class:`float` - - -.. class:: ForcefieldUreyBradleyAngleInfo - - Define Urey-Bradley angle - (see :meth:`ost.mol.mm.Topology.AddUreyBradleyAngle`) - - .. attribute:: index_one - - Index of particle 1 - - :type: :class:`int` - - .. attribute:: index_two - - Index of particle 2 - - :type: :class:`int` - - .. attribute:: index_three - - Index of particle 3 - - :type: :class:`int` - - .. attribute:: angle - - Angle in radians - - :type: :class:`float` - - .. attribute:: angle_force_constant - - Angle force constant kJ/mol/radian^2 - - :type: :class:`float` - - .. attribute:: bond_length - - Bond length in nm - - :type: :class:`float` - - .. attribute:: bond_force_constant - - Bond force constant kJ/mol/nm^2 - - :type: :class:`float` - - -.. class:: ForcefieldPeriodicDihedralInfo - - Define periodic dihedral or improper (see - :meth:`ost.mol.mm.Topology.AddPeriodicDihedral` and - :meth:`ost.mol.mm.Topology.AddPeriodicImproper`) - - .. attribute:: index_one - - Index of particle 1 - - :type: :class:`int` - - .. attribute:: index_two - - Index of particle 2 - - :type: :class:`int` - - .. attribute:: index_three - - Index of particle 3 - - :type: :class:`int` - - .. attribute:: index_four - - Index of particle 4 - - :type: :class:`int` - - .. attribute:: multiplicity - - Multiplicity - - :type: :class:`int` - - .. attribute:: phase - - Phase in radians - - :type: :class:`float` - - .. attribute:: force_constant - - Force constant in kJ/mol/radian^2 - - :type: :class:`float` - - -.. class:: ForcefieldHarmonicImproperInfo - - Define harmonic improper (see :meth:`ost.mol.mm.Topology.AddHarmonicImproper`) - - .. attribute:: index_one - - Index of particle 1 - - :type: :class:`int` - - .. attribute:: index_two - - Index of particle 2 - - :type: :class:`int` - - .. attribute:: index_three - - Index of particle 3 - - :type: :class:`int` - - .. attribute:: index_four - - Index of particle 4 - - :type: :class:`int` - - .. attribute:: angle - - Angle in radians - - :type: :class:`float` - - .. attribute:: force_constant - - Force constant kJ/mol/radian^2 - - :type: :class:`float` - - -.. class:: ForcefieldLJPairInfo - - Define LJ pair (see :meth:`ost.mol.mm.Topology.AddLJPair`) - - .. attribute:: index_one - - Index of particle 1 - - :type: :class:`int` - - .. attribute:: index_two - - Index of particle 2 - - :type: :class:`int` - - .. attribute:: sigma - - Sigma in nm - - :type: :class:`float` - - .. attribute:: epsilon - - Epsilon in kJ/mol - - :type: :class:`float` - +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Generate :mod:`ost.mol.mm` systems +================================================================================ + +.. currentmodule:: promod3.loop + +To simplify the creation of :mod:`ost.mol.mm` / OpenMM simulations for loops in +proteins, we define a system creator for loops (:class:`MmSystemCreator`) and a +specialized forcefield lookup for amino acids (:class:`ForcefieldLookup`). + +The example below showcases the creation and use of an MM system: + +.. literalinclude:: ../../../tests/doc/scripts/loop_mm_sys_creation.py + +.. note:: + + To simplify use when sidechains may be missing and the region of interest for + the MM system has to be determined, it might be better to use the simpler + :class:`promod3.modelling.SidechainReconstructor` and + :class:`promod3.modelling.AllAtomRelaxer` classes. Even if all the sidechains + are available, those classes will be helpful since the overhead to check + sidechains without reconstructing them is minimal. + + +Create MM systems for loops +-------------------------------------------------------------------------------- + +.. class:: MmSystemCreator(ff_lookup, fix_surrounding_hydrogens=True, \ + kill_electrostatics=False, nonbonded_cutoff=8, \ + inaccurate_pot_energy=False) + + Setup a system creator for a specific forcefield. The constructor only stores + the settings. Most setup work is done by :meth:`SetupSystem`. + + The idea is to have a set of movable loop residues and a set of fixed + surrounding residues which interact with the loop. + + :param ff_lookup: Forcefield to use with this system creator. + :type ff_lookup: :class:`ForcefieldLookup` + :param fix_surrounding_hydrogens: If False, the hydrogens of the surrounding + residues can move to improve H-bond building + (True by default as it only has a minor + impact on the result and a big one on + performance). + :type fix_surrounding_hydrogens: :class:`bool` + :param kill_electrostatics: If True, all charges are removed from the system. + This is good for H-bond building, but may be bad + if residues in the surrounding are missing (gaps). + :type kill_electrostatics: :class:`bool` + :param nonbonded_cutoff: Defines cutoff to set for non bonded interactions. + Recommended values: 5 if kill_electrostatics = True, + 8 otherwise. Negative value means no cutoff. + :type nonbonded_cutoff: :class:`float` + :param inaccurate_pot_energy: If True, we do not set correct non-bonded + interactions between fixed atoms. This leads + to inaccurate pot. energies but it is faster and + has no effect on simulation runs (e.g. ApplySD) + otherwise. + :type inaccurate_pot_energy: :class:`bool` + + .. method:: GetDisulfidBridges(all_pos, res_indices) + + :return: Pairs of indices (i,j), where res_indices[i] and res_indices[j] are + assumed to have a disulfid bridge (CYS-SG pairs within 2.5 A). + :rtype: :class:`list` of :class:`tuple` with two :class:`int` + + :param all_pos: Provides positions for each *res_indices[i]*. + :type all_pos: :class:`AllAtomPositions` + :param res_indices: Residue indices into *all_pos*. + :type res_indices: :class:`list` of :class:`int` + + .. method:: SetupSystem(all_pos, res_indices, loop_length, is_n_ter, \ + is_c_ter, disulfid_bridges) + SetupSystem(all_pos, res_indices, loop_start_indices, \ + loop_lengths, is_n_ter, is_c_ter, disulfid_bridges) + + Setup a new system for the loop / surrounding defined by *all_pos* and + *res_indices*. Positions are taken from *all_pos[res_indices[i]]* and each + of them must have all heavy atoms defined. Residue *all_pos[i]* is assumed + to be peptide bound to *all_pos[i-1]* unless res. *i* is labelled as + N-terminal. If *all_pos[i-1]* has an unset C (could happen for gaps while + modelling), res. *i* will still be treated as if peptide-bound and the + hydrogen attached to N is built assuming a helical structure as an + approximation. Similarly, we do not generate OXT atoms for residues followed + by a gap unless they are specifically labelled as C-terminal. + + Each loop is defined by an entry in *loop_start_indices* and *loop_lengths*. + For loop *i_loop*, *res_indices[loop_start_indices[i_loop]]* is the N-stem + and *res_indices[loop_start_indices[i_loop] + loop_lengths[i_loop] - 1]* is + the C-stem of the loop. The loop indices are expected to be contiguous in + *res_indices* between the stems. The stems of the loop are kept fixed (N, + CA, CB for N-stem / CA, CB, C, O for C-stem) unless they are terminal + residues. Overlapping loops are merged and 0-length loops are removed. + + If *loop_length* is given, a single loop with start index 0 and the given + loop length is defined. + + If a system was setup previously, it is overwritten completely. + + If possible, this uses the "CPU" platform in OpenMM using the env. variable + ``PM3_OPENMM_CPU_THREADS`` to define the number of desired threads (1 thread + is used if variable is undefined). + + :param all_pos: Provides positions for each *res_indices[i]*. + :type all_pos: :class:`AllAtomPositions` + :param res_indices: Residue indices into *all_pos*. + :type res_indices: :class:`list` of :class:`int` + :param loop_length: Length of single loop (incl. stems). + :type loop_length: :class:`int` + :param loop_start_indices: Start indices of loops. + :type loop_start_indices: :class:`list` of :class:`int` + :param loop_lengths: Lengths of loops (incl. stems). + :type loop_lengths: :class:`list` of :class:`int` + :param is_n_ter: For each *res_indices[i]*, *is_n_ter[i]* defines whether + that residue is N-terminal. + :type is_n_ter: :class:`list` of :class:`bool` + :param is_c_ter: For each *res_indices[i]*, *is_c_ter[i]* defines whether + that residue is C-terminal. + :type is_c_ter: :class:`list` of :class:`bool` + :param disulfid_bridges: Pairs of indices (i,j), where res_indices[i] and + res_indices[j] form a disulfid bridge (see + :meth:`GetDisulfidBridges`) + :type disulfid_bridges: :class:`list` of :class:`tuple` with two + :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if loops out of bounds with respect + to *res_indices*, *loop_start_indices* / *loop_lengths* or + *res_indices* / *is_n_ter* / *is_c_ter* have inconsistent lengths, + or if any *all_pos[res_indices[i]]* is invalid or has unset heavy + atoms. + + .. method:: UpdatePositions(all_pos, res_indices) + + Updates the positions in the system. Even though :meth:`SetupSystem` is + already very fast, this can speed up resetting a simulation. The data must + be consistent with the data used in the last :meth:`SetupSystem` call. + + :param all_pos: Provides positions for each *res_indices[i]*. + :type all_pos: :class:`AllAtomPositions` + :param res_indices: Residue indices into *all_pos*. + :type res_indices: :class:`list` of :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if data is inconsistent with last + :meth:`SetupSystem` call (same number of residues, same AA). + + .. method:: ExtractLoopPositions(loop_pos) + ExtractLoopPositions(out_pos, res_indices) + + Extracts loop positions from the current simulation. If the simulation was + run (via :meth:`GetSimulation`), we internally have new positions for the + residues corresponding to *all_pos[res_indices[i]]* passed in + :meth:`SetupSystem`. This function then extracts these positions back into a + compatible output storage. + + If *loop_pos* is passed, only the loops are stored. The loop residues are + stored contiguously and the loops are stored in the order given by + :meth:`GetLoopStartIndices` / :meth:`GetLoopLengths`. The *loop_pos* storage + must have at least :meth:`GetNumLoopResidues` residues and must have + matching amino acid types with respect to the loop residues passed as + *all_pos* of :meth:`SetupSystem`. + + If *out_pos* and *res_indices* are passed, residues must have matching amino + acid types for *out_pos[res_indices[i]]* and *all_pos[res_indices[i]]* of + :meth:`SetupSystem`. Only loop residues with *i* in the ranges defined by + :meth:`GetLoopStartIndices` / :meth:`GetLoopLengths` are touched. + + :param loop_pos: Reduced storage only covering loop positions. + :type loop_pos: :class:`AllAtomPositions` + :param out_pos: Storage for loop positions linked to *res_indices*. + :type out_pos: :class:`AllAtomPositions` + :param res_indices: Residue indices into *out_pos*. + :type res_indices: :class:`list` of :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if data is inconsistent with last + :meth:`SetupSystem` call (big enough and matching AA). + + .. method:: GetSimulation + + :return: Simulation object setup by :meth:`SetupSystem`. Use this to run + MM simulations. + :rtype: :class:`ost.mol.mm.Simulation` + + .. method:: GetNumResidues + + :return: Number of residues of current simulation setup. + :rtype: :class:`int` + + .. method:: GetNumLoopResidues + + :return: Number of loop residues (incl. stems) of current simulation setup. + :rtype: :class:`int` + + .. method:: GetLoopStartIndices + + :return: Start indices of loops (see :meth:`SetupSystem`). + :rtype: :class:`list` of :class:`int` + + .. method:: GetLoopLengths + + :return: Lengths of loops (see :meth:`SetupSystem`). + :rtype: :class:`list` of :class:`int` + + .. method:: GetForcefieldAminoAcids + + :return: Forcefield-specific amino acid type for each residue of last + :meth:`SetupSystem` call. + :rtype: :class:`list` of :class:`ForcefieldAminoAcid` + + .. method:: GetIndexing + + The atoms of residue *i* are stored from *idx[i]* to *idx[i+1]-1*, where + *idx* is the list returned by this function. The atoms themselves are + ordered according to the indexing defined by :class:`ForcefieldLookup`. + + :return: Indexing to positions vector used by the simulation object. + The last item of the list contains the number of atoms in the + system. + :rtype: :class:`list` of :class:`int` + + .. method:: GetCpuPlatformSupport + + :return: True, if we will use OpenMM's "CPU" platform (enabled by default + if platform is available). False, if we use "Reference" platform. + :rtype: :class:`bool` + + .. method:: SetCpuPlatformSupport(cpu_platform_support) + + Override "CPU" platform support setting. Useful to force the use of the + OpenMM's "Reference" platform for testing (by default we use "CPU" if it is + available). + + :param cpu_platform_support: True, if "CPU" platform desired (ignored if + platform not available). False, if "Reference" + platform desired. + :type cpu_platform_support: :class:`bool` + + +Forcefield lookup for amino acids +-------------------------------------------------------------------------------- + +The :class:`ForcefieldLookup` class and its helpers define a fast way to extract +FF specific data for amino acids in a protein. We distinguish amino acid types +(and a few variants thereof) which may all be N- and/or C-terminal. + + +.. class:: ForcefieldLookup + + This class provides all functionality to generate :class:`ost.mol.mm.Simulation` objects. Specifically, we can: + + - get a consistent indexing of each atom of each residue in [*0, N-1*], where + *N* = :meth:`GetNumAtoms` (note that only OXT indexing depends on whether a + residue is terminal) + - extract masses, charges and LJ-parameters for each atom (list of length *N*) + - extract connectivities (:class:`ForcefieldConnectivity`), which include all + possible bonds, angles, dihedrals, impropers and LJ pairs + + There is functionality to adapt the lookup and store it as needed or you can + load a predefined one with :meth:`GetDefault` or :meth:`LoadCHARMM`. + + The atom indexing and :meth:`GetAA` are independent of the loaded file. + + + .. staticmethod:: GetDefault() + + :return: A default singleton instance (shared throughout the Python process) + of this class with all data defined. Using this instance has the + advantage that the object is only loaded once! + :rtype: :class:`ForcefieldLookup` + + .. staticmethod:: SetDefault(new_default) + + Sets default singleton instance for all future :meth:`GetDefault` calls. + + :param new_default: Lookup object to use as the new default. + :type new_default: :class:`ForcefieldLookup` + + .. staticmethod:: LoadCHARMM() + + :returns: Predefined lookup object extracted from a CHARMM forcefield + (loaded from disk) + :rtype: :class:`ForcefieldLookup` + + .. staticmethod:: Load(filename) + LoadPortable(filename) + + Loads raw binary file generated with :meth:`Save` (optimized for fast + reading) / portable file generated with :meth:`SavePortable` (slower but + less machine-dependent). + + :param filename: Path to the file from which to load. + :type filename: :class:`str` + + :returns: The loaded lookup object + :rtype: :class:`ForcefieldLookup` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if + file cannot be parsed (see :ref:`here <portableIO>` for details). + + .. method:: Save(filename) + SavePortable(filename) + + Saves a raw / portable binary representation. Use portable files for + distribution and convert locally to raw files. See :ref:`here <portableIO>` + for details. + + :param filename: Path to the file where it will be saved. + :type filename: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. + + + .. method:: GetAA(ff_aa) + + :return: Amino acid type for given *ff_aa* + :rtype: :class:`ost.conop.AminoAcid` + + :param ff_aa: Forcefield-specific amino acid type + :type ff_aa: :class:`ForcefieldAminoAcid` + + .. method:: GetNumAtoms(ff_aa, is_nter, is_cter) + + :return: Number of atoms for given input. + :rtype: :class:`int` + + :param ff_aa: Forcefield-specific amino acid type + :type ff_aa: :class:`ForcefieldAminoAcid` + :param is_nter: True if N-terminal variant desired + :type is_nter: :class:`bool` + :param is_cter: True if C-terminal variant desired + :type is_cter: :class:`bool` + + .. method:: GetHeavyIndex(ff_aa, atom_idx) + GetHeavyIndex(ff_aa, atom_name) + + :return: Internal index for given heavy atom in [0, :meth:`GetNumAtoms`] + :rtype: :class:`int` + + :param ff_aa: Forcefield-specific amino acid type + :type ff_aa: :class:`ForcefieldAminoAcid` + :param atom_idx: Atom index as returned by :meth:`AminoAcidLookup.GetIndex` + :type atom_idx: :class:`int` + :param atom_name: Atom name + :type atom_name: :class:`str` + + .. method:: GetHydrogenIndex(ff_aa, atom_idx) + GetHydrogenIndex(ff_aa, atom_name) + + :return: Internal index for given hydrogen atom in [0, :meth:`GetNumAtoms`] + :rtype: :class:`int` + + :param ff_aa: Forcefield-specific amino acid type + :type ff_aa: :class:`ForcefieldAminoAcid` + :param atom_idx: Atom index as returned by + :meth:`AminoAcidLookup.GetHydrogenIndex` + :type atom_idx: :class:`int` + :param atom_name: Atom name + :type atom_name: :class:`str` + + .. method:: GetOXTIndex(ff_aa, is_nter) + + :return: Internal index of OXT atom for C-terminal residue + :rtype: :class:`int` + + :param ff_aa: Forcefield-specific amino acid type + :type ff_aa: :class:`ForcefieldAminoAcid` + :param is_nter: True if N-terminal variant desired + :type is_nter: :class:`bool` + + + .. method:: GetFudgeLJ() + + :return: Dampening factor for LJ 1,4 interactions (see + :meth:`ost.mol.mm.Topology.SetFudgeLJ`) + :rtype: :class:`float` + + .. method:: GetFudgeQQ() + + :return: Dampening factor for electrostatic 1,4 interactions (see + :meth:`ost.mol.mm.Topology.SetFudgeQQ`) + :rtype: :class:`float` + + + .. method:: GetMasses(ff_aa, is_nter, is_cter) + + :return: Mass for each atom (see :meth:`ost.mol.mm.Topology.SetMasses`) + :rtype: :class:`list` of :class:`float` (length = :meth:`GetNumAtoms`) + + :param ff_aa: Forcefield-specific amino acid type + :type ff_aa: :class:`ForcefieldAminoAcid` + :param is_nter: True if N-terminal variant desired + :type is_nter: :class:`bool` + :param is_cter: True if C-terminal variant desired + :type is_cter: :class:`bool` + + .. method:: GetCharges(ff_aa, is_nter, is_cter) + + :return: Charge for each atom (see :meth:`ost.mol.mm.Topology.SetCharges`) + :rtype: :class:`list` of :class:`float` (length = :meth:`GetNumAtoms`) + + :param ff_aa: Forcefield-specific amino acid type + :type ff_aa: :class:`ForcefieldAminoAcid` + :param is_nter: True if N-terminal variant desired + :type is_nter: :class:`bool` + :param is_cter: True if C-terminal variant desired + :type is_cter: :class:`bool` + + .. method:: GetSigmas(ff_aa, is_nter, is_cter) + + :return: Sigma in nm for each atom + (see :meth:`ost.mol.mm.Topology.SetSigmas`) + :rtype: :class:`list` of :class:`float` (length = :meth:`GetNumAtoms`) + + :param ff_aa: Forcefield-specific amino acid type + :type ff_aa: :class:`ForcefieldAminoAcid` + :param is_nter: True if N-terminal variant desired + :type is_nter: :class:`bool` + :param is_cter: True if C-terminal variant desired + :type is_cter: :class:`bool` + + .. method:: GetEpsilons(ff_aa, is_nter, is_cter) + + :return: Epsilon in kJ/mol for each atom + (see :meth:`ost.mol.mm.Topology.SetEpsilons`) + :rtype: :class:`list` of :class:`float` (length = :meth:`GetNumAtoms`) + + :param ff_aa: Forcefield-specific amino acid type + :type ff_aa: :class:`ForcefieldAminoAcid` + :param is_nter: True if N-terminal variant desired + :type is_nter: :class:`bool` + :param is_cter: True if C-terminal variant desired + :type is_cter: :class:`bool` + + .. method:: GetInternalConnectivity(ff_aa, is_nter, is_cter) + + :return: Internal connectivity of a residue + :rtype: :class:`ForcefieldConnectivity` + + :param ff_aa: Forcefield-specific amino acid type + :type ff_aa: :class:`ForcefieldAminoAcid` + :param is_nter: True if N-terminal variant desired + :type is_nter: :class:`bool` + :param is_cter: True if C-terminal variant desired + :type is_cter: :class:`bool` + + .. method:: GetPeptideBoundConnectivity(ff_aa_one, ff_aa_two, is_nter,\ + is_cter) + + :return: All connectivity which include peptide bond between two residues + (additional to :meth:`GetInternalConnectivity`) + :rtype: :class:`ForcefieldConnectivity` + + :param ff_aa_one: Forcefield-specific amino acid type of first residue + :type ff_aa_one: :class:`ForcefieldAminoAcid` + :param ff_aa_two: Forcefield-specific amino acid type of second residue + :type ff_aa_two: :class:`ForcefieldAminoAcid` + :param is_nter: True if first residue is N-terminal + :type is_nter: :class:`bool` + :param is_cter: True if second residue is C-terminal + :type is_cter: :class:`bool` + + .. method:: GetDisulfidConnectivity() + + :return: All connectivity which include disulfid bridge between two cysteins + (additional to :meth:`GetInternalConnectivity`) + :rtype: :class:`ForcefieldConnectivity` + + + .. method:: SetFudgeLJ(fudge) + + Set value for future :meth:`GetFudgeLJ` calls to *fudge*. + + .. method:: SetFudgeQQ(fudge) + + Set value for future :meth:`GetFudgeQQ` calls to *fudge*. + + .. method:: SetMasses(ff_aa, is_nter, is_cter, masses) + + Set value for future :meth:`GetMasses` calls to *masses*. + + .. method:: SetCharges(ff_aa, is_nter, is_cter, charges) + + Set value for future :meth:`GetCharges` calls to *charges*. + + .. method:: SetSigmas(ff_aa, is_nter, is_cter, sigmas) + + Set value for future :meth:`GetSigmas` calls to *sigmas*. + + .. method:: SetEpsilons(ff_aa, is_nter, is_cter, epsilons) + + Set value for future :meth:`GetEpsilons` calls to *epsilons*. + + .. method:: SetInternalConnectivity(ff_aa, is_nter, is_cter, connectivity) + + Set value for future :meth:`GetInternalConnectivity` calls to + *connectivity*. + + .. method:: SetPeptideBoundConnectivity(ff_aa_one, ff_aa_two, is_nter,\ + is_cter, connectivity) + + Set value for future :meth:`GetPeptideBoundConnectivity` calls to + *connectivity*. + + .. method:: SetDisulfidConnectivity(connectivity) + + Set value for future :meth:`GetDisulfidConnectivity` calls to + *connectivity*. + + +.. class:: ForcefieldAminoAcid + + Enumerates the amino acid types for forcefields. The first 20 values + correspond to the 20 values of :class:`ost.conop.AminoAcid`. Additionally, + there are values for disulfid bridges (*FF_CYS2*), d-protonated histidine + (*FF_HISD*, default for *ost.conop.HIS* is *FF_HISE*) and *FF_XXX* for unknown + types. The full list of values is: + + *FF_ALA*, *FF_ARG*, *FF_ASN*, *FF_ASP*, *FF_GLN*, *FF_GLU*, *FF_LYS*, + *FF_SER*, *FF_CYS*, *FF_MET*, *FF_TRP*, *FF_TYR*, *FF_THR*, *FF_VAL*, + *FF_ILE*, *FF_LEU*, *FF_GLY*, *FF_PRO* *FF_HISE*, *FF_PHE*, *FF_CYS2*, + *FF_HISD*, *FF_XXX* + + +.. class:: ForcefieldConnectivity + + Contains lists of bonds, angles, dihedrals, impropers and LJ pairs (exclusions + are the combination of all bonds and 1,3 pairs of angles and are not stored + separately). Each type of connectivity has it's own class (see below) storing + indices and parameters to be used for methods of :class:`ost.mol.mm.Topology`. + The indexing of atoms for internal connectivities is in [*0, N-1*], where *N* + = :meth:`ForcefieldLookup.GetNumAtoms`. For connectivities of pairs of + residues, atoms of the first residue are in [*0, N1-1*] and atoms of the + second one are in [*N1, N1+N2-1*], where *N1* and *N2* are the number of atoms + of the two residues. For disulfid bridges, *N1* = *N2* = *GetNumAtoms(FF_CYS2, + False, False)*. + + .. attribute:: harmonic_bonds + + List of harmonic bonds. + + :type: :class:`list` of :class:`ForcefieldBondInfo` + + .. attribute:: harmonic_angles + + List of harmonic angles. + + :type: :class:`list` of :class:`ForcefieldHarmonicAngleInfo` + + .. attribute:: urey_bradley_angles + + List of Urey-Bradley angles. + + :type: :class:`list` of :class:`ForcefieldUreyBradleyAngleInfo` + + .. attribute:: periodic_dihedrals + + List of periodic dihedrals. + + :type: :class:`list` of :class:`ForcefieldPeriodicDihedralInfo` + + .. attribute:: periodic_impropers + + List of periodic impropers. + + :type: :class:`list` of :class:`ForcefieldPeriodicDihedralInfo` + + .. attribute:: harmonic_impropers + + List of harmonic impropers. + + :type: :class:`list` of :class:`ForcefieldHarmonicImproperInfo` + + .. attribute:: lj_pairs + + List of LJ pairs. + + :type: :class:`list` of :class:`ForcefieldLJPairInfo` + + +.. class:: ForcefieldBondInfo + + Define harmonic bond (see :meth:`ost.mol.mm.Topology.AddHarmonicBond`) + + .. attribute:: index_one + + Index of particle 1 + + :type: :class:`int` + + .. attribute:: index_two + + Index of particle 2 + + :type: :class:`int` + + .. attribute:: bond_length + + Bond length in nm + + :type: :class:`float` + + .. attribute:: force_constant + + Force constant in kJ/mol/nm^2 + + :type: :class:`float` + + +.. class:: ForcefieldHarmonicAngleInfo + + Define harmonic angle (see :meth:`ost.mol.mm.Topology.AddHarmonicAngle`) + + .. attribute:: index_one + + Index of particle 1 + + :type: :class:`int` + + .. attribute:: index_two + + Index of particle 2 + + :type: :class:`int` + + .. attribute:: index_three + + Index of particle 3 + + :type: :class:`int` + + .. attribute:: angle + + Angle in radians + + :type: :class:`float` + + .. attribute:: force_constant + + Force constant in kJ/mol/radian^2 + + :type: :class:`float` + + +.. class:: ForcefieldUreyBradleyAngleInfo + + Define Urey-Bradley angle + (see :meth:`ost.mol.mm.Topology.AddUreyBradleyAngle`) + + .. attribute:: index_one + + Index of particle 1 + + :type: :class:`int` + + .. attribute:: index_two + + Index of particle 2 + + :type: :class:`int` + + .. attribute:: index_three + + Index of particle 3 + + :type: :class:`int` + + .. attribute:: angle + + Angle in radians + + :type: :class:`float` + + .. attribute:: angle_force_constant + + Angle force constant kJ/mol/radian^2 + + :type: :class:`float` + + .. attribute:: bond_length + + Bond length in nm + + :type: :class:`float` + + .. attribute:: bond_force_constant + + Bond force constant kJ/mol/nm^2 + + :type: :class:`float` + + +.. class:: ForcefieldPeriodicDihedralInfo + + Define periodic dihedral or improper (see + :meth:`ost.mol.mm.Topology.AddPeriodicDihedral` and + :meth:`ost.mol.mm.Topology.AddPeriodicImproper`) + + .. attribute:: index_one + + Index of particle 1 + + :type: :class:`int` + + .. attribute:: index_two + + Index of particle 2 + + :type: :class:`int` + + .. attribute:: index_three + + Index of particle 3 + + :type: :class:`int` + + .. attribute:: index_four + + Index of particle 4 + + :type: :class:`int` + + .. attribute:: multiplicity + + Multiplicity + + :type: :class:`int` + + .. attribute:: phase + + Phase in radians + + :type: :class:`float` + + .. attribute:: force_constant + + Force constant in kJ/mol/radian^2 + + :type: :class:`float` + + +.. class:: ForcefieldHarmonicImproperInfo + + Define harmonic improper (see :meth:`ost.mol.mm.Topology.AddHarmonicImproper`) + + .. attribute:: index_one + + Index of particle 1 + + :type: :class:`int` + + .. attribute:: index_two + + Index of particle 2 + + :type: :class:`int` + + .. attribute:: index_three + + Index of particle 3 + + :type: :class:`int` + + .. attribute:: index_four + + Index of particle 4 + + :type: :class:`int` + + .. attribute:: angle + + Angle in radians + + :type: :class:`float` + + .. attribute:: force_constant + + Force constant kJ/mol/radian^2 + + :type: :class:`float` + + +.. class:: ForcefieldLJPairInfo + + Define LJ pair (see :meth:`ost.mol.mm.Topology.AddLJPair`) + + .. attribute:: index_one + + Index of particle 1 + + :type: :class:`int` + + .. attribute:: index_two + + Index of particle 2 + + :type: :class:`int` + + .. attribute:: sigma + + Sigma in nm + + :type: :class:`float` + + .. attribute:: epsilon + + Epsilon in kJ/mol + + :type: :class:`float` + diff --git a/doc/html/_sources/loop/structure_db.rst.txt b/doc/html/_sources/loop/structure_db.txt similarity index 97% rename from doc/html/_sources/loop/structure_db.rst.txt rename to doc/html/_sources/loop/structure_db.txt index 2ec4e098ba8ae341be674183b769b629d26a786c..edb31a871397070dca0dce86fdc3d630713a4524 100644 --- a/doc/html/_sources/loop/structure_db.rst.txt +++ b/doc/html/_sources/loop/structure_db.txt @@ -1,1045 +1,1045 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Structural Data -================================================================================ - -.. currentmodule:: promod3.loop - -The :class:`StructureDB` serves as a container for structural backbone and -sequence data. Custom accessor objects can be implemented that relate -arbitrary features to structural data. Examples provided by |project| include -accession using matching stem geometry (see: :class:`FragDB`) or sequence -features (see: :class:`Fragger`). -Besides backbone and sequence data, derived features can -optionally be stored. E.g. sequence profiles or secondary structure information. -Optional data includes: - - * The phi/psi dihedral angles - * The secondary structure state as defined by dssp - * The solvent accessibility in square Angstrom - * The amino acid frequencies as given by an input sequence profile - * The residue depth - The residue depth is defined as the minimum distance of - a residue towards any of the exposed residues. - Distances are calculated using CB positions (artificially constructed in case - of glycine) and exposed is defined as: - relative solvent accessibility > 25% and at least one atom being exposed - to the OUTER surface. To determine whether an atom is part of that outer - surface, the full structure is placed into a 3D grid and a flood fill - algorithm is used to determine the atoms of interest. - Internal cavities are excluded by using this approach. This is a simplified - version of the residue depth as discussed in [chakravarty1999]_ and gets - directly calculated when structural information is added to the StructureDB. - * The amino acid frequency derived from structural alignments as described - in [zhou2005]_ - Since the calculation of such a profile already requires a - StructureDB, we end up in a hen and egg problem here... When adding - structural information to the StructureDB, the according memory gets - just allocated and set to zero. The usage of this information - is therefore only meaningful if you calculate these profiles - and manually set them (or load the provided default database). - -Defining Chains and Fragments --------------------------------------------------------------------------------- - -.. class:: CoordInfo() - - The CoordInfo gets automatically generated when new chains are added to - a :class:`StructureDB`. It contains internal information of how a - connected stretch of residues is stored in the database. - - .. attribute:: id - - An id string specified when adding the corresponding stretch to the - structure db - - .. attribute:: chain_name - - A chain name string specified when adding the corresponding stretch to the - structure db - - .. attribute:: offset - - All residues of the added stretch are stored in a linear memory layout. - The offset parameter tells us where it exactly starts in the global data - structure. (:class:`int`) - - .. attribute:: size - - The number of residues in that stretch (:class:`int`) - - .. attribute:: start_resnum - - Residue number of first residue in the added stretch. The residue number - is relative to the SEQRES provided in the input profile when adding the - stuff to the structure db. (:class:`int`) - - .. attribute:: shift - - Translation from original coordinates that has been applied before storing - structural information in db. (:class:`ost.geom.Vec3`) - - -.. class:: FragmentInfo(chain_index, offset, length) - - The FragmentInfo defines any fragment in the :class:`StructureDB`. If you - implement your own accessor object, thats the information you want to store. - - :param chain_index: Fills :attr:`chain_index` - - :param offset: Fills :attr:`offset` - - :param length: Fills :attr:`length` - - .. attribute:: chain_index - - The index of the chain (defined by :class:`CoordInfo`) in the - :class:`StructureDB` this particle belongs to. (:class:`int`) - - .. attribute:: offset - - Index of residue in **chain** the fragment starts. (0-based, :class:`int`) - - .. attribute:: length - - Length of the fragment (:class:`int`) - - - -The Structure Database --------------------------------------------------------------------------------- - -The following code example demonstrates how to create a structural database -and fill it with content. - -.. literalinclude:: ../../../tests/doc/scripts/loop_structure_db.py - -Calculating the structural profiles is expensive and heavily depends on -the size of the database used as source. If you want to do this for a larger -database, you might want to consider two things: - -1. Use a database of limited size to generate the actual profiles (something - in between 5000 and 10000 nonredundant chains is enough) -2. Use the :class:`ost.seq.ProfileDB` to gather profiles produced from jobs - running in parallel - - -.. class:: StructureDBDataType - - The StructureDBDataType enum has to be passed at initialization of a - StructureDB in order to define what data you want to store additionally - to backbone coordinates and sequence. - For the bare minimum (only backbone coordinates and sequence), use Minimal. - If you want to store all data possible, use All. If you only want a subset, - you can combine some of the datatypes with a bitwise or operation - (see example script for :class:`StructureDB`). One important note: - If you enable AAFrequenciesStruct, the actual information is not automatically - assigned. Only the according memory is allocated and set to zero, the actual - information must be assigned manually (see example script again...). - - Minimal, All, Dihedrals, SolventAccessibilities, ResidueDepths, DSSP, - AAFrequencies, AAFrequenciesStruct - - -.. class:: StructureDB(data_to_store) - - Generates an empty :class:`StructureDB` that can be filled with content - through :func:`AddCoordinates`. The information extracted there is defined by - *data_to_store*. Have a look at the :class:`StructureDBDataType` - documentation and at the example script... - - :param data_to_store: Specifies what data to store in the database, several - flags can be combined with a bitwise or operator. - :type data_to_store: :class:`StructureDBDataType` - - - - .. staticmethod:: Load(filename) - LoadPortable(filename) - - Loads raw binary file generated with :meth:`Save` (optimized for fast - reading) / portable file generated with :meth:`SavePortable` (slower but - less machine-dependent). - - :param filename: Path to the file from which to load the database. - :type filename: :class:`str` - - :returns: The loaded data base - :rtype: :class:`StructureDB` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if - file cannot be parsed (see :ref:`here <portableIO>` for details). - - - .. method:: Save(filename) - SavePortable(filename) - - Saves a raw / portable binary representation. Use portable files for - distribution and convert locally to raw files. See :ref:`here <portableIO>` - for details. - - :param filename: Path to the file where the database will be saved - :type filename: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened - - - .. method:: HasData(data_type) - - Checks, whether requested data type is available in the current database. - - :param data_type: Data type to check - :type data_type: :class:`StructureDBDataType` - - :returns: Whether the requested datatype is available - :rtype: :class:`bool` - - - .. method:: AddCoordinates(id, chain_name, ent, seqres, prof=None, \ - only_longest_stretch=True) - - This method takes an entity and adds coordinates and the sequence - of one of its chains to the structural database. Additionally, all - data as specified at the initialization of the database is extracted - fully automatically by considering the full *ent* (e.g. when - calculating solvent accessibilities etc.). - The only exception is AAFrequencies, where a valid sequence profile - is expected in *prof* that has matching sequence with *seqres* - All residues in chain with name *chain_name* must have residue numbers - that directly relate them to the *seqres* with an indexing scheme - starting from one. - If this is not the case, an error gets thrown. You might want to - consider to use :meth:`ost.seq.Renumber` for proper numbering. - Based on consecutive numbering and additionally checking for valid - peptide bonds, connected stretches are identified - and every added connected stretch gets its own entry with - :class:`CoordInfo` as a descriptor. - To avoid cluttering the database with many small fragments, the flag: - *only_longest_stretch* can be used. Set it to False if all - connected stretches of chain with name *chain_name* should be added. - There is one final catch you have to consider: Due to the internal - lossy data compression for the positions, the extent in x, y and - z - direction for every connected stretch is limited to 655A. This should - be sufficient for most structures, but stretches exceeding this maximum - are discarded. For storing the structural data given these restraints, - a translation is applied that gets stored as the *shift* attribute - in the according :class:`CoordInfo` object. - - :param id: identifier of the added structure (e.g. pdb id) - :param chain_name: Name of the chain in *ent* you want to add - :param ent: The full entity that must contain a chain named - as specified by *chain_name*. - :param seqres: The reference sequence of chain with name *chain_name* - :param prof: Profile information for the chain with name - *chain_name*. The profile sequence must match *seqres*. - :param only_longest_stretch: Flag whether you want to add only the longest - connected stretch of residues are all connected - stretches of residues - - :type id: :class:`str` - :type chain_name: :class:`str` - :type ent: :class:`ost.mol.EntityHandle` / - :class:`ost.mol.EntityView` - :type seqres: :class:`ost.seq.SequenceHandle` - :type prof: :class:`ost.seq.ProfileHandle` - :type only_longest_strech: :class:`bool` - - :returns: indices of added stretches in db - :rtype: :class:`list` of `int` - - :raises: :exc:`~exceptions.RuntimeError` if the residues in chain with - name *chain_name* do not match *seqres* given the - residue numbers, when AAFrequencies have to to be extracted and - the sequence in *prof* does not match the *seqres* or *prof* is - invalid. - - - .. method:: RemoveCoordinates(coord_idx) - - Removes coordinates at specified location and all its associated data. This - has an impact on the offset values of all :class:`CoordInfo` objects - that are internally stored afterwards and on the actual coord indices - (all shifted by one). So make sure that you adapt your data access - accordingly! - - :param coord_idx: Specifies coordinates to be removed - :type coord_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *coord_idx* is invalid - - .. method:: GetCoordIdx(id, chain_name) - - :returns: The :class:`StructureDB` indices (in [0, :meth:`GetNumCoords`-1]) - of all coords (connected stretches) with matching - *id* / *chain_name*. - :rtype: :class:`list` of :class:`int` - - :param id: Identifier given when calling :meth:`AddCoordinates` - :param chain_name: Name of chain given when calling :meth:`AddCoordinates` - - :type pdb_id: :class:`str` - :type chain_name: :class:`str` - - - .. method:: GetCoordInfo(idx) - - :returns: Object describing the stretch of connected residues with - index *idx*. - :rtype: :class:`CoordInfo` - - :param idx: The :class:`StructureDB` index (in [0, :meth:`GetNumCoords`-1]) - :type idx: :class:`int` - - - .. method:: GetNumCoords() - - :returns: Number of connected stretches of residues that have been added to - the database. - :rtype: :class:`int` - - - .. method:: PrintStatistics() - - Prints out some information about the db. - - - .. method:: GetBackboneList(fragment, sequence) - GetBackboneList(n_stem, c_stem, fragment, sequence="") - GetBackboneList(coord_idx, sequence="") - GetBackboneList(n_stem, c_stem, coord_idx, sequence="") - - - :returns: Backbone list with positions extracted from *fragment* or - full entry at *coord_idx* - :rtype: :class:`BackboneList` - - :param fragment: Fragment definition from which to extract positions. - :type fragment: :class:`FragmentInfo` - :param coord_idx: Idx of entry from which to extract positions. - :type coord_idx: :class:`int` - :param sequence: Sequence of the returned backbone list. If not - set, the original sequence at specified location in the - database is used. - :type sequence: :class:`str` - :param n_stem: Positions on which the backbone list's N-terminus should be - superposed onto. - :type n_stem: :class:`ost.mol.ResidueHandle` - :param c_stem: Positions on which the backbone list's C-terminus should be - superposed onto. - :type c_stem: :class:`ost.mol.ResidueHandle` - - :raises: :exc:`~exceptions.RuntimeError` if the length of *sequence* does - not match with the desired backbone list, if *sequence* contains - a character which does not belong to the 20 proteinogenic amino - acids or if *fragment* or *coord_idx* is invalid. Fragment can - be invalid when it does not fully fit into one of the connected - stretches of residues in the database. - - .. method:: GetSequence(fragment) - GetSequence(coord_idx) - - :returns: The sequence of *fragment* or full entry at *coord_idx* - :rtype: :class:`str` - - :param fragment: Fragment definition from which to extract the sequence. - :type fragment: :class:`FragmentInfo` - - :param coord_idx: Idx of entry from which to extract the sequence - :type coord_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if fragment or coord_idx is - invalid. Fragment can be invalid when it does not fully fit into - one of the connected stretches of residues in the database. - - - .. method:: GetDSSPStates(fragment) - GetDSSPStates(coord_idx) - - :returns: The dssp states of *fragment* or full entry at *coord_idx* - :rtype: :class:`str` - - :param fragment: Fragment definition from which to extract the states. - :type fragment: :class:`FragmentInfo` - - :param coord_idx: Idx of entry from which to extract the dssp states - :type coord_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if database does not contain dssp - data or if fragment/ coord_idx is invalid. Fragment can be invalid - when it does not fully fit into one of the connected stretches of - residues in the database. - - - .. method:: GetDihedralAngles(fragment) - GetDihedralAngles(coord_idx) - - :returns: The phi and psi dihedral angles of every residue of *fragment* - or full entry at *coord_idx* - :rtype: :class:`list` of pairs (:class:`tuple`) - - :param fragment: Fragment definition from which to extract the dihedrals. - :type fragment: :class:`FragmentInfo` - - :param coord_idx: Idx of entry from which to extract the dihedral angles - :type coord_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if database does not contain - dihedral angle data or if fragment/ coord_idx is invalid. - Fragment can be invalid when it does not fully fit into one of the - connected stretches of residues in the database. - - - .. method:: GetResidueDepths(fragment) - GetResidueDepths(coord_idx) - - :returns: Residue depth for each residue of *fragment* or full entry - at *coord_idx* - :rtype: :class:`list` of :class:`float` - - :param fragment: Fragment definition from which to extract the residue - depths - :type fragment: :class:`FragmentInfo` - - :param coord_idx: Idx of entry from which to extract the residue depths - :type coord_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if database does not contain - residue depth data or if fragment/ coord_idx is invalid. - Fragment can be invalid when it does not fully fit into one of the - connected stretches of residues in the database. - - - .. method:: GetSolventAccessibilitites(fragment) - GetSolventAccessibilitites(coord_idx) - - :returns: Solvent accessibility for each residue of *fragment* or full entry - at *coord_idx* in square A as calculated by - :meth:`~ost.mol.alg.Accessibility` when adding the structure to - the database. - :rtype: :class:`list` of :class:`float` - - :param fragment: Fragment definition from which to extract the solvent - accessibilities - :type fragment: :class:`FragmentInfo` - - :param coord_idx: Idx of entry from which to extract the solvent - accessibilities - :type coord_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if database does not contain - solvent accessibility data or if fragment/ coord_idx is invalid. - Fragment can be invalid when it does not fully fit into one of the - connected stretches of residues in the database. - - - .. method:: GetSequenceProfile(fragment) - GetSequenceProfile(coord_idx) - - :returns: The sequence profile for the residues defined by *fragment* or - full entry at *coord_idx* with the BLOSUM62 probabilities as NULL - model. - :rtype: :class:`ost.seq.ProfileHandle` - - :param fragment: Fragment definition from which to extract the sequence - profile - - :type fragment: :class:`FragmentInfo` - - :param coord_idx: Idx of entry from which to extract the sequence profile - :type coord_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if database does not contain - sequence profile data or if fragment/ coord_idx is invalid. - Fragment can be invalid when it does not fully fit into one of the - connected stretches of residues in the database. - - - .. method:: GetStructureProfile(fragment) - GetStructureProfile(coord_idx) - - :returns: The structure profile for the residues defined by *fragment* or - full entry at *coord_idx* with the BLOSUM62 probabilities as NULL - model. - :rtype: :class:`ost.seq.ProfileHandle` - - :param fragment: Fragment definition from which to extract the structure - profile - - :type fragment: :class:`FragmentInfo` - - :param coord_idx: Idx of entry from which to extract the structure profile - :type coord_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if database does not contain - structure profile data or if fragment/ coord_idx is invalid. - Fragment can be invalid when it does not fully fit into one of the - connected stretches of residues in the database. - - - .. method:: GenerateStructureProfile(bb_list, residue_depths) - - Calculates a structure profile for *bb_list* with given *residue_depths* - using the full internal data of this StructureDB. - - :param bb_list: Positions for which to calculate the structural profile - :type bb_list: :class:`BackboneList` - :param residue_depths: The residue depth for each residue in *bb_list* - as you would extract it from any StructureDB - containing that data. - :type residue_depths: :class:`list` of :class:`float` - - :returns: The structure profile for the input with the BLOSUM62 - probabilities as NULL model. - :rtype: :class:`ost.seq.ProfileHandle` - - :raises: :exc:`~exceptions.RuntimeError` if *bb_list* and - *residue_depths* differ in size, when their size is 0 - or when database does not contain residue depth data. - - - .. method:: SetStructureProfile(coord_idx, prof) - - Takes the *prof* and sets the corresponding StructureProfile - frequencies in entry with *coord_idx* - - :param prof: Source of profile frequencies - :param coord_idx: StructureDB index of entry for which to set frequencies - (in [0, :meth:`GetNumCoords`-1]) - - :type prof: :class:`ost.seq.ProfileHandle` - :type coord_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *coord_idx* does not match - any entry in the db, when the size of the *prof* does not - exactly match the size of entry at *coord_idx* or when database - does not contain aa frequency struct data. - - - .. method:: GetSubDB(indices) - - :return: A new database containing only the structural infos specified by - your input. This might be useful if you're testing stuff and want - to make sure that you have no close homologue in the database. - :rtype: :class:`StructureDB` - - :param indices: Indices of chains to be added to the sub database (in [0, - :meth:`GetNumCoords`-1]) - :type indices: :class:`list` - - :raises: :exc:`~exceptions.RuntimeError` if you provide an invalid index - - - -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 (incl. stems) 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. - -This example illustrates how to create a custom FragDB based on a StructureDB: - -.. literalinclude:: ../../../tests/doc/scripts/loop_frag_db.py - -.. class:: FragDB(dist_bin_size, angle_bin_size) - - :param dist_bin_size: Size of the distance parameter binning in A - :param angle_bin_size: Size of the angle parameter binning in degree - :type dist_bin_size: :class:`float` - :type angle_bin_size: :class:`int` - - .. staticmethod:: Load(filename) - LoadPortable(filename) - - Loads raw binary file generated with :meth:`Save` (optimized for fast - reading) / portable file generated with :meth:`SavePortable` (slower but - less machine-dependent). - - :param filename: Path to the file from which to load the database. - :type filename: :class:`str` - - :returns: The loaded database - :rtype: :class:`FragDB` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if - file cannot be parsed (see :ref:`here <portableIO>` for details). - - .. method:: Save(filename) - SavePortable(filename) - - Saves a raw / portable binary representation. Use portable files for - distribution and convert locally to raw files. See :ref:`here <portableIO>` - for details. - - :param filename: path to the file where the database will be saved - :type filename: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. - - .. 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 - **structure_db** and adds them to the fragment database. - Fragments will be skipped if there is already a fragment in the database - that has an RMSD smaller than **rmsd_cutoff**, where RMSD is calculated - upon superposing the stem residues. - 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 database, 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 database - 3. The minimal and maximal number of fragments found in a stem group. - - - .. method:: GetNumStemPairs() - 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 the whole db - or 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() - GetNumFragments(loop_length) - - Returns the number of fragments in the database in total or for fragments of - a given length. - - :param loop_length: The length of the fragments - :type loop_length: :class:`int` - - :returns: Number of fragments - :rtype: :class:`int` - - .. method:: HasFragLength(loop_length) - - :param loop_length: The length of the fragments - :type loop_length: :class:`int` - - :returns: True if fragments of given length exist. - :rtype: :class:`bool` - - .. method:: MaxFragLength() - - :returns: Maximal fragment length contained in db. - :rtype: :class:`int` - - .. method:: SearchDB(n_stem, c_stem, frag_size, extra_bins=0) - - Search the database for fragments matching the geometry of the **n_stem** - and **c_stem** and of the same length as the **frag_size**. - - :param n_stem: The N-stem - :type n_stem: :class:`ost.mol.ResidueHandle` - :param c_stem: The C-stem - :type c_stem: :class:`ost.mol.ResidueHandle` - :param frag_size: Number of residues of the fragment - :type frag_size: :class:`int` - :param extra_bins: Whether to extend the search to include fragments from - *extra_bins* additional bins surrounding the bin given by - the *n_stem* and *c_stem* geometry. If odd, we extend to - the closer bin, otherwise symmetrically. - :type extra_bins: :class:`int` - - :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` 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. You can use the :class:`Fragger` -wrapped in a full fletched pipeline implemented in -:class:`~promod3.modelling.FraggerHandle` or search for fragments from scratch -using an arbitrary linear combination of scores: - -* **SeqID**: - Calculates the fraction of amino acids being identical when comparing - a potential fragment from the :class:`StructureDB` and the target sequence - -* **SeqSim**: - Calculates the avg. substitution matrix based sequence similarity of amino acids - when comparing a potential fragment from the :class:`StructureDB` and the target - sequence - -* **SSAgree**: - Calculates the avg. agreement of the predicted secondary structure by PSIPRED [Jones1999]_ - and the dssp [kabsch1983]_ assignment stored in the :class:`StructureDB`. - The Agreement term is based on a probabilistic approach also used in HHSearch [soding2005]_. - -* **TorsionProbability**: - Calculates the avg. probability of observing the phi/psi dihedral angles of a potential - fragment from the :class:`StructureDB` given the target sequence. The probabilities are - extracted from the :class:`TorsionSampler` class. - -* **SequenceProfile**: - Calculates the avg. profile score between the amino acid frequencies of a potential - fragment from the :class:`StructureDB` and a target profile assuming a gapfree alignment - in between them. The scores are calculated as L1 distances between the profile columns. - -* **StructureProfile**: - Calculates the avg. profile score between the amino acid frequencies of a potential - fragment from the :class:`StructureDB` and a target profile assuming a gapfree alignment - in between them. The scores are calculated as L1 distances between the profile columns. - In this case, the amino acid frequencies extracted from structural alignments are used. - -.. literalinclude:: ../../../tests/doc/scripts/loop_fragger.py - -.. class:: Fragger(seq) - - A Fragger object to search a :class:`StructureDB` for fragments with **seq** - as target sequence. You need to add some score components before you can - finally call the Fill function. - - :param seq: Sequence of fragments to be searched - :type seq: :class:`str` - - .. method:: Fill(db, rmsd_thresh, num_fragments) - - Searches **db** for **num_fragments** fragments with maximal - score based on the defined score components. - There will be no pair of fragments with RMSD below **rmsd_thresh**. - - :param db: Source of structural data - :param rmsd_thresh: To guarantee structural diversity - :param num_fragments: Number of fragments to be extracted - - :type db: :class:`StructureDB` - :type rmsd_thresh: :class:`float` - :type num_fragments: :class:`int` - - .. method:: AddSeqIDParameters(w) - - Add SeqID score component with linear weight **w** - - :param w: linear weight - - :type w: :class:`float` - - .. method:: AddSeqSimParameters(w, subst) - - Add SeqSim score component with linear weight **w** - - :param w: linear weight - :param subst: Substitution matrix to calculate sequence similarity - - :type w: :class:`float` - :type subst: :class:`ost.seq.SubstWeightMatrix` - - .. method:: AddSSAgreeParameters(w, psipred_prediction) - - Add SSAgree score component with linear weight **w** - - :param w: linear weight - :param psipred_prediction: Psipred prediction for fraggers target_sequence - - :type w: :class:`str` - :type psipred_prediction: :class:`PsipredPrediction` - - - .. method:: AddTorsionProbabilityParameters(w, torsion_sampler, \ - aa_before, aa_after) - AddTorsionProbabilityParameters(w, torsion_sampler_list, \ - aa_before, aa_after) - - Add TorsionProbability component of linear weight **w** - - :param w: linear weight - :type w: :class:`float` - :param torsion_sampler: Torsion sampler to be used for all residues. - :type torsion_sampler: :class:`TorsionSampler` - :param torsion_sampler_list: One torsion sampler for each residue. - :type torsion_sampler_list: :class:`list` of :class:`TorsionSampler` - :param aa_before: Name (3 letter code) of the residue before the sequence - linked to this object. - :type aa_before: :class:`str` - :param aa_after: Name (3 letter code) of the residue after the sequence - linked to this object. - :type aa_after: :class:`str` - - .. method:: AddSequenceProfileParameters(w, prof) - - Add SequenceProfile component of linear weight **w** - - :param w: linear weight - :param prof: Profile for the fraggers target_sequence - - :type w: :class:`float` - :type prof: :class:`ost.seq.ProfileHandle` - - .. method:: AddStructureProfileParameters(w, prof) - - Add StructureProfile component of linear weight **w** - - :param w: linear weight - :param prof: Profile for the fraggers target_sequence - - :type w: :class:`float` - :type prof: :class:`ost.seq.ProfileHandle` - - .. method:: __len__() - - :returns: Number of fragments stored in fragger. - - .. method:: __getitem__(index) - - :param index: Item to extract - - :returns: Fragment at given position - :rtype: :class:`BackboneList` - - .. method:: GetFragmentInfo(index) - - :param index: Index of fragment - - :type index: :class:`int` - - :returns: :class:`FragmentInfo` of fragment at position **index** - - .. method:: GetScore(index) - - Returns the final score of fragment defined by **index** - - :param index: Index of fragment - - :type index: :class:`int` - - :returns: Score of fragment at position **index** - - .. method:: GetScore(parameter_index, index) - - Returns the single feature score defined by **parameter_index** of - fragment defined by **index** with parameter indexing based on the order - you added them to the :class:`Fragger` - - :param parameter_index: Index of score (0-indexed in order of score - components that were added) - :param index: Index of fragment - - :type parameter_index: :class:`int` - :type index: :class:`int` - -.. class:: FraggerMap - - A simple storable map of Fragger objects. The idea is that one can use the map - to cache fragger lists that have already been generated. - - You can use :meth:`Contains` to check if an item with a given key - (:class:`int`) already exists and access items with the [] operator (see - :meth:`__getitem__` and :meth:`__setitem__`). - - Serialization is meant to be temporary and is not guaranteed to be portable. - - .. method:: Load(filename, db) - - Loads raw binary file generated with :meth:`Save`. - - :param filename: Path to the file. - :type filename: :class:`str` - :param db: Source of structural data used when filling the fragments. - :type db: :class:`StructureDB` - - :returns: The loaded map. - :rtype: :class:`FraggerMap` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. - - .. method:: Save(filename) - - Saves raw binary representation of this map. Only fragment infos and scores - are stored and not the parameters for scoring. The coordinates are to be - reread from a structure db. - - :param filename: Path to the file. - :type filename: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. - - .. method:: LoadBB(filename) - - Loads raw binary file generated with :meth:`SaveBB`. - - :param filename: Path to the file. - :type filename: :class:`str` - - :returns: The loaded map. - :rtype: :class:`FraggerMap` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. - - .. method:: SaveBB(filename) - - Saves raw binary representation of this map. Only fragments and scores - are stored and not the parameters for scoring. Here, we also store the - coordinates. This file will hence be much larger than the one saved with - :meth:`Save`. - - :param filename: Path to the file. - :type filename: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. - - .. method:: Contains(id) - - :return: True, iff a fragger object for this id is already in the map. - :rtype: :class:`bool` - - .. method:: __getitem__(id) - __setitem__(id) - - Allow read/write access (with [*id*]) to fragger object with given ID. - - -The PsipredPrediction class --------------------------------------------------------------------------------- - -.. class:: PsipredPrediction - - A container for the secondary structure prediction by PSIPRED [Jones1999]_. - - .. method:: PsipredPrediction() - - Constructs empty container - - .. method:: PsipredPrediction(prediction, confidence) - - Constructs container with given content - - :param prediction: Secondary structure prediction as element in ['H','E','C'] - :param confidence: Confidence of prediction as element in [0,9] - - :type prediction: :class:`list` - :type confidence: :class:`list` - - :raises: :exc:`~exceptions.RuntimeError` if size of **prediction** and - **confidence** are inconsistent or if they contain an invalid - element - - .. method:: FromHHM(filename) - - Static function to Load a :class:`PsipredPrediction` object from hhm file, - as they are provided by the hhsearch suite - - :param filename: Name of file - :type filename: :class:`str` - - .. method:: FromHoriz(filename) - - Static function to Load a :class:`PsipredPrediction` object from horiz file, - as they are produced by the psipred executable - - :param filename: Name of file - :type filename: :class:`str` - - .. method:: Add(prediction, confidence) - - Adds and appends a single residue psipred prediction at the end - - :param prediction: Prediction, must be one in ['H','E','C'] - :param confidence: Confidence of prediction, must be in [0,9] - - :type prediction: :class:`str` - :type confidence: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if input contains invalid elements - - .. method:: Extract(from, to) - - Extracts content and returns a sub-:class:`PsipredPrediction` with range **from** - to **to**, not including **to** itself - - :param from: Idx to start - :param to: Idx to end - - :type from: :class:`int` - :type to: :class:`int` - - :returns: :class:`PsipredPrediction` with the specified range - - :raises: :exc:`~exceptions.RuntimeError` if **from** or **to** are invalid - - .. method:: GetPrediction(idx) - - :param idx: Index to get prediction from - :type idx: :class:`int` - :returns: Psipred prediction at pos **idx** - :raises: :exc:`~exceptions.RuntimeError` if **idx** is invalid - - .. method:: GetConfidence(idx) - - :param idx: Index to get confidence from - :type idx: :class:`int` - :returns: Psipred confidence at pos **idx** - :raises: :exc:`~exceptions.RuntimeError` if **idx** is invalid - - .. method:: GetPredictions() - - Get all the predictions in the container - - :returns: :class:`list` containing all the predictions in the container - - .. method:: GetConfidences() - - Get all the confidences in the container - - :returns: :class:`list` containing all the confidences in the container - - .. method:: __len__() - - :returns: Number of elements in container +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Structural Data +================================================================================ + +.. currentmodule:: promod3.loop + +The :class:`StructureDB` serves as a container for structural backbone and +sequence data. Custom accessor objects can be implemented that relate +arbitrary features to structural data. Examples provided by |project| include +accession using matching stem geometry (see: :class:`FragDB`) or sequence +features (see: :class:`Fragger`). +Besides backbone and sequence data, derived features can +optionally be stored. E.g. sequence profiles or secondary structure information. +Optional data includes: + + * The phi/psi dihedral angles + * The secondary structure state as defined by dssp + * The solvent accessibility in square Angstrom + * The amino acid frequencies as given by an input sequence profile + * The residue depth - The residue depth is defined as the minimum distance of + a residue towards any of the exposed residues. + Distances are calculated using CB positions (artificially constructed in case + of glycine) and exposed is defined as: + relative solvent accessibility > 25% and at least one atom being exposed + to the OUTER surface. To determine whether an atom is part of that outer + surface, the full structure is placed into a 3D grid and a flood fill + algorithm is used to determine the atoms of interest. + Internal cavities are excluded by using this approach. This is a simplified + version of the residue depth as discussed in [chakravarty1999]_ and gets + directly calculated when structural information is added to the StructureDB. + * The amino acid frequency derived from structural alignments as described + in [zhou2005]_ - Since the calculation of such a profile already requires a + StructureDB, we end up in a hen and egg problem here... When adding + structural information to the StructureDB, the according memory gets + just allocated and set to zero. The usage of this information + is therefore only meaningful if you calculate these profiles + and manually set them (or load the provided default database). + +Defining Chains and Fragments +-------------------------------------------------------------------------------- + +.. class:: CoordInfo() + + The CoordInfo gets automatically generated when new chains are added to + a :class:`StructureDB`. It contains internal information of how a + connected stretch of residues is stored in the database. + + .. attribute:: id + + An id string specified when adding the corresponding stretch to the + structure db + + .. attribute:: chain_name + + A chain name string specified when adding the corresponding stretch to the + structure db + + .. attribute:: offset + + All residues of the added stretch are stored in a linear memory layout. + The offset parameter tells us where it exactly starts in the global data + structure. (:class:`int`) + + .. attribute:: size + + The number of residues in that stretch (:class:`int`) + + .. attribute:: start_resnum + + Residue number of first residue in the added stretch. The residue number + is relative to the SEQRES provided in the input profile when adding the + stuff to the structure db. (:class:`int`) + + .. attribute:: shift + + Translation from original coordinates that has been applied before storing + structural information in db. (:class:`ost.geom.Vec3`) + + +.. class:: FragmentInfo(chain_index, offset, length) + + The FragmentInfo defines any fragment in the :class:`StructureDB`. If you + implement your own accessor object, thats the information you want to store. + + :param chain_index: Fills :attr:`chain_index` + + :param offset: Fills :attr:`offset` + + :param length: Fills :attr:`length` + + .. attribute:: chain_index + + The index of the chain (defined by :class:`CoordInfo`) in the + :class:`StructureDB` this particle belongs to. (:class:`int`) + + .. attribute:: offset + + Index of residue in **chain** the fragment starts. (0-based, :class:`int`) + + .. attribute:: length + + Length of the fragment (:class:`int`) + + + +The Structure Database +-------------------------------------------------------------------------------- + +The following code example demonstrates how to create a structural database +and fill it with content. + +.. literalinclude:: ../../../tests/doc/scripts/loop_structure_db.py + +Calculating the structural profiles is expensive and heavily depends on +the size of the database used as source. If you want to do this for a larger +database, you might want to consider two things: + +1. Use a database of limited size to generate the actual profiles (something + in between 5000 and 10000 nonredundant chains is enough) +2. Use the :class:`ost.seq.ProfileDB` to gather profiles produced from jobs + running in parallel + + +.. class:: StructureDBDataType + + The StructureDBDataType enum has to be passed at initialization of a + StructureDB in order to define what data you want to store additionally + to backbone coordinates and sequence. + For the bare minimum (only backbone coordinates and sequence), use Minimal. + If you want to store all data possible, use All. If you only want a subset, + you can combine some of the datatypes with a bitwise or operation + (see example script for :class:`StructureDB`). One important note: + If you enable AAFrequenciesStruct, the actual information is not automatically + assigned. Only the according memory is allocated and set to zero, the actual + information must be assigned manually (see example script again...). + + Minimal, All, Dihedrals, SolventAccessibilities, ResidueDepths, DSSP, + AAFrequencies, AAFrequenciesStruct + + +.. class:: StructureDB(data_to_store) + + Generates an empty :class:`StructureDB` that can be filled with content + through :func:`AddCoordinates`. The information extracted there is defined by + *data_to_store*. Have a look at the :class:`StructureDBDataType` + documentation and at the example script... + + :param data_to_store: Specifies what data to store in the database, several + flags can be combined with a bitwise or operator. + :type data_to_store: :class:`StructureDBDataType` + + + + .. staticmethod:: Load(filename) + LoadPortable(filename) + + Loads raw binary file generated with :meth:`Save` (optimized for fast + reading) / portable file generated with :meth:`SavePortable` (slower but + less machine-dependent). + + :param filename: Path to the file from which to load the database. + :type filename: :class:`str` + + :returns: The loaded data base + :rtype: :class:`StructureDB` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if + file cannot be parsed (see :ref:`here <portableIO>` for details). + + + .. method:: Save(filename) + SavePortable(filename) + + Saves a raw / portable binary representation. Use portable files for + distribution and convert locally to raw files. See :ref:`here <portableIO>` + for details. + + :param filename: Path to the file where the database will be saved + :type filename: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened + + + .. method:: HasData(data_type) + + Checks, whether requested data type is available in the current database. + + :param data_type: Data type to check + :type data_type: :class:`StructureDBDataType` + + :returns: Whether the requested datatype is available + :rtype: :class:`bool` + + + .. method:: AddCoordinates(id, chain_name, ent, seqres, prof=None, \ + only_longest_stretch=True) + + This method takes an entity and adds coordinates and the sequence + of one of its chains to the structural database. Additionally, all + data as specified at the initialization of the database is extracted + fully automatically by considering the full *ent* (e.g. when + calculating solvent accessibilities etc.). + The only exception is AAFrequencies, where a valid sequence profile + is expected in *prof* that has matching sequence with *seqres* + All residues in chain with name *chain_name* must have residue numbers + that directly relate them to the *seqres* with an indexing scheme + starting from one. + If this is not the case, an error gets thrown. You might want to + consider to use :meth:`ost.seq.Renumber` for proper numbering. + Based on consecutive numbering and additionally checking for valid + peptide bonds, connected stretches are identified + and every added connected stretch gets its own entry with + :class:`CoordInfo` as a descriptor. + To avoid cluttering the database with many small fragments, the flag: + *only_longest_stretch* can be used. Set it to False if all + connected stretches of chain with name *chain_name* should be added. + There is one final catch you have to consider: Due to the internal + lossy data compression for the positions, the extent in x, y and + z - direction for every connected stretch is limited to 655A. This should + be sufficient for most structures, but stretches exceeding this maximum + are discarded. For storing the structural data given these restraints, + a translation is applied that gets stored as the *shift* attribute + in the according :class:`CoordInfo` object. + + :param id: identifier of the added structure (e.g. pdb id) + :param chain_name: Name of the chain in *ent* you want to add + :param ent: The full entity that must contain a chain named + as specified by *chain_name*. + :param seqres: The reference sequence of chain with name *chain_name* + :param prof: Profile information for the chain with name + *chain_name*. The profile sequence must match *seqres*. + :param only_longest_stretch: Flag whether you want to add only the longest + connected stretch of residues are all connected + stretches of residues + + :type id: :class:`str` + :type chain_name: :class:`str` + :type ent: :class:`ost.mol.EntityHandle` / + :class:`ost.mol.EntityView` + :type seqres: :class:`ost.seq.SequenceHandle` + :type prof: :class:`ost.seq.ProfileHandle` + :type only_longest_strech: :class:`bool` + + :returns: indices of added stretches in db + :rtype: :class:`list` of `int` + + :raises: :exc:`~exceptions.RuntimeError` if the residues in chain with + name *chain_name* do not match *seqres* given the + residue numbers, when AAFrequencies have to to be extracted and + the sequence in *prof* does not match the *seqres* or *prof* is + invalid. + + + .. method:: RemoveCoordinates(coord_idx) + + Removes coordinates at specified location and all its associated data. This + has an impact on the offset values of all :class:`CoordInfo` objects + that are internally stored afterwards and on the actual coord indices + (all shifted by one). So make sure that you adapt your data access + accordingly! + + :param coord_idx: Specifies coordinates to be removed + :type coord_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *coord_idx* is invalid + + .. method:: GetCoordIdx(id, chain_name) + + :returns: The :class:`StructureDB` indices (in [0, :meth:`GetNumCoords`-1]) + of all coords (connected stretches) with matching + *id* / *chain_name*. + :rtype: :class:`list` of :class:`int` + + :param id: Identifier given when calling :meth:`AddCoordinates` + :param chain_name: Name of chain given when calling :meth:`AddCoordinates` + + :type pdb_id: :class:`str` + :type chain_name: :class:`str` + + + .. method:: GetCoordInfo(idx) + + :returns: Object describing the stretch of connected residues with + index *idx*. + :rtype: :class:`CoordInfo` + + :param idx: The :class:`StructureDB` index (in [0, :meth:`GetNumCoords`-1]) + :type idx: :class:`int` + + + .. method:: GetNumCoords() + + :returns: Number of connected stretches of residues that have been added to + the database. + :rtype: :class:`int` + + + .. method:: PrintStatistics() + + Prints out some information about the db. + + + .. method:: GetBackboneList(fragment, sequence) + GetBackboneList(n_stem, c_stem, fragment, sequence="") + GetBackboneList(coord_idx, sequence="") + GetBackboneList(n_stem, c_stem, coord_idx, sequence="") + + + :returns: Backbone list with positions extracted from *fragment* or + full entry at *coord_idx* + :rtype: :class:`BackboneList` + + :param fragment: Fragment definition from which to extract positions. + :type fragment: :class:`FragmentInfo` + :param coord_idx: Idx of entry from which to extract positions. + :type coord_idx: :class:`int` + :param sequence: Sequence of the returned backbone list. If not + set, the original sequence at specified location in the + database is used. + :type sequence: :class:`str` + :param n_stem: Positions on which the backbone list's N-terminus should be + superposed onto. + :type n_stem: :class:`ost.mol.ResidueHandle` + :param c_stem: Positions on which the backbone list's C-terminus should be + superposed onto. + :type c_stem: :class:`ost.mol.ResidueHandle` + + :raises: :exc:`~exceptions.RuntimeError` if the length of *sequence* does + not match with the desired backbone list, if *sequence* contains + a character which does not belong to the 20 proteinogenic amino + acids or if *fragment* or *coord_idx* is invalid. Fragment can + be invalid when it does not fully fit into one of the connected + stretches of residues in the database. + + .. method:: GetSequence(fragment) + GetSequence(coord_idx) + + :returns: The sequence of *fragment* or full entry at *coord_idx* + :rtype: :class:`str` + + :param fragment: Fragment definition from which to extract the sequence. + :type fragment: :class:`FragmentInfo` + + :param coord_idx: Idx of entry from which to extract the sequence + :type coord_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if fragment or coord_idx is + invalid. Fragment can be invalid when it does not fully fit into + one of the connected stretches of residues in the database. + + + .. method:: GetDSSPStates(fragment) + GetDSSPStates(coord_idx) + + :returns: The dssp states of *fragment* or full entry at *coord_idx* + :rtype: :class:`str` + + :param fragment: Fragment definition from which to extract the states. + :type fragment: :class:`FragmentInfo` + + :param coord_idx: Idx of entry from which to extract the dssp states + :type coord_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if database does not contain dssp + data or if fragment/ coord_idx is invalid. Fragment can be invalid + when it does not fully fit into one of the connected stretches of + residues in the database. + + + .. method:: GetDihedralAngles(fragment) + GetDihedralAngles(coord_idx) + + :returns: The phi and psi dihedral angles of every residue of *fragment* + or full entry at *coord_idx* + :rtype: :class:`list` of pairs (:class:`tuple`) + + :param fragment: Fragment definition from which to extract the dihedrals. + :type fragment: :class:`FragmentInfo` + + :param coord_idx: Idx of entry from which to extract the dihedral angles + :type coord_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if database does not contain + dihedral angle data or if fragment/ coord_idx is invalid. + Fragment can be invalid when it does not fully fit into one of the + connected stretches of residues in the database. + + + .. method:: GetResidueDepths(fragment) + GetResidueDepths(coord_idx) + + :returns: Residue depth for each residue of *fragment* or full entry + at *coord_idx* + :rtype: :class:`list` of :class:`float` + + :param fragment: Fragment definition from which to extract the residue + depths + :type fragment: :class:`FragmentInfo` + + :param coord_idx: Idx of entry from which to extract the residue depths + :type coord_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if database does not contain + residue depth data or if fragment/ coord_idx is invalid. + Fragment can be invalid when it does not fully fit into one of the + connected stretches of residues in the database. + + + .. method:: GetSolventAccessibilitites(fragment) + GetSolventAccessibilitites(coord_idx) + + :returns: Solvent accessibility for each residue of *fragment* or full entry + at *coord_idx* in square A as calculated by + :meth:`~ost.mol.alg.Accessibility` when adding the structure to + the database. + :rtype: :class:`list` of :class:`float` + + :param fragment: Fragment definition from which to extract the solvent + accessibilities + :type fragment: :class:`FragmentInfo` + + :param coord_idx: Idx of entry from which to extract the solvent + accessibilities + :type coord_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if database does not contain + solvent accessibility data or if fragment/ coord_idx is invalid. + Fragment can be invalid when it does not fully fit into one of the + connected stretches of residues in the database. + + + .. method:: GetSequenceProfile(fragment) + GetSequenceProfile(coord_idx) + + :returns: The sequence profile for the residues defined by *fragment* or + full entry at *coord_idx* with the BLOSUM62 probabilities as NULL + model. + :rtype: :class:`ost.seq.ProfileHandle` + + :param fragment: Fragment definition from which to extract the sequence + profile + + :type fragment: :class:`FragmentInfo` + + :param coord_idx: Idx of entry from which to extract the sequence profile + :type coord_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if database does not contain + sequence profile data or if fragment/ coord_idx is invalid. + Fragment can be invalid when it does not fully fit into one of the + connected stretches of residues in the database. + + + .. method:: GetStructureProfile(fragment) + GetStructureProfile(coord_idx) + + :returns: The structure profile for the residues defined by *fragment* or + full entry at *coord_idx* with the BLOSUM62 probabilities as NULL + model. + :rtype: :class:`ost.seq.ProfileHandle` + + :param fragment: Fragment definition from which to extract the structure + profile + + :type fragment: :class:`FragmentInfo` + + :param coord_idx: Idx of entry from which to extract the structure profile + :type coord_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if database does not contain + structure profile data or if fragment/ coord_idx is invalid. + Fragment can be invalid when it does not fully fit into one of the + connected stretches of residues in the database. + + + .. method:: GenerateStructureProfile(bb_list, residue_depths) + + Calculates a structure profile for *bb_list* with given *residue_depths* + using the full internal data of this StructureDB. + + :param bb_list: Positions for which to calculate the structural profile + :type bb_list: :class:`BackboneList` + :param residue_depths: The residue depth for each residue in *bb_list* + as you would extract it from any StructureDB + containing that data. + :type residue_depths: :class:`list` of :class:`float` + + :returns: The structure profile for the input with the BLOSUM62 + probabilities as NULL model. + :rtype: :class:`ost.seq.ProfileHandle` + + :raises: :exc:`~exceptions.RuntimeError` if *bb_list* and + *residue_depths* differ in size, when their size is 0 + or when database does not contain residue depth data. + + + .. method:: SetStructureProfile(coord_idx, prof) + + Takes the *prof* and sets the corresponding StructureProfile + frequencies in entry with *coord_idx* + + :param prof: Source of profile frequencies + :param coord_idx: StructureDB index of entry for which to set frequencies + (in [0, :meth:`GetNumCoords`-1]) + + :type prof: :class:`ost.seq.ProfileHandle` + :type coord_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *coord_idx* does not match + any entry in the db, when the size of the *prof* does not + exactly match the size of entry at *coord_idx* or when database + does not contain aa frequency struct data. + + + .. method:: GetSubDB(indices) + + :return: A new database containing only the structural infos specified by + your input. This might be useful if you're testing stuff and want + to make sure that you have no close homologue in the database. + :rtype: :class:`StructureDB` + + :param indices: Indices of chains to be added to the sub database (in [0, + :meth:`GetNumCoords`-1]) + :type indices: :class:`list` + + :raises: :exc:`~exceptions.RuntimeError` if you provide an invalid index + + + +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 (incl. stems) 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. + +This example illustrates how to create a custom FragDB based on a StructureDB: + +.. literalinclude:: ../../../tests/doc/scripts/loop_frag_db.py + +.. class:: FragDB(dist_bin_size, angle_bin_size) + + :param dist_bin_size: Size of the distance parameter binning in A + :param angle_bin_size: Size of the angle parameter binning in degree + :type dist_bin_size: :class:`float` + :type angle_bin_size: :class:`int` + + .. staticmethod:: Load(filename) + LoadPortable(filename) + + Loads raw binary file generated with :meth:`Save` (optimized for fast + reading) / portable file generated with :meth:`SavePortable` (slower but + less machine-dependent). + + :param filename: Path to the file from which to load the database. + :type filename: :class:`str` + + :returns: The loaded database + :rtype: :class:`FragDB` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if + file cannot be parsed (see :ref:`here <portableIO>` for details). + + .. method:: Save(filename) + SavePortable(filename) + + Saves a raw / portable binary representation. Use portable files for + distribution and convert locally to raw files. See :ref:`here <portableIO>` + for details. + + :param filename: path to the file where the database will be saved + :type filename: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. + + .. 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 + **structure_db** and adds them to the fragment database. + Fragments will be skipped if there is already a fragment in the database + that has an RMSD smaller than **rmsd_cutoff**, where RMSD is calculated + upon superposing the stem residues. + 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 database, 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 database + 3. The minimal and maximal number of fragments found in a stem group. + + + .. method:: GetNumStemPairs() + 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 the whole db + or 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() + GetNumFragments(loop_length) + + Returns the number of fragments in the database in total or for fragments of + a given length. + + :param loop_length: The length of the fragments + :type loop_length: :class:`int` + + :returns: Number of fragments + :rtype: :class:`int` + + .. method:: HasFragLength(loop_length) + + :param loop_length: The length of the fragments + :type loop_length: :class:`int` + + :returns: True if fragments of given length exist. + :rtype: :class:`bool` + + .. method:: MaxFragLength() + + :returns: Maximal fragment length contained in db. + :rtype: :class:`int` + + .. method:: SearchDB(n_stem, c_stem, frag_size, extra_bins=0) + + Search the database for fragments matching the geometry of the **n_stem** + and **c_stem** and of the same length as the **frag_size**. + + :param n_stem: The N-stem + :type n_stem: :class:`ost.mol.ResidueHandle` + :param c_stem: The C-stem + :type c_stem: :class:`ost.mol.ResidueHandle` + :param frag_size: Number of residues of the fragment + :type frag_size: :class:`int` + :param extra_bins: Whether to extend the search to include fragments from + *extra_bins* additional bins surrounding the bin given by + the *n_stem* and *c_stem* geometry. If odd, we extend to + the closer bin, otherwise symmetrically. + :type extra_bins: :class:`int` + + :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` 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. You can use the :class:`Fragger` +wrapped in a full fletched pipeline implemented in +:class:`~promod3.modelling.FraggerHandle` or search for fragments from scratch +using an arbitrary linear combination of scores: + +* **SeqID**: + Calculates the fraction of amino acids being identical when comparing + a potential fragment from the :class:`StructureDB` and the target sequence + +* **SeqSim**: + Calculates the avg. substitution matrix based sequence similarity of amino acids + when comparing a potential fragment from the :class:`StructureDB` and the target + sequence + +* **SSAgree**: + Calculates the avg. agreement of the predicted secondary structure by PSIPRED [Jones1999]_ + and the dssp [kabsch1983]_ assignment stored in the :class:`StructureDB`. + The Agreement term is based on a probabilistic approach also used in HHSearch [soding2005]_. + +* **TorsionProbability**: + Calculates the avg. probability of observing the phi/psi dihedral angles of a potential + fragment from the :class:`StructureDB` given the target sequence. The probabilities are + extracted from the :class:`TorsionSampler` class. + +* **SequenceProfile**: + Calculates the avg. profile score between the amino acid frequencies of a potential + fragment from the :class:`StructureDB` and a target profile assuming a gapfree alignment + in between them. The scores are calculated as L1 distances between the profile columns. + +* **StructureProfile**: + Calculates the avg. profile score between the amino acid frequencies of a potential + fragment from the :class:`StructureDB` and a target profile assuming a gapfree alignment + in between them. The scores are calculated as L1 distances between the profile columns. + In this case, the amino acid frequencies extracted from structural alignments are used. + +.. literalinclude:: ../../../tests/doc/scripts/loop_fragger.py + +.. class:: Fragger(seq) + + A Fragger object to search a :class:`StructureDB` for fragments with **seq** + as target sequence. You need to add some score components before you can + finally call the Fill function. + + :param seq: Sequence of fragments to be searched + :type seq: :class:`str` + + .. method:: Fill(db, rmsd_thresh, num_fragments) + + Searches **db** for **num_fragments** fragments with maximal + score based on the defined score components. + There will be no pair of fragments with RMSD below **rmsd_thresh**. + + :param db: Source of structural data + :param rmsd_thresh: To guarantee structural diversity + :param num_fragments: Number of fragments to be extracted + + :type db: :class:`StructureDB` + :type rmsd_thresh: :class:`float` + :type num_fragments: :class:`int` + + .. method:: AddSeqIDParameters(w) + + Add SeqID score component with linear weight **w** + + :param w: linear weight + + :type w: :class:`float` + + .. method:: AddSeqSimParameters(w, subst) + + Add SeqSim score component with linear weight **w** + + :param w: linear weight + :param subst: Substitution matrix to calculate sequence similarity + + :type w: :class:`float` + :type subst: :class:`ost.seq.SubstWeightMatrix` + + .. method:: AddSSAgreeParameters(w, psipred_prediction) + + Add SSAgree score component with linear weight **w** + + :param w: linear weight + :param psipred_prediction: Psipred prediction for fraggers target_sequence + + :type w: :class:`str` + :type psipred_prediction: :class:`PsipredPrediction` + + + .. method:: AddTorsionProbabilityParameters(w, torsion_sampler, \ + aa_before, aa_after) + AddTorsionProbabilityParameters(w, torsion_sampler_list, \ + aa_before, aa_after) + + Add TorsionProbability component of linear weight **w** + + :param w: linear weight + :type w: :class:`float` + :param torsion_sampler: Torsion sampler to be used for all residues. + :type torsion_sampler: :class:`TorsionSampler` + :param torsion_sampler_list: One torsion sampler for each residue. + :type torsion_sampler_list: :class:`list` of :class:`TorsionSampler` + :param aa_before: Name (3 letter code) of the residue before the sequence + linked to this object. + :type aa_before: :class:`str` + :param aa_after: Name (3 letter code) of the residue after the sequence + linked to this object. + :type aa_after: :class:`str` + + .. method:: AddSequenceProfileParameters(w, prof) + + Add SequenceProfile component of linear weight **w** + + :param w: linear weight + :param prof: Profile for the fraggers target_sequence + + :type w: :class:`float` + :type prof: :class:`ost.seq.ProfileHandle` + + .. method:: AddStructureProfileParameters(w, prof) + + Add StructureProfile component of linear weight **w** + + :param w: linear weight + :param prof: Profile for the fraggers target_sequence + + :type w: :class:`float` + :type prof: :class:`ost.seq.ProfileHandle` + + .. method:: __len__() + + :returns: Number of fragments stored in fragger. + + .. method:: __getitem__(index) + + :param index: Item to extract + + :returns: Fragment at given position + :rtype: :class:`BackboneList` + + .. method:: GetFragmentInfo(index) + + :param index: Index of fragment + + :type index: :class:`int` + + :returns: :class:`FragmentInfo` of fragment at position **index** + + .. method:: GetScore(index) + + Returns the final score of fragment defined by **index** + + :param index: Index of fragment + + :type index: :class:`int` + + :returns: Score of fragment at position **index** + + .. method:: GetScore(parameter_index, index) + + Returns the single feature score defined by **parameter_index** of + fragment defined by **index** with parameter indexing based on the order + you added them to the :class:`Fragger` + + :param parameter_index: Index of score (0-indexed in order of score + components that were added) + :param index: Index of fragment + + :type parameter_index: :class:`int` + :type index: :class:`int` + +.. class:: FraggerMap + + A simple storable map of Fragger objects. The idea is that one can use the map + to cache fragger lists that have already been generated. + + You can use :meth:`Contains` to check if an item with a given key + (:class:`int`) already exists and access items with the [] operator (see + :meth:`__getitem__` and :meth:`__setitem__`). + + Serialization is meant to be temporary and is not guaranteed to be portable. + + .. method:: Load(filename, db) + + Loads raw binary file generated with :meth:`Save`. + + :param filename: Path to the file. + :type filename: :class:`str` + :param db: Source of structural data used when filling the fragments. + :type db: :class:`StructureDB` + + :returns: The loaded map. + :rtype: :class:`FraggerMap` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. + + .. method:: Save(filename) + + Saves raw binary representation of this map. Only fragment infos and scores + are stored and not the parameters for scoring. The coordinates are to be + reread from a structure db. + + :param filename: Path to the file. + :type filename: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. + + .. method:: LoadBB(filename) + + Loads raw binary file generated with :meth:`SaveBB`. + + :param filename: Path to the file. + :type filename: :class:`str` + + :returns: The loaded map. + :rtype: :class:`FraggerMap` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. + + .. method:: SaveBB(filename) + + Saves raw binary representation of this map. Only fragments and scores + are stored and not the parameters for scoring. Here, we also store the + coordinates. This file will hence be much larger than the one saved with + :meth:`Save`. + + :param filename: Path to the file. + :type filename: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. + + .. method:: Contains(id) + + :return: True, iff a fragger object for this id is already in the map. + :rtype: :class:`bool` + + .. method:: __getitem__(id) + __setitem__(id) + + Allow read/write access (with [*id*]) to fragger object with given ID. + + +The PsipredPrediction class +-------------------------------------------------------------------------------- + +.. class:: PsipredPrediction + + A container for the secondary structure prediction by PSIPRED [Jones1999]_. + + .. method:: PsipredPrediction() + + Constructs empty container + + .. method:: PsipredPrediction(prediction, confidence) + + Constructs container with given content + + :param prediction: Secondary structure prediction as element in ['H','E','C'] + :param confidence: Confidence of prediction as element in [0,9] + + :type prediction: :class:`list` + :type confidence: :class:`list` + + :raises: :exc:`~exceptions.RuntimeError` if size of **prediction** and + **confidence** are inconsistent or if they contain an invalid + element + + .. method:: FromHHM(filename) + + Static function to Load a :class:`PsipredPrediction` object from hhm file, + as they are provided by the hhsearch suite + + :param filename: Name of file + :type filename: :class:`str` + + .. method:: FromHoriz(filename) + + Static function to Load a :class:`PsipredPrediction` object from horiz file, + as they are produced by the psipred executable + + :param filename: Name of file + :type filename: :class:`str` + + .. method:: Add(prediction, confidence) + + Adds and appends a single residue psipred prediction at the end + + :param prediction: Prediction, must be one in ['H','E','C'] + :param confidence: Confidence of prediction, must be in [0,9] + + :type prediction: :class:`str` + :type confidence: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if input contains invalid elements + + .. method:: Extract(from, to) + + Extracts content and returns a sub-:class:`PsipredPrediction` with range **from** + to **to**, not including **to** itself + + :param from: Idx to start + :param to: Idx to end + + :type from: :class:`int` + :type to: :class:`int` + + :returns: :class:`PsipredPrediction` with the specified range + + :raises: :exc:`~exceptions.RuntimeError` if **from** or **to** are invalid + + .. method:: GetPrediction(idx) + + :param idx: Index to get prediction from + :type idx: :class:`int` + :returns: Psipred prediction at pos **idx** + :raises: :exc:`~exceptions.RuntimeError` if **idx** is invalid + + .. method:: GetConfidence(idx) + + :param idx: Index to get confidence from + :type idx: :class:`int` + :returns: Psipred confidence at pos **idx** + :raises: :exc:`~exceptions.RuntimeError` if **idx** is invalid + + .. method:: GetPredictions() + + Get all the predictions in the container + + :returns: :class:`list` containing all the predictions in the container + + .. method:: GetConfidences() + + Get all the confidences in the container + + :returns: :class:`list` containing all the confidences in the container + + .. method:: __len__() + + :returns: Number of elements in container diff --git a/doc/html/_sources/loop/torsion_sampler.rst.txt b/doc/html/_sources/loop/torsion_sampler.txt similarity index 97% rename from doc/html/_sources/loop/torsion_sampler.rst.txt rename to doc/html/_sources/loop/torsion_sampler.txt index 3ae7510c0adc80c968d2ef6fd5a52dbf5c71fa76..00c0c710824e504de57cb84b033fa2a6cd40d216 100644 --- a/doc/html/_sources/loop/torsion_sampler.rst.txt +++ b/doc/html/_sources/loop/torsion_sampler.txt @@ -1,333 +1,333 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Sampling Dihedral Angles -================================================================================ - -.. 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 internally 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. - -As a showcase example, we randomly sample from a given torsion sample and -store the resulting samples as a scatter plot: - -.. literalinclude:: ../../../tests/doc/scripts/loop_torsion_sampler.py - - -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 consecutive -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 list of group definitions is iterated for every -combination of three consecutive amino acids and the first hit is -decisive. - - - -The Torsion Sampler Class --------------------------------------------------------------------------------- - -.. class:: TorsionSampler(group_definitions, bins_per_dimension, seed) - - Basic object used to sample the backbone torsion angles phi and psi. - - :param group_definitions: List of group definitions defining amino acid triplets - :param bins_per_dimension: Number of bins to represent the 360 degrees of each - torsion angle - :param seed: Seed for random number generator - - :type group_definitions: :class:`list` of :class:`str` - :type binsa_per_dimension: :class:`int` - :type seed: :class:`int` - - :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. - - .. staticmethod:: Load(filename, seed) - LoadPortable(filename, seed) - - Loads raw binary file generated with :meth:`Save` (optimized for fast - reading) / portable file generated with :meth:`SavePortable` (slower but - less machine-dependent). - - :param filename: Path to the file from which to load the sampler. - :type filename: :class:`str` - :param seed: Seed for random number generator (not saved in file). - :type seed: :class:`int` - - :returns: A torsion sampler - :rtype: :class:`TorsionSampler` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if - file cannot be parsed (see :ref:`here <portableIO>` for details). - - .. method:: Save(filename) - SavePortable(filename) - - Saves a raw / portable binary representation. Use portable files for - distribution and convert locally to raw files. See :ref:`here <portableIO>` - for details. - - :param filename: Path to the file where the sampler will be saved - :type filename: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. - - .. method:: GetHistogramIndex(before,central,after) - - :param before: id of the residue before *central* - :param central: id of the residue for the central residue - :param after: id of the residue after *central* - - :type before: :class:`ost.conop.AminoAcid` - :type central: :class:`ost.conop.AminoAcid` - :type after: :class:`ost.conop.AminoAcid` - - :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: :exc:`~exceptions.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: id of the residue before *central* - :param central: id of the residue for which torsion angles will be drawn - :param after: id of the residue after *central* - :type before: :class:`ost.conop.AminoAcid` - :type central: :class:`ost.conop.AminoAcid` - :type after: :class:`ost.conop.AminoAcid` - - :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: id of the residue before *central* - :param central: id of the residue for which the *phi* will be drawn - :param after: id of the residue after *central* - :param psi: *psi* angle - - :type before: :class:`ost.conop.AminoAcid` - :type central: :class:`ost.conop.AminoAcid` - :type after: :class:`ost.conop.AminoAcid` - :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: id of the residue before *central* - :param central: id of the residue for which the *psi* angle will be drawn - :param after: id of the residue after *central* - :param phi: *phi* angle - - :type before: :class:`ost.conop.AminoAcid` - :type central: :class:`ost.conop.AminoAcid` - :type after: :class:`ost.conop.AminoAcid` - :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,phi,psi) - - Returns the probability of a specific pair of phi/psi angles for the central residue from the corresponding distribution. - - :param before: id of the residue before *central* - :param central: id of the residue for which the probability is calculated. - :param after: id of the residue after *central* - :param phi: phi angle - :param psi: psi angle - - :type before: :class:`ost.conop.AminoAcid` - :type central: :class:`ost.conop.AminoAcid` - :type after: :class:`ost.conop.AminoAcid` - :type phi: :class:`float` - :type psi: :class:`float` - - :returns: A probability - - .. method:: GetProbability(index,phi,psi) - - Returns the probability of a specific pair of phi/psi angles calulated from the distribution specified by *index*. - - :param index: The index of the distribution. - :param phi: phi angle - :param psi: psi angle - - :type index: :class:`int` - :type phi: :class:`float` - :type psi: :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: id of the residue before *central* - :param central: id of the residue for which the probability is calculated. - :param after: id of the residue after *central* - :param phi: phi angle - :param psi: psi angle - - :type before: :class:`ost.conop.AminoAcid` - :type central: :class:`ost.conop.AminoAcid` - :type after: :class:`ost.conop.AminoAcid` - :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: id of the residue before *central* - :param central: id of the residue for which the probability is calculated. - :param after: id of the residue after *central* - :param psi: phi angle - :param phi: psi angle - - :type before: :class:`ost.conop.AminoAcid` - :type central: :class:`ost.conop.AminoAcid` - :type after: :class:`ost.conop.AminoAcid` - :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 per dimension of the distributions. - - :rtype: :class:`int` - - .. method:: GetBinSize() - - Returns the size of the bins (in radians) of the distributions. - - :rtype: :class:`float` +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Sampling Dihedral Angles +================================================================================ + +.. 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 internally 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. + +As a showcase example, we randomly sample from a given torsion sample and +store the resulting samples as a scatter plot: + +.. literalinclude:: ../../../tests/doc/scripts/loop_torsion_sampler.py + + +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 consecutive +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 list of group definitions is iterated for every +combination of three consecutive amino acids and the first hit is +decisive. + + + +The Torsion Sampler Class +-------------------------------------------------------------------------------- + +.. class:: TorsionSampler(group_definitions, bins_per_dimension, seed) + + Basic object used to sample the backbone torsion angles phi and psi. + + :param group_definitions: List of group definitions defining amino acid triplets + :param bins_per_dimension: Number of bins to represent the 360 degrees of each + torsion angle + :param seed: Seed for random number generator + + :type group_definitions: :class:`list` of :class:`str` + :type binsa_per_dimension: :class:`int` + :type seed: :class:`int` + + :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. + + .. staticmethod:: Load(filename, seed) + LoadPortable(filename, seed) + + Loads raw binary file generated with :meth:`Save` (optimized for fast + reading) / portable file generated with :meth:`SavePortable` (slower but + less machine-dependent). + + :param filename: Path to the file from which to load the sampler. + :type filename: :class:`str` + :param seed: Seed for random number generator (not saved in file). + :type seed: :class:`int` + + :returns: A torsion sampler + :rtype: :class:`TorsionSampler` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if + file cannot be parsed (see :ref:`here <portableIO>` for details). + + .. method:: Save(filename) + SavePortable(filename) + + Saves a raw / portable binary representation. Use portable files for + distribution and convert locally to raw files. See :ref:`here <portableIO>` + for details. + + :param filename: Path to the file where the sampler will be saved + :type filename: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. + + .. method:: GetHistogramIndex(before,central,after) + + :param before: id of the residue before *central* + :param central: id of the residue for the central residue + :param after: id of the residue after *central* + + :type before: :class:`ost.conop.AminoAcid` + :type central: :class:`ost.conop.AminoAcid` + :type after: :class:`ost.conop.AminoAcid` + + :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: :exc:`~exceptions.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: id of the residue before *central* + :param central: id of the residue for which torsion angles will be drawn + :param after: id of the residue after *central* + :type before: :class:`ost.conop.AminoAcid` + :type central: :class:`ost.conop.AminoAcid` + :type after: :class:`ost.conop.AminoAcid` + + :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: id of the residue before *central* + :param central: id of the residue for which the *phi* will be drawn + :param after: id of the residue after *central* + :param psi: *psi* angle + + :type before: :class:`ost.conop.AminoAcid` + :type central: :class:`ost.conop.AminoAcid` + :type after: :class:`ost.conop.AminoAcid` + :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: id of the residue before *central* + :param central: id of the residue for which the *psi* angle will be drawn + :param after: id of the residue after *central* + :param phi: *phi* angle + + :type before: :class:`ost.conop.AminoAcid` + :type central: :class:`ost.conop.AminoAcid` + :type after: :class:`ost.conop.AminoAcid` + :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,phi,psi) + + Returns the probability of a specific pair of phi/psi angles for the central residue from the corresponding distribution. + + :param before: id of the residue before *central* + :param central: id of the residue for which the probability is calculated. + :param after: id of the residue after *central* + :param phi: phi angle + :param psi: psi angle + + :type before: :class:`ost.conop.AminoAcid` + :type central: :class:`ost.conop.AminoAcid` + :type after: :class:`ost.conop.AminoAcid` + :type phi: :class:`float` + :type psi: :class:`float` + + :returns: A probability + + .. method:: GetProbability(index,phi,psi) + + Returns the probability of a specific pair of phi/psi angles calulated from the distribution specified by *index*. + + :param index: The index of the distribution. + :param phi: phi angle + :param psi: psi angle + + :type index: :class:`int` + :type phi: :class:`float` + :type psi: :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: id of the residue before *central* + :param central: id of the residue for which the probability is calculated. + :param after: id of the residue after *central* + :param phi: phi angle + :param psi: psi angle + + :type before: :class:`ost.conop.AminoAcid` + :type central: :class:`ost.conop.AminoAcid` + :type after: :class:`ost.conop.AminoAcid` + :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: id of the residue before *central* + :param central: id of the residue for which the probability is calculated. + :param after: id of the residue after *central* + :param psi: phi angle + :param phi: psi angle + + :type before: :class:`ost.conop.AminoAcid` + :type central: :class:`ost.conop.AminoAcid` + :type after: :class:`ost.conop.AminoAcid` + :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 per dimension of the distributions. + + :rtype: :class:`int` + + .. method:: GetBinSize() + + Returns the size of the bins (in radians) of the distributions. + + :rtype: :class:`float` diff --git a/doc/html/_sources/modelling/algorithms.rst.txt b/doc/html/_sources/modelling/algorithms.txt similarity index 97% rename from doc/html/_sources/modelling/algorithms.rst.txt rename to doc/html/_sources/modelling/algorithms.txt index 541a31d48c1523d067a8c67df49ac7d701271f94..b36bf5bb77ef1ee30a716469a803e652a4420a5e 100644 --- a/doc/html/_sources/modelling/algorithms.rst.txt +++ b/doc/html/_sources/modelling/algorithms.txt @@ -1,328 +1,328 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Modelling Algorithms -================================================================================ - -.. currentmodule:: promod3.modelling - -A collection of algorithms that can be useful in modelling - - -Rigid Blocks --------------------------------------------------------------------------------- - -RMSD is a typical measure for similarity of two structures. Given an atom atom -mapping between two structures, the minimum RMSD and the according superposition -can efficiently be calculated using an approach based on singular value -decomposition. This approach is problematic if there are very dissimilar regions -or when domain movement events occur. We can therefore implement an iterative -superposition. The two structures undergo an initial superposition. For every -iteration we then select a subset of atoms that are within a certain distance -threshold that serve as input for the next superposition. This iterative -superpostion typically converges to the largest common subpart but is -non-deterministic since it depends on the initial superposition. -The RigidBlocks algorithm is based on only the CA positions and performs this -iterative superposition multiple times by using a sliding window to select the -initial subset and gathers all unique results. These results can be very -similar and only differ by single positions. The algorithm therefore reduces -the amount of solutions by merging them based on a threshold of similarity. -The similarity is defined by the fraction of positions in solution A that are -also present in solution B. As a final result, the algorithm therefore detects -common rigid subsets of positions. - -.. method:: RigidBlocks(bb_list_one, bb_list_two, [window_length = 12, max_iterations=20, distance_thresh=3.0, cluster_thresh=0.9]) - - Performs the RigidBlock algorithm on given input - - :param bb_list_one: First piece structural information from which CA - positions will be extracted - :param bb_list_two: Second piece of structural information from which CA - positions will be extracted - :param window_length: Length of sliding window to generate initial subsets - :param max_iterations: Maximal numbers of iterations for every single - iterative superposition - :param distance_thresh: Maximal distance two CA positions can have to be - considered in the same rigid block and to select - the common subset for the next iteration of the - iterative superposition - :param cluster_thresh: Threshold of similarity to perform the final merging - of the solutions - - :type bb_list_one: :class:`promod3.loop.BackboneList` - :type bb_list_two: :class:`promod3.loop.BackboneList` - :type window_length: :class:`int` - :type max_iterations: :class:`int` - :type distance_thresh: :class:`float` - :type cluster_thresh: :class:`float` - - :returns: :class:`tuple` with the first element being a - :class:`list` of :class:`list` defining the - indices of the common subsets (rigid blocks) relative - to the input :class:`promod3.loop.BackboneList` objects - and the second element being a :class:`list` of - :class:`ost.geom.Mat4` defining the transformations to - superpose the according positions in **bb_list_one** - onto **bb_list_two** - - -.. method:: RigidBlocks(aln, [seq_one_idx=0, seq_two_idx=1,window_length = 12, max_iterations=20, distance_thresh=3.0, cluster_thresh=0.9]) - - Performs the RigidBlock algorithm on given input - - :param aln: An alignment with attached :class:`ost.mol.EntityView` - objects from which the positions are extracted - :param seq_idx_one: The idx of the first sequence from which the CA - positions will be extracted - :param seq_idx_two: The idx of the second sequence from which the CA - positions will be extracted - :param window_length: Length of sliding window to generate initial subsets - :param max_iterations: Maximal numbers of iterations for every single - iterative superposition - :param distance_thresh: Maximal distance two CA positions can have to be - considered in the same rigid block and to select - the common subset for the next iteration of the - iterative superposition - :param cluster_thresh: Threshold of similarity to perform the final merging - of the solutions - - :type aln: :class:`ost.seq.AlignmentHandle` - :type seq_idx_one: :class:`int` - :type seq_idx_two: :class:`int` - :type window_length: :class:`int` - :type max_iterations: :class:`int` - :type distance_thresh: :class:`float` - :type cluster_thresh: :class:`float` - - :returns: :class:`tuple` with the first element being a - :class:`list` of :class:`list` defining the - column indices of the common subsets (rigid blocks) - relative to the input :class:`ost.seq.AlignmentHandle` - and the second element being a :class:`list` of - :class:`ost.geom.Mat4` defining the transformations to - superpose the according positions from the first - sequence onto the second sequence. - -.. method:: RigidBlocks(pos_one, pos_two, [window_length = 12, max_iterations=20, distance_thresh=3.0, cluster_thresh=0.9]) - - Performs the RigidBlock algorithm on given input - - :param pos_one: First piece position information - :param pos_two: Second piece of position information - :param window_length: Length of sliding window to generate initial subsets - :param max_iterations: Maximal numbers of iterations for every single - iterative superposition - :param distance_thresh: Maximal distance two CA positions can have to be - considered in the same rigid block and to select - the common subset for the next iteration of the - iterative superposition - :param cluster_thresh: Threshold of similarity to perform the final merging - of the solutions - - :type pos_one: :class:`ost.geom.Vec3List` - :type pos_two: :class:`ost.geom.Vec3List` - :type window_length: :class:`int` - :type max_iterations: :class:`int` - :type distance_thresh: :class:`float` - :type cluster_thresh: :class:`float` - - :returns: :class:`tuple` with the first element being a - :class:`list` of :class:`list` defining the - indices of the common subsets (rigid blocks) relative - to the input :class:`ost.geom.Vec3List` objects - and the second element being a :class:`list` of - :class:`ost.geom.Mat4` defining the transformations to - superpose the according positions in **pos_one** - onto **pos_two** - - -De Novo Modelling --------------------------------------------------------------------------------- - -|project| provides algorithms for sampling and fragment detection. -Here we provide an object, that facilitates fragment detection and caching, -as well as a convenient function to combine the functionalities into an -example pipeline. - -.. autoclass:: FraggerHandle - :members: - - -.. autofunction:: GenerateDeNovoTrajectories - - -Motif Finder --------------------------------------------------------------------------------- - -Distinct spatial arrangements of atoms or functional groups are key for protein -function. For their detection, |project| implements the MotifFinder algorithm -which is based on geometric hashing as described by Nussinov and Wolfson -[nussinov1991]_. The algorithm consists of a learning stage, a detection stage -and a refinement stage. - -Learning Stage: A motif (query) is represented by a set of coordinates. Triplets -(p1, p2, p3) of coordinates are selected that define triangles. For each -triangle one can define an orthogonal vector basis -(in our case v1 = norm(p2-p1), v3 = norm(cross(v1,p3-p1), -v2 = norm(cross(v1,v3)))). For each coordinate not in [p1,p2,p3], we add the -identity of the query/triangle as value to a hash map. -The corresponding key consists of discretized values describing the edge lengths -of the triangle, as well as the coordinate transformed into the triangle -specific orthogonal vector basis. That's 6 numbers in total. - -Detection Stage: The goal is to identify one or several subsets of target -coordinates that resemble an input query. -We first setup an accumulator containing a counter for each triangle observed -in the input query. We then iterate over each possible triangle with vertices -p1, p2 and p3 in the target coordinates. At the beginning of each iteration, -all counters in the accumulator are set to zero. Again, we build a vector basis -given that triangle and transform all coordinates not in [p1,p2,p3] into that -vector space. For each transformed coordinate we obtain a key for the query hash -map. If there is one or several values at that location in the hash map, -we increment the corresponding locations in the accumulator. -Once all coordinates are processed, we search for high counts in the -accumulator. Given *N* query coordinates, we keep a solution for further -refinement if count/(*N*-3) >= *hash_tresh*. This is repeated until all -triangles in the target are processed. One key problem with this approach is -the discretization of floating point numbers that give raise to the hash map -keys. Two extremely close values might end up in different bins just because -they are close to the bin boundaries. For each of the 6 relevant numbers -we estimate the actual bin as well as the closest neighbouring bin. Processing -all possible combinations results in 64 hash map lookups instead of only one. - -Refinement Stage: Every potential solution identified in the detection stage is -further refined based on the *distance_thresh* and *refine_thresh* parameters. -A potential solution found in the detection stage is a pair of triangles, one -in the query and one in the target, for which we find many matching coordinates -in their respective vector space. We start with a coordinate mapping based on -the triangle vertices from the query and the target (3 pairs). -This coordinate mapping is iteratively updated by estimating the minimum RMSD -superposition of the mapped query coordinates onto the target, apply that -superposition on the query, find the closest target coordinate for each -coordinate in the query and redo the mapping by including all pairs with -minimum distance < *distance_thresh*. Iteration stops if nothing changes -anymore. The solution is returned to the user if the final fraction of mapped -query coordinates is larger or equal *refine_thresh*. -The larger the mapping, the more accurate the superposition. As we start with -only the three triangle vertices, *distance_thresh* is doubled for the initial -iteration. - -.. literalinclude:: ../../../tests/doc/scripts/modelling_motif_finder.py - -.. class:: MotifQuery(positions, identifier, min_triangle_edge_length, \ - max_triangle_edge_length, bin_size) - MotifQuery(positions, identifier, min_triangle_edge_length, \ - max_triangle_edge_length, bin_size, flags) - MotifQuery(query_list) - - A single query or a container of queries. - The constructor performs the learning stage of a single query or combines - several queries, so they can be searched at once. - - :param positions: Coordinates of the query - :param identifier: Descriptor of the query - :param min_triangle_edge_length: To avoid the full O(n^3) hell, triangles - with any edge length below *min_triangle_edge_length* - are skipped - :param max_triangle_edge_length: Same as *min_triangle_edge_length* but - upper bound - :param bin_size: Bin size in A, relevant to generate hash map keys - :param flags: Flag in range [0,63] for every coordinate in *positions*. - They're also added to the hash map keys (default: 0). - This means that additionally to having a matching - relative position, the coordinates must also have a - matching flag in the detection/refinement stage. - If not provided (in the query and in the search), - only coordinates matter. - :param query_list: E pluribus unum - - :type positions: :class:`ost.geom.Vec3List` - :type identifier: :class:`str` - :type min_triangle_edge_length: :class:`float` - :type max_triangle_edge_length: :class:`float` - :type bin_size: :class:`float` - :type flags: :class:`list` of :class:`int` - :type query_list: :class:`list` of :class:`MotifQuery` - - - .. method:: Save(filename) - - Saves the query down to disk - - :param filename: filename - :type filename: :class:`str` - - .. staticmethod:: Load(filename) - - Load query from disk - - :param filename: filename - :type filename: :class:`str` - - .. method:: GetPositions(query_idx) - - Returns coordinates of specified query - - :param query_idx: Query from which you want the positions - :type query_idx: :class:`int` - - .. method:: GetIdentifiers() - - Returns a list of all query identifiers. - - .. method:: GetN() - - Returns the number of queries - - - -.. class:: MotifMatch - - Object that holds information about a match found in :meth:`FindMotifs` - - .. attribute:: query_idx - - Index of matching query - - .. attribute:: mat - - Transformation matrix to superpose matching query onto target - - .. attribute:: alignment - - List of tuples which define matching pairs of query/target coordinates - - -.. method:: FindMotifs(query, target_positions, hash_tresh=0.4, \ - distance_thresh=1.0, refine_thresh=0.7, \ - flags=list()) - - Performs the detection and refinement stages of the geometric hashing - algorithm. - - :param query: Query to be searched - :param target_positions: Coordinates of the target - :param hash_thresh: Parameter relevant for detection stage - :param distance_thresh: Parameter relevant for refinement stage - :param refine_thresh: Parameter relevant for refinement stage - :param flags: Equivalent to *flags* in :class:`MotifQuery` - constructor. If you didn't provide anything there, - this can be ignored. Only the actual coordinates - matter in this case. - - :returns: All found matches - - :rtype: :class:`list` of :class:`MotifMatch` +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Modelling Algorithms +================================================================================ + +.. currentmodule:: promod3.modelling + +A collection of algorithms that can be useful in modelling + + +Rigid Blocks +-------------------------------------------------------------------------------- + +RMSD is a typical measure for similarity of two structures. Given an atom atom +mapping between two structures, the minimum RMSD and the according superposition +can efficiently be calculated using an approach based on singular value +decomposition. This approach is problematic if there are very dissimilar regions +or when domain movement events occur. We can therefore implement an iterative +superposition. The two structures undergo an initial superposition. For every +iteration we then select a subset of atoms that are within a certain distance +threshold that serve as input for the next superposition. This iterative +superpostion typically converges to the largest common subpart but is +non-deterministic since it depends on the initial superposition. +The RigidBlocks algorithm is based on only the CA positions and performs this +iterative superposition multiple times by using a sliding window to select the +initial subset and gathers all unique results. These results can be very +similar and only differ by single positions. The algorithm therefore reduces +the amount of solutions by merging them based on a threshold of similarity. +The similarity is defined by the fraction of positions in solution A that are +also present in solution B. As a final result, the algorithm therefore detects +common rigid subsets of positions. + +.. method:: RigidBlocks(bb_list_one, bb_list_two, [window_length = 12, max_iterations=20, distance_thresh=3.0, cluster_thresh=0.9]) + + Performs the RigidBlock algorithm on given input + + :param bb_list_one: First piece structural information from which CA + positions will be extracted + :param bb_list_two: Second piece of structural information from which CA + positions will be extracted + :param window_length: Length of sliding window to generate initial subsets + :param max_iterations: Maximal numbers of iterations for every single + iterative superposition + :param distance_thresh: Maximal distance two CA positions can have to be + considered in the same rigid block and to select + the common subset for the next iteration of the + iterative superposition + :param cluster_thresh: Threshold of similarity to perform the final merging + of the solutions + + :type bb_list_one: :class:`promod3.loop.BackboneList` + :type bb_list_two: :class:`promod3.loop.BackboneList` + :type window_length: :class:`int` + :type max_iterations: :class:`int` + :type distance_thresh: :class:`float` + :type cluster_thresh: :class:`float` + + :returns: :class:`tuple` with the first element being a + :class:`list` of :class:`list` defining the + indices of the common subsets (rigid blocks) relative + to the input :class:`promod3.loop.BackboneList` objects + and the second element being a :class:`list` of + :class:`ost.geom.Mat4` defining the transformations to + superpose the according positions in **bb_list_one** + onto **bb_list_two** + + +.. method:: RigidBlocks(aln, [seq_one_idx=0, seq_two_idx=1,window_length = 12, max_iterations=20, distance_thresh=3.0, cluster_thresh=0.9]) + + Performs the RigidBlock algorithm on given input + + :param aln: An alignment with attached :class:`ost.mol.EntityView` + objects from which the positions are extracted + :param seq_idx_one: The idx of the first sequence from which the CA + positions will be extracted + :param seq_idx_two: The idx of the second sequence from which the CA + positions will be extracted + :param window_length: Length of sliding window to generate initial subsets + :param max_iterations: Maximal numbers of iterations for every single + iterative superposition + :param distance_thresh: Maximal distance two CA positions can have to be + considered in the same rigid block and to select + the common subset for the next iteration of the + iterative superposition + :param cluster_thresh: Threshold of similarity to perform the final merging + of the solutions + + :type aln: :class:`ost.seq.AlignmentHandle` + :type seq_idx_one: :class:`int` + :type seq_idx_two: :class:`int` + :type window_length: :class:`int` + :type max_iterations: :class:`int` + :type distance_thresh: :class:`float` + :type cluster_thresh: :class:`float` + + :returns: :class:`tuple` with the first element being a + :class:`list` of :class:`list` defining the + column indices of the common subsets (rigid blocks) + relative to the input :class:`ost.seq.AlignmentHandle` + and the second element being a :class:`list` of + :class:`ost.geom.Mat4` defining the transformations to + superpose the according positions from the first + sequence onto the second sequence. + +.. method:: RigidBlocks(pos_one, pos_two, [window_length = 12, max_iterations=20, distance_thresh=3.0, cluster_thresh=0.9]) + + Performs the RigidBlock algorithm on given input + + :param pos_one: First piece position information + :param pos_two: Second piece of position information + :param window_length: Length of sliding window to generate initial subsets + :param max_iterations: Maximal numbers of iterations for every single + iterative superposition + :param distance_thresh: Maximal distance two CA positions can have to be + considered in the same rigid block and to select + the common subset for the next iteration of the + iterative superposition + :param cluster_thresh: Threshold of similarity to perform the final merging + of the solutions + + :type pos_one: :class:`ost.geom.Vec3List` + :type pos_two: :class:`ost.geom.Vec3List` + :type window_length: :class:`int` + :type max_iterations: :class:`int` + :type distance_thresh: :class:`float` + :type cluster_thresh: :class:`float` + + :returns: :class:`tuple` with the first element being a + :class:`list` of :class:`list` defining the + indices of the common subsets (rigid blocks) relative + to the input :class:`ost.geom.Vec3List` objects + and the second element being a :class:`list` of + :class:`ost.geom.Mat4` defining the transformations to + superpose the according positions in **pos_one** + onto **pos_two** + + +De Novo Modelling +-------------------------------------------------------------------------------- + +|project| provides algorithms for sampling and fragment detection. +Here we provide an object, that facilitates fragment detection and caching, +as well as a convenient function to combine the functionalities into an +example pipeline. + +.. autoclass:: FraggerHandle + :members: + + +.. autofunction:: GenerateDeNovoTrajectories + + +Motif Finder +-------------------------------------------------------------------------------- + +Distinct spatial arrangements of atoms or functional groups are key for protein +function. For their detection, |project| implements the MotifFinder algorithm +which is based on geometric hashing as described by Nussinov and Wolfson +[nussinov1991]_. The algorithm consists of a learning stage, a detection stage +and a refinement stage. + +Learning Stage: A motif (query) is represented by a set of coordinates. Triplets +(p1, p2, p3) of coordinates are selected that define triangles. For each +triangle one can define an orthogonal vector basis +(in our case v1 = norm(p2-p1), v3 = norm(cross(v1,p3-p1), +v2 = norm(cross(v1,v3)))). For each coordinate not in [p1,p2,p3], we add the +identity of the query/triangle as value to a hash map. +The corresponding key consists of discretized values describing the edge lengths +of the triangle, as well as the coordinate transformed into the triangle +specific orthogonal vector basis. That's 6 numbers in total. + +Detection Stage: The goal is to identify one or several subsets of target +coordinates that resemble an input query. +We first setup an accumulator containing a counter for each triangle observed +in the input query. We then iterate over each possible triangle with vertices +p1, p2 and p3 in the target coordinates. At the beginning of each iteration, +all counters in the accumulator are set to zero. Again, we build a vector basis +given that triangle and transform all coordinates not in [p1,p2,p3] into that +vector space. For each transformed coordinate we obtain a key for the query hash +map. If there is one or several values at that location in the hash map, +we increment the corresponding locations in the accumulator. +Once all coordinates are processed, we search for high counts in the +accumulator. Given *N* query coordinates, we keep a solution for further +refinement if count/(*N*-3) >= *hash_tresh*. This is repeated until all +triangles in the target are processed. One key problem with this approach is +the discretization of floating point numbers that give raise to the hash map +keys. Two extremely close values might end up in different bins just because +they are close to the bin boundaries. For each of the 6 relevant numbers +we estimate the actual bin as well as the closest neighbouring bin. Processing +all possible combinations results in 64 hash map lookups instead of only one. + +Refinement Stage: Every potential solution identified in the detection stage is +further refined based on the *distance_thresh* and *refine_thresh* parameters. +A potential solution found in the detection stage is a pair of triangles, one +in the query and one in the target, for which we find many matching coordinates +in their respective vector space. We start with a coordinate mapping based on +the triangle vertices from the query and the target (3 pairs). +This coordinate mapping is iteratively updated by estimating the minimum RMSD +superposition of the mapped query coordinates onto the target, apply that +superposition on the query, find the closest target coordinate for each +coordinate in the query and redo the mapping by including all pairs with +minimum distance < *distance_thresh*. Iteration stops if nothing changes +anymore. The solution is returned to the user if the final fraction of mapped +query coordinates is larger or equal *refine_thresh*. +The larger the mapping, the more accurate the superposition. As we start with +only the three triangle vertices, *distance_thresh* is doubled for the initial +iteration. + +.. literalinclude:: ../../../tests/doc/scripts/modelling_motif_finder.py + +.. class:: MotifQuery(positions, identifier, min_triangle_edge_length, \ + max_triangle_edge_length, bin_size) + MotifQuery(positions, identifier, min_triangle_edge_length, \ + max_triangle_edge_length, bin_size, flags) + MotifQuery(query_list) + + A single query or a container of queries. + The constructor performs the learning stage of a single query or combines + several queries, so they can be searched at once. + + :param positions: Coordinates of the query + :param identifier: Descriptor of the query + :param min_triangle_edge_length: To avoid the full O(n^3) hell, triangles + with any edge length below *min_triangle_edge_length* + are skipped + :param max_triangle_edge_length: Same as *min_triangle_edge_length* but + upper bound + :param bin_size: Bin size in A, relevant to generate hash map keys + :param flags: Flag in range [0,63] for every coordinate in *positions*. + They're also added to the hash map keys (default: 0). + This means that additionally to having a matching + relative position, the coordinates must also have a + matching flag in the detection/refinement stage. + If not provided (in the query and in the search), + only coordinates matter. + :param query_list: E pluribus unum + + :type positions: :class:`ost.geom.Vec3List` + :type identifier: :class:`str` + :type min_triangle_edge_length: :class:`float` + :type max_triangle_edge_length: :class:`float` + :type bin_size: :class:`float` + :type flags: :class:`list` of :class:`int` + :type query_list: :class:`list` of :class:`MotifQuery` + + + .. method:: Save(filename) + + Saves the query down to disk + + :param filename: filename + :type filename: :class:`str` + + .. staticmethod:: Load(filename) + + Load query from disk + + :param filename: filename + :type filename: :class:`str` + + .. method:: GetPositions(query_idx) + + Returns coordinates of specified query + + :param query_idx: Query from which you want the positions + :type query_idx: :class:`int` + + .. method:: GetIdentifiers() + + Returns a list of all query identifiers. + + .. method:: GetN() + + Returns the number of queries + + + +.. class:: MotifMatch + + Object that holds information about a match found in :meth:`FindMotifs` + + .. attribute:: query_idx + + Index of matching query + + .. attribute:: mat + + Transformation matrix to superpose matching query onto target + + .. attribute:: alignment + + List of tuples which define matching pairs of query/target coordinates + + +.. method:: FindMotifs(query, target_positions, hash_tresh=0.4, \ + distance_thresh=1.0, refine_thresh=0.7, \ + flags=list()) + + Performs the detection and refinement stages of the geometric hashing + algorithm. + + :param query: Query to be searched + :param target_positions: Coordinates of the target + :param hash_thresh: Parameter relevant for detection stage + :param distance_thresh: Parameter relevant for refinement stage + :param refine_thresh: Parameter relevant for refinement stage + :param flags: Equivalent to *flags* in :class:`MotifQuery` + constructor. If you didn't provide anything there, + this can be ignored. Only the actual coordinates + matter in this case. + + :returns: All found matches + + :rtype: :class:`list` of :class:`MotifMatch` diff --git a/doc/html/_sources/modelling/gap_handling.rst.txt b/doc/html/_sources/modelling/gap_handling.txt similarity index 97% rename from doc/html/_sources/modelling/gap_handling.rst.txt rename to doc/html/_sources/modelling/gap_handling.txt index 7d637350ef00a7e1df2d45727bbffa77c21503db..4143a9c4d9ab95b98c3368dc19711f4d2db5caa1 100644 --- a/doc/html/_sources/modelling/gap_handling.rst.txt +++ b/doc/html/_sources/modelling/gap_handling.txt @@ -1,329 +1,329 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Handling Gaps -================================================================================ - -.. currentmodule:: promod3.modelling - -This chapter describes the gap classes and functionality attached to them. These -classes / functions are used within the modelling pipeline. - -Gap classes --------------------------------------------------------------------------------- - -.. class:: StructuralGap(before, after, seq) - - Describes a structural gap, i.e. a loop to be modeled. The gap may either be - terminal or between two defined regions. The gap stores information of the - last residue before and the first residue after the gap as well as the - sequence of gap. Gaps at the N- and C-terminals can be defined by passing - invalid residue handles to `before` or `after`. - - :param before: Fills :attr:`before` - :type before: :class:`ost.mol.ResidueHandle` - :param after: Fills :attr:`after` - :type after: :class:`ost.mol.ResidueHandle` - :param seq: Fills :attr:`seq` - :type seq: :class:`str` - - :raises: A :exc:`RuntimeError` if both residues are invalid or when both - are valid and: - - - residues are from different chains (if both valid) - - `before` is located after `after` - - `seq` has a length which is inconsistent with the gap - - .. method:: GetChainIndex() - - :return: Index of chain, the gap is belonging to - :rtype: :class:`int` - - .. method:: GetChainName() - - :return: Name of chain, the gap is belonging to - :rtype: :class:`str` - - .. method:: GetChain() - - :return: Chain, the gap is belonging to - :rtype: :class:`ost.mol.ChainHandle` - - .. method:: IsNTerminal() - - :return: True, iff gap is N-terminal (i.e. :attr:`before` is invalid - and :attr:`after` is valid) - :rtype: :class:`bool` - - .. method:: IsCTerminal() - - :return: True, iff gap is C-terminal (i.e. :attr:`before` is valid - and :attr:`after` is invalid) - :rtype: :class:`bool` - - .. method:: IsTerminal() - - :return: True, iff gap is N- or C-terminal - :rtype: :class:`bool` - - .. method:: ShiftCTerminal() - - Try to shift gap by one position towards C-terminal. Only possible if new - gap is not terminal and it doesn't try to shift the gap past another gap. - - :return: True, iff shift succeeded (gap is only updated in that case) - :rtype: :class:`bool` - - .. method:: ExtendAtNTerm() - - Try to extend gap at N-terminal end of gap. - Only possible if the gap is not at N-terminal and it doesn't try to - extend the gap past another gap. - - :return: True, iff extend succeeded (gap is only updated in that case) - :rtype: :class:`bool` - - .. method:: ExtendAtCTerm() - - Try to extend gap at C-terminal end of gap. - Only possible if the gap is not at C-terminal and it doesn't try to - extend the gap past another gap. - - :return: True, iff extend succeeded (gap is only updated in that case) - :rtype: :class:`bool` - - .. method:: GetLength() - - :return: Length of the gap. - :rtype: :class:`int` - - .. method:: Copy() - - :return: Copy of the gap. - :rtype: :class:`StructuralGap` - - .. attribute:: length - - Alias for :meth:`GetLength()` (read-only, :class:`int`) - - .. attribute:: seq - - Sequence string for the gap (read-only, :class:`str`) - - .. attribute:: before - - Residue before the gap (read-only, :class:`ost.mol.ResidueHandle`) - - .. attribute:: after - - Residue after the gap (read-only, :class:`ost.mol.ResidueHandle`) - - .. attribute:: full_seq - - Full sequence, including stem residues (read-only) - -.. class:: StructuralGapList - - Represents a :class:`list` of :class:`StructuralGap`. - - -Gap Extender classes --------------------------------------------------------------------------------- - -The extender classes work on a given :class:`StructuralGap` and provide an -Extend() function to propose new gaps for loop modelling. The function returns -False if no new extension possible. - -.. class:: GapExtender(gap, seqres) - - The extender cycles through the following steps: - - .. code-block:: none - - - - -- - -- - --- - --- - --- - ---- - ---- - ---- - ---- - - :param gap: The gap which will be extended by :meth:`Extend`. - :param seqres: The full sequence of the chain, the gap is associated with. - :type gap: :class:`StructuralGap` - :type seqres: :class:`str` / :class:`ost.seq.SequenceHandle` - - :raises: An exception if a terminal gap is used to construct this. - - .. method:: Extend() - - Tries to extend *gap*. - - :return: False, if the *gap* cannot be extended any further. This happens - if it reaches a terminal or another insertion gap. - Otherwise, the *gap* passed to the constructor is changed. - The gaps are extended with ascending length and will always have - valid termini. - :rtype: :class:`bool` - -.. class:: FullGapExtender(gap, seqres, max_length=-1) - - Cycles as GapExtender, but continues even if another gap was encountered. - - :param gap: The gap which will be extended by :meth:`Extend`. - :param seqres: The full sequence of the chain, the gap is associated with. - :param max_length: - If -1, all possible non-terminal gaps are returned. - - If >= 0, this restricts the max. gap-length - (w/o termini) producable by :meth:`Extend`. - :type gap: :class:`StructuralGap` - :type seqres: :class:`str` / :class:`ost.seq.SequenceHandle` - :type max_length: :class:`int` - - :raises: An exception if a terminal gap is used to construct this. - - .. method:: Extend() - - Tries to extend *gap*. - - :return: False, if the *gap* cannot be extended without exceeding *max_length*. - Otherwise, the *gap* passed to the constructor is changed. - The gaps are extended with ascending length and will always have - valid termini. - :rtype: :class:`bool` - -.. class:: ScoringGapExtender(gap, extension_penalty, penalties, seqres,\ - max_length=-2) - - The extender scores possible gap extensions and returns them in order of - their score when :meth:`Extend` is called. - The score is penalized according to length and according to certain (well - conserved) regions in the structure as defined by *penalties*. - score = num_gap_extensions * `extension_penalty` + sum( `penalties` [i] ) - (i = resnum - 1 of residues in extension) - - :param gap: The gap which will be extended by :meth:`Extend`. - :type gap: :class:`StructuralGap` - :param extension_penalty: Penalty for length of gap. - :type extension_penalty: :class:`float` - :param penalties: Penalty for each residue added to gap. - :type penalties: :class:`list` of :class:`float` - :param seqres: The full sequence of the chain, the gap is associated with. - :type seqres: :class:`str` / :class:`ost.seq.SequenceHandle` - :param max_length: - - If -2, :class:`GapExtender` is used instead of :class:`FullGapExtender` - (i.e. it stops at gaps and termini). - - If -1, all possible non-terminal gaps are returned. - - If >= 0, this restricts the max. gap-length (w/o termini) - producable by :meth:`Extend`. - :type max_length: :class:`int` - - :raises: An exception if a terminal gap is used to construct this. - - .. method:: Extend() - - Tries to extend *gap*. - - :return: False, if the gap cannot be extended any further. - Otherwise, *gap* is changed and returned in ascending score. - The updated *gap* will always have valid termini. - :rtype: :class:`bool` - -.. class:: ShiftExtension(n_num, c_num) - - Implements the underlying extension scheme of the :class:`GapExtender`. - It is not associated to any structural data, it just spits out the - residue numbers according to the extension scheme described above. - - :param n_num: N residue number to start with - :param c_num: C residue number to start with - :type n_num: :class:`int` - :type c_num: :class:`int` - - .. method:: Extend() - - :returns: The next residue numbers for n_stem and c_stem - :rtype: :class:`tuple` - - -Gap Handling Functions --------------------------------------------------------------------------------- - -.. function:: CountEnclosedGaps(mhandle, gap) - CountEnclosedInsertions(mhandle, gap) - - Counts all gaps from `mhandle` which are fully enclosed by given `gap`. - This is either all gaps or only insertions. - - :param mhandle: Modelling handle on which to apply change. - :type mhandle: :class:`ModellingHandle` - :param gap: Gap defining range in which gaps are to be removed. - :type gap: :class:`StructuralGap` - - :return: Number of gaps. - :rtype: :class:`int` - -.. function:: ClearGaps(mhandle, gap) - - Removes all gaps from `mhandle` which are fully enclosed by given `gap`. - - :param mhandle: Modelling handle on which to apply change. - :type mhandle: :class:`ModellingHandle` - :param gap: Gap defining range in which gaps are to be removed. - :type gap: :class:`StructuralGap` - - :return: Index of next gap in mhandle.gaps after removal. - Returns -1 if last gap was removed or no gaps in *mhandle*. - :rtype: :class:`int` - - :raises: A :exc:`RuntimeError` if any gap in mhandle.gaps is only partially - enclosed by given gap. - -.. function:: InsertLoopClearGaps(mhandle, bb_list, gap) - - Insert loop into model, update scoring environments and remove all gaps from - *mhandle* which are fully enclosed by given *gap* (see :meth:`InsertLoop` and - :meth:`ClearGaps`). - - :param mhandle: Modelling handle on which to apply change. - :type mhandle: :class:`ModellingHandle` - :param bb_list: Loop to insert (backbone only). - :type bb_list: :class:`~promod3.loop.BackboneList` - :param gap: Gap defining range of loop to insert (must be consistent!). - :type gap: :class:`StructuralGap` - - :return: Index of next gap in mhandle.gaps after removal. - Returns -1 if last gap was removed or no gaps in *mhandle*. - :rtype: :class:`int` - - :raises: A :exc:`RuntimeError` if *bb_list* and *gap* are inconsistent or - if any gap in mhandle.gaps is only partially enclosed by *gap*. - -.. function:: MergeGaps(mhandle, index) - - Merges two gaps `mhandle.gaps[index]` and `mhandle.gaps[index+1]`. - The residues in between the gaps are removed from `mhandle.model` and added - to the new `mhandle.gaps[index]`. - - :param mhandle: Modelling handle on which to apply change. - :type mhandle: :class:`ModellingHandle` - :param index: Index of gap to merge with next one. - :type index: :class:`int` - - :raises: A :exc:`RuntimeError` if indices out of range or if trying to merge +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Handling Gaps +================================================================================ + +.. currentmodule:: promod3.modelling + +This chapter describes the gap classes and functionality attached to them. These +classes / functions are used within the modelling pipeline. + +Gap classes +-------------------------------------------------------------------------------- + +.. class:: StructuralGap(before, after, seq) + + Describes a structural gap, i.e. a loop to be modeled. The gap may either be + terminal or between two defined regions. The gap stores information of the + last residue before and the first residue after the gap as well as the + sequence of gap. Gaps at the N- and C-terminals can be defined by passing + invalid residue handles to `before` or `after`. + + :param before: Fills :attr:`before` + :type before: :class:`ost.mol.ResidueHandle` + :param after: Fills :attr:`after` + :type after: :class:`ost.mol.ResidueHandle` + :param seq: Fills :attr:`seq` + :type seq: :class:`str` + + :raises: A :exc:`RuntimeError` if both residues are invalid or when both + are valid and: + + - residues are from different chains (if both valid) + - `before` is located after `after` + - `seq` has a length which is inconsistent with the gap + + .. method:: GetChainIndex() + + :return: Index of chain, the gap is belonging to + :rtype: :class:`int` + + .. method:: GetChainName() + + :return: Name of chain, the gap is belonging to + :rtype: :class:`str` + + .. method:: GetChain() + + :return: Chain, the gap is belonging to + :rtype: :class:`ost.mol.ChainHandle` + + .. method:: IsNTerminal() + + :return: True, iff gap is N-terminal (i.e. :attr:`before` is invalid + and :attr:`after` is valid) + :rtype: :class:`bool` + + .. method:: IsCTerminal() + + :return: True, iff gap is C-terminal (i.e. :attr:`before` is valid + and :attr:`after` is invalid) + :rtype: :class:`bool` + + .. method:: IsTerminal() + + :return: True, iff gap is N- or C-terminal + :rtype: :class:`bool` + + .. method:: ShiftCTerminal() + + Try to shift gap by one position towards C-terminal. Only possible if new + gap is not terminal and it doesn't try to shift the gap past another gap. + + :return: True, iff shift succeeded (gap is only updated in that case) + :rtype: :class:`bool` + + .. method:: ExtendAtNTerm() + + Try to extend gap at N-terminal end of gap. + Only possible if the gap is not at N-terminal and it doesn't try to + extend the gap past another gap. + + :return: True, iff extend succeeded (gap is only updated in that case) + :rtype: :class:`bool` + + .. method:: ExtendAtCTerm() + + Try to extend gap at C-terminal end of gap. + Only possible if the gap is not at C-terminal and it doesn't try to + extend the gap past another gap. + + :return: True, iff extend succeeded (gap is only updated in that case) + :rtype: :class:`bool` + + .. method:: GetLength() + + :return: Length of the gap. + :rtype: :class:`int` + + .. method:: Copy() + + :return: Copy of the gap. + :rtype: :class:`StructuralGap` + + .. attribute:: length + + Alias for :meth:`GetLength()` (read-only, :class:`int`) + + .. attribute:: seq + + Sequence string for the gap (read-only, :class:`str`) + + .. attribute:: before + + Residue before the gap (read-only, :class:`ost.mol.ResidueHandle`) + + .. attribute:: after + + Residue after the gap (read-only, :class:`ost.mol.ResidueHandle`) + + .. attribute:: full_seq + + Full sequence, including stem residues (read-only) + +.. class:: StructuralGapList + + Represents a :class:`list` of :class:`StructuralGap`. + + +Gap Extender classes +-------------------------------------------------------------------------------- + +The extender classes work on a given :class:`StructuralGap` and provide an +Extend() function to propose new gaps for loop modelling. The function returns +False if no new extension possible. + +.. class:: GapExtender(gap, seqres) + + The extender cycles through the following steps: + + .. code-block:: none + + - + -- + -- + --- + --- + --- + ---- + ---- + ---- + ---- + + :param gap: The gap which will be extended by :meth:`Extend`. + :param seqres: The full sequence of the chain, the gap is associated with. + :type gap: :class:`StructuralGap` + :type seqres: :class:`str` / :class:`ost.seq.SequenceHandle` + + :raises: An exception if a terminal gap is used to construct this. + + .. method:: Extend() + + Tries to extend *gap*. + + :return: False, if the *gap* cannot be extended any further. This happens + if it reaches a terminal or another insertion gap. + Otherwise, the *gap* passed to the constructor is changed. + The gaps are extended with ascending length and will always have + valid termini. + :rtype: :class:`bool` + +.. class:: FullGapExtender(gap, seqres, max_length=-1) + + Cycles as GapExtender, but continues even if another gap was encountered. + + :param gap: The gap which will be extended by :meth:`Extend`. + :param seqres: The full sequence of the chain, the gap is associated with. + :param max_length: - If -1, all possible non-terminal gaps are returned. + - If >= 0, this restricts the max. gap-length + (w/o termini) producable by :meth:`Extend`. + :type gap: :class:`StructuralGap` + :type seqres: :class:`str` / :class:`ost.seq.SequenceHandle` + :type max_length: :class:`int` + + :raises: An exception if a terminal gap is used to construct this. + + .. method:: Extend() + + Tries to extend *gap*. + + :return: False, if the *gap* cannot be extended without exceeding *max_length*. + Otherwise, the *gap* passed to the constructor is changed. + The gaps are extended with ascending length and will always have + valid termini. + :rtype: :class:`bool` + +.. class:: ScoringGapExtender(gap, extension_penalty, penalties, seqres,\ + max_length=-2) + + The extender scores possible gap extensions and returns them in order of + their score when :meth:`Extend` is called. + The score is penalized according to length and according to certain (well + conserved) regions in the structure as defined by *penalties*. + score = num_gap_extensions * `extension_penalty` + sum( `penalties` [i] ) + (i = resnum - 1 of residues in extension) + + :param gap: The gap which will be extended by :meth:`Extend`. + :type gap: :class:`StructuralGap` + :param extension_penalty: Penalty for length of gap. + :type extension_penalty: :class:`float` + :param penalties: Penalty for each residue added to gap. + :type penalties: :class:`list` of :class:`float` + :param seqres: The full sequence of the chain, the gap is associated with. + :type seqres: :class:`str` / :class:`ost.seq.SequenceHandle` + :param max_length: + - If -2, :class:`GapExtender` is used instead of :class:`FullGapExtender` + (i.e. it stops at gaps and termini). + - If -1, all possible non-terminal gaps are returned. + - If >= 0, this restricts the max. gap-length (w/o termini) + producable by :meth:`Extend`. + :type max_length: :class:`int` + + :raises: An exception if a terminal gap is used to construct this. + + .. method:: Extend() + + Tries to extend *gap*. + + :return: False, if the gap cannot be extended any further. + Otherwise, *gap* is changed and returned in ascending score. + The updated *gap* will always have valid termini. + :rtype: :class:`bool` + +.. class:: ShiftExtension(n_num, c_num) + + Implements the underlying extension scheme of the :class:`GapExtender`. + It is not associated to any structural data, it just spits out the + residue numbers according to the extension scheme described above. + + :param n_num: N residue number to start with + :param c_num: C residue number to start with + :type n_num: :class:`int` + :type c_num: :class:`int` + + .. method:: Extend() + + :returns: The next residue numbers for n_stem and c_stem + :rtype: :class:`tuple` + + +Gap Handling Functions +-------------------------------------------------------------------------------- + +.. function:: CountEnclosedGaps(mhandle, gap) + CountEnclosedInsertions(mhandle, gap) + + Counts all gaps from `mhandle` which are fully enclosed by given `gap`. + This is either all gaps or only insertions. + + :param mhandle: Modelling handle on which to apply change. + :type mhandle: :class:`ModellingHandle` + :param gap: Gap defining range in which gaps are to be removed. + :type gap: :class:`StructuralGap` + + :return: Number of gaps. + :rtype: :class:`int` + +.. function:: ClearGaps(mhandle, gap) + + Removes all gaps from `mhandle` which are fully enclosed by given `gap`. + + :param mhandle: Modelling handle on which to apply change. + :type mhandle: :class:`ModellingHandle` + :param gap: Gap defining range in which gaps are to be removed. + :type gap: :class:`StructuralGap` + + :return: Index of next gap in mhandle.gaps after removal. + Returns -1 if last gap was removed or no gaps in *mhandle*. + :rtype: :class:`int` + + :raises: A :exc:`RuntimeError` if any gap in mhandle.gaps is only partially + enclosed by given gap. + +.. function:: InsertLoopClearGaps(mhandle, bb_list, gap) + + Insert loop into model, update scoring environments and remove all gaps from + *mhandle* which are fully enclosed by given *gap* (see :meth:`InsertLoop` and + :meth:`ClearGaps`). + + :param mhandle: Modelling handle on which to apply change. + :type mhandle: :class:`ModellingHandle` + :param bb_list: Loop to insert (backbone only). + :type bb_list: :class:`~promod3.loop.BackboneList` + :param gap: Gap defining range of loop to insert (must be consistent!). + :type gap: :class:`StructuralGap` + + :return: Index of next gap in mhandle.gaps after removal. + Returns -1 if last gap was removed or no gaps in *mhandle*. + :rtype: :class:`int` + + :raises: A :exc:`RuntimeError` if *bb_list* and *gap* are inconsistent or + if any gap in mhandle.gaps is only partially enclosed by *gap*. + +.. function:: MergeGaps(mhandle, index) + + Merges two gaps `mhandle.gaps[index]` and `mhandle.gaps[index+1]`. + The residues in between the gaps are removed from `mhandle.model` and added + to the new `mhandle.gaps[index]`. + + :param mhandle: Modelling handle on which to apply change. + :type mhandle: :class:`ModellingHandle` + :param index: Index of gap to merge with next one. + :type index: :class:`int` + + :raises: A :exc:`RuntimeError` if indices out of range or if trying to merge gaps of different chains or an N-terminal gap with a C-terminal gap. \ No newline at end of file diff --git a/doc/html/_sources/modelling/index.rst.txt b/doc/html/_sources/modelling/index.txt similarity index 97% rename from doc/html/_sources/modelling/index.rst.txt rename to doc/html/_sources/modelling/index.txt index 1896900433c5345ca9b30775f032f8c8022c0bca..c183c74cc0ce99f1290815ae9d8a45fe7b4d5bbf 100644 --- a/doc/html/_sources/modelling/index.rst.txt +++ b/doc/html/_sources/modelling/index.txt @@ -1,48 +1,48 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -:mod:`~promod3.modelling` - Protein Modelling -================================================================================ - -.. module:: promod3.modelling - :synopsis: Protein Modelling - -.. currentmodule:: promod3.modelling - -High-level functionality for protein modelling. The goal is to model a given -target sequence (or list of sequences for oligomers) given some template data. -Commonly, the template does not cover the full target. This module offers -capabilities to extract useful template data for the target and to fill the -remaining structural data to create a full model of the target. In its simplest -form, you can use a target-template alignment and a template structure to create -a model fully automatically as follows: - -.. literalinclude:: ../../../tests/doc/scripts/modelling_all.py - -The various steps involved in protein modelling are described here: - -.. toctree:: - :maxdepth: 2 - - pipeline - model_checking - gap_handling - loop_candidates - loop_closing - monte_carlo - sidechain_reconstruction - algorithms - +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +:mod:`~promod3.modelling` - Protein Modelling +================================================================================ + +.. module:: promod3.modelling + :synopsis: Protein Modelling + +.. currentmodule:: promod3.modelling + +High-level functionality for protein modelling. The goal is to model a given +target sequence (or list of sequences for oligomers) given some template data. +Commonly, the template does not cover the full target. This module offers +capabilities to extract useful template data for the target and to fill the +remaining structural data to create a full model of the target. In its simplest +form, you can use a target-template alignment and a template structure to create +a model fully automatically as follows: + +.. literalinclude:: ../../../tests/doc/scripts/modelling_all.py + +The various steps involved in protein modelling are described here: + +.. toctree:: + :maxdepth: 2 + + pipeline + model_checking + gap_handling + loop_candidates + loop_closing + monte_carlo + sidechain_reconstruction + algorithms + diff --git a/doc/html/_sources/modelling/loop_candidates.rst.txt b/doc/html/_sources/modelling/loop_candidates.txt similarity index 97% rename from doc/html/_sources/modelling/loop_candidates.rst.txt rename to doc/html/_sources/modelling/loop_candidates.txt index dc55259f6f88c747a31cedce16839d9b1902a494..136f6b9456da4cc5590ebd3cacc4a61cbc094a37 100644 --- a/doc/html/_sources/modelling/loop_candidates.rst.txt +++ b/doc/html/_sources/modelling/loop_candidates.txt @@ -1,626 +1,626 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Handling Loop Candidates -================================================================================ - -.. currentmodule:: promod3.modelling - -For convenience, we provide the :class:`LoopCandidates` class as a container of -loop candidates with consistent length and sequence among them. It can either be -filled manually or generated using static filling functions using the -functionality from the :class:`~promod3.loop.FragDB` or Monte Carlo algorithms. -Once it contains candidates you can apply closing, scoring or clustering -algorithms on all loop candidates. Example: - -.. literalinclude:: ../../../tests/doc/scripts/modelling_loop_candidates.py - - -The LoopCandidates class --------------------------------------------------------------------------------- - -.. class:: LoopCandidates(seq) - - Initializes an empty container of loop candidates. - - Candidates can be accessed and iterated as if it was a :class:`list` of - :class:`~promod3.loop.BackboneList`. - - :param seq: The sequence being enforced for all candidates - :type seq: :class:`str` - - .. staticmethod:: 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. - - This call also adds fragment infos (:meth:`HasFragmentInfos` will be True). - - :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 including the - *n_stem* and *c_stem* - :param frag_db: The fragment database - :param structural_db: The according structural database - :param extended_search: Whether 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:`~promod3.loop.FragDB` - :type structural_db: :class:`~promod3.loop.StructureDB` - :type extended_search: :class:`bool` - - :returns: A list of loop candidates - :rtype: :class:`LoopCandidates` - - :raises: :exc:`~exceptions.RuntimeError` if stems do no contain N, CA and C - atoms. - - .. staticmethod:: FillFromMonteCarloSampler(seq, num_loops, steps, \ - sampler, closer, scorer, cooler, \ - random_seed=0) - FillFromMonteCarloSampler(initial_bb, seq, num_loops, steps, \ - sampler, closer, scorer, cooler, \ - random_seed=0) - - Uses Monte Carlo simulated annealing to sample the loop to be modelled. - If *initial_bb* is given, every Monte Carlo run starts from that configuration. - - .. warning:: The :class:`~promod3.scoring.BackboneScoreEnv` - attached to *scorer* will be altered in the specified stretch. - You might consider the Stash / Pop mechanism of the - :class:`~promod3.scoring.BackboneScoreEnv` to restore to the - original state once the sampling is done. - - :param initial_bb: Initial configuration used for the sampling - :param seq: The sequence of residues to be sampled - :param num_loops: Number of loop candidates to return - :param steps: Number of MC steps to perform for each loop candidate - generated - :param sampler: Used to generate a new configuration at each MC step - :param closer: Used to close the loop after each MC step - :param scorer: Used to score the generated configurations at each MC step - :param cooler: Controls the temperature profile of the simulated annealing - :param random_seed: Seed to feed the random number generator for - accepting/rejecting proposed monte carlo steps. - For every monte carlo run, the random number generator - gets refreshed and this seed gets increased by 1. - - :type initial_bb: :class:`~promod3.loop.BackboneList` - :type seq: :class:`str` - :type num_loops: :class:`int` - :type steps: :class:`int` - :type sampler: :ref:`mc-sampler-object` - :type closer: :ref:`mc-closer-object` - :type scorer: :ref:`mc-scorer-object` - :type cooler: :ref:`mc-cooler-object` - :type random_seed: :class:`int` - - :returns: The resulting candidates - :rtype: :class:`LoopCandidates` - - :raises: :exc:`~exceptions.RuntimeError`, if *initial_bb* is not given and - the Monte Carlo sampler failed to initialize (i.e. stems are too - far apart) or if *initial_bb* is given and it is inconsistent with - *seq*. - - - .. method:: GetSequence() - - :returns: The Sequence - :rtype: :class:`str` - - .. method:: ApplyCCD(n_stem, c_stem, max_iterations=1000, \ - rmsd_cutoff=0.1, keep_non_converged=false, random_seed=0) - ApplyCCD(n_stem, c_stem, torsion_sampler, max_iterations=1000, \ - rmsd_cutoff=0.1, keep_non_converged=false, random_seed=0) - ApplyCCD(n_stem, c_stem, torsion_samplers, max_iterations=1000, \ - rmsd_cutoff=0.1, keep_non_converged=false, random_seed=0) - - Closes all loop candidates in this container using the CCD algorithm (i.e. - modifies the candidates so that its stem residues match those of *n_stem* - and *c_stem*). CCD (cyclic coordinate descent, see :class:`CCD`) is an - iterative minimization algorithm. - - If *torsion_sampler* is given, it is used at each step of the closing to - calculate the probability of the proposed move, which is then accepted or - not depending on a metropolis criterium. - - :param n_stem: Residue defining the n-stem positions every candidate - should match. See :meth:`~CCD.CCD()`. - :param c_stem: Residue defining the c-stem positions every candidate - should match. See :meth:`~CCD.CCD()`. - :param torsion_sampler: A torsion sampler (used for all residues) or a list - of samplers (one per residue). - :param max_iterations: Maximum number of iterations - :param rmsd_cutoff: Cutoff in stem residue RMSD used to determine - convergence - :param keep_non_converged: Whether to keep loop candidates for which the - closing did not converge - :param random_seed: seed for random number generator used to - accept/reject moves in CCD algorithm - - :type n_stem: :class:`ost.mol.ResidueHandle` - :type c_stem: :class:`ost.mol.ResidueHandle` - :type torsion_sampler: :class:`~promod3.loop.TorsionSampler` / :class:`list` - of :class:`~promod3.loop.TorsionSampler` - :type max_iterations: :class:`int` - :type rmsd_cutoff: :class:`float` - :type keep_non_converged: :class:`bool` - :type random_seed: :class:`int` - - :return: An index for each kept candidate corresponding to the candidate - index before this function was called. This is useful to keep track - of scores and other data extracted before. - :rtype: :class:`list` of :class:`int` - - - .. method:: ApplyKIC(n_stem, c_stem, pivot_one, pivot_two, pivot_three) - - Closes all loop candidates in this container (i.e. modifies the candidates - so that its stem residues match those of *n_stem* and *c_stem*, 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. Due to the underlying - mathematical formalism in KIC, up to 16 solutions can be found for every - candidate. This leads to an increase in number of loops. - - :param n_stem: Residue defining the n-stem positions every candidate - should match - :param c_stem: Residue defining the c-stem positions every candidate - should match - :param pivot_one: First pivot residue - :param pivot_two: Second pivot residue - :param pivot_three: Third pivot residue - - :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` - - :return: An index for each added candidate corresponding to the original - candidate index before this function was called (each candidate can - lead to multiple or no candidates after KIC is applied). This is - useful to keep track of scores and other data extracted before. - :rtype: :class:`list` of :class:`int` - - .. method:: CalculateBackboneScores(score_container, scorer, scorer_env,\ - start_resnum, chain_idx=0) - CalculateBackboneScores(score_container, scorer, scorer_env,\ - keys, start_resnum, chain_idx=0) - CalculateBackboneScores(score_container, mhandle,\ - start_resnum, chain_idx=0) - CalculateBackboneScores(score_container, mhandle,\ - keys, start_resnum, chain_idx=0) - CalculateAllAtomScores(score_container, mhandle, \ - start_resnum, chain_idx=0) - CalculateAllAtomScores(score_container, mhandle, keys, \ - start_resnum, chain_idx=0) - - Calculate backbone / all-atom scores for each loop candidate. - Note that (unless otherwise noted) a lower "score" is better! - - The computed scores are in the same same order as the candidates in here. - - :param score_container: Add scores to this score container using the given - key names (or the ones from :class:`ScoringWeights`) - :type score_container: :class:`ScoreContainer` - :param scorer: Backbone scoring object with set environment for the - particular loop modelling problem. - :type scorer: :class:`~promod3.scoring.BackboneOverallScorer` - :param scorer_env: The scoring environment attached to *scorer* - :type scorer_env: :class:`~promod3.scoring.BackboneScoreEnv` - :param mhandle: Modelling handle set up scoring (see - :func:`SetupDefaultBackboneScoring` - :func:`SetupDefaultAllAtomScoring`). - :type mhandle: :class:`ModellingHandle` - :param keys: Keys of the desired scorers. If not given, we use the set of - keys given by :meth:`ScoringWeights.GetBackboneScoringKeys` / - :meth:`ScoringWeights.GetAllAtomScoringKeys`. - :type keys: :class:`list` of :class:`str` - :param start_resnum: Res. number defining the position in the SEQRES. - :type start_resnum: :class:`int` - :param chain_idx: Index of chain the loops belong to. - :type chain_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if :func:`IsAllAtomScoringSetUp` - is False, if *keys* has a key for which no scorer exists or if - anything is raised when calculating the scores. - - - .. method:: CalculateSequenceProfileScores(score_container, structure_db, \ - prof, offset=0) - CalculateStructureProfileScores(score_container, structure_db, \ - prof, offset=0) - - Calculates a score comparing the given profile *prof* starting at *offset* - with the sequence / structure profile of each candidate as extracted from - *structure_db* (see :meth:`ost.seq.ProfileHandle.GetAverageScore` for - details, *prof.null_model* is used for weighting). - - Note that for profile scores a higher "score" is better! So take care when - combining this to other scores, where it is commonly the other way around. - - This requires that each candidate has a connected fragment info into the - given *structure_db* (e.g. :meth:`FillFromDatabase` must have been called - with this DB). - - The computed scores are in the same same order as the candidates in here. - - :param score_container: Add scores to this score container using the default - key name defined in :class:`ScoringWeights` - :type score_container: :class:`ScoreContainer` - :param structural_db: Structural database used in :meth:`FillFromDatabase` - :type structural_db: :class:`~promod3.loop.StructureDB` - :param prof: Profile information for target. - :type prof: :class:`ost.seq.ProfileHandle` - :param offset: Loop starts at index *offset* in *prof*. - :type offset: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if :meth:`HasFragmentInfos` is - False, if *structure_db* is incompatible with the stored fragment - infos or if *prof* has less than *offset+len* elements (len = - length of loops stored in here). - - - .. method:: CalculateStemRMSDs(score_container, n_stem, c_stem) - - Calculates RMSD between the given stems and the first and last residue of - the loop candidates. This first superposes the first loop residue with - *n_stem* and then computes the RMSD between the last residue's N, CA, C - positions and the corresponding atoms in *c_stem*. - - Note that this score is only useful before calling :meth:`ApplyCCD` or - :meth:`ApplyKIC`. - - The computed scores are in the same same order as the candidates in here. - - :param score_container: Add scores to this score container using the default - key name defined in :class:`ScoringWeights` - :type score_container: :class:`ScoreContainer` - :param n_stem: The residue at the N-terminal end of the loop. - :type n_stem: :class:`ost.mol.ResidueHandle` - :param c_stem: The residue at the C-terminal end of the loop. - :type c_stem: :class:`ost.mol.ResidueHandle` - - :raises: :exc:`~exceptions.RuntimeError` if stems do no contain N, CA and C - atoms. - - - .. method:: CalculateSequenceProfileScores(structure_db, prof, offset=0) - CalculateStructureProfileScores(structure_db, prof, offset=0) - CalculateStemRMSDs(n_stem, c_stem) - - Same as the *score_container* variant above, but here we directly return the - score vector instead of storing it in a container. - - :return: Score for each candidate (same order as candidates in here). - :rtype: :class:`list` of :class:`float` - - - .. method:: Add(bb_list) - - :param bb_list: The loop candidate to be added. - :type bb_list: :class:`~promod3.loop.BackboneList` - - :raises: :exc:`~exceptions.RuntimeError` if sequence of *bb_list* is not - consistent with internal sequence - - .. method:: AddFragmentInfo(fragment) - - Adds a fragment info for the last candidate added with :meth:`Add`. Note - that these infos are added automatically with :meth:`FillFromDatabase` and - updated whenever the candidates are copied, removed, clustered etc.. So you - will probably never need this function. - - :param fragment: The fragment info to add. - :type fragment: :class:`~promod3.loop.FragmentInfo` - - .. 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` - - :raises: :exc:`~exceptions.RuntimeError` if *index* is out of bounds. - - .. method:: HasFragmentInfos() - - :return: True, if each loop candidate has a connected fragment info. - :rtype: :class:`bool` - - .. method:: GetFragmentInfo(index) - - :return: Fragment info connected to loop candidate at given *index*. - :rtype: :class:`~promod3.loop.FragmentInfo` - :param index: The index of the candidate. - :type index: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if :meth:`HasFragmentInfos` is - False or if *index* is out of bounds. - - .. method:: Extract(indices) - - :return: Container with candidates with given *indices*. - :rtype: :class:`LoopCandidates` - :param indices: Candidate indices to extract. - :type indices: :class:`list` of :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if any index is out of bounds. - - - .. method:: GetClusters(max_dist, superposed_rmsd = False) - - Clusters the loop candidates according to their pairwise CA RMSD using an - agglomerative hierarchical clustering algorithm. Every candidate gets - assigned a unique cluster. At every clustering step, the two clusters with - shortest distance get merged, with the distance definition being the average - CA RMSD between any of the members of the two clusters. - - :param max_dist: Maximal distance two clusters can have to be merged - :type superposed_rmsd: :class:`bool` - :param superposed_rmsd: Whether to calculate the RMSD based on a minimal - RMSD superposition or simply consider the current - positions - :type max_dist: :class:`float` - - :returns: Lists of loop candidate indices into this container - :rtype: :class:`list` of :class:`list` of :class:`int` - - .. method:: GetClusteredCandidates(max_dist, neglect_size_one=True, \ - superposed_rmsd=False) - - :returns: List of loop candidates clustered as in :meth:`GetClusters`. - :rtype: :class:`list` of :class:`LoopCandidates` - - :param max_dist: Maximal distance two clusters can have to be merged - :type max_dist: :class:`float` - :param neglect_size_one: Whether clusters should be added to the returned - list if they only contain one loop candidate - :type neglect_size_one: :class:`bool` - :param superposed_rmsd: Whether to calculate the RMSD based on a minimal - RMSD superposition or simply consider the current - positions - :type superposed_rmsd: :class:`bool` - - .. method:: GetLargestCluster(max_dist, superposed_rmsd = False) - - Instead of performing a full clustering, the algorithm simply searches for - the candidate with the most other candidates having a CA RMSD below - **max_dist**. This candidate then serves as centroid for the return - cluster. - - :param max_dist: Maximal CA RMSD to cluster centroid - :type max_dist: :class:`float` - :param superposed_rmsd: Whether to calculate the RMSD based on a minimal - RMSD superposition or simply consider the current - positions - :type superposed_rmsd: :class:`bool` - - :returns: Largest possible cluster with all members having a - CA RMSD below **max_dist** to cluster centroid. - :rtype: :class:`LoopCandidates` - - -Keeping track of loop candidate scores --------------------------------------------------------------------------------- - -Two helper classes are used to keep track and combine different scores computed -on loop candidates. - -.. class:: ScoreContainer - - Container to keep vectors of scores (one for each loop candidate) for each - scorer (one vector for each single scorer). Each score vector is guaranteed - to have the same number of values. - - .. method:: IsEmpty() - - :return: True, if no loop candidates have been scored with any scorer yet. - :rtype: :class:`bool` - - .. method:: Contains(key) - - :return: True, if a score vector for this key was already added. - :rtype: :class:`bool` - :param key: Key for desired scorer. - :type key: :class:`str` - - .. method:: Get(key) - - :return: Score vector for the given *key*. - :rtype: :class:`list` of :meth:`GetNumCandidates` :class:`float` - :param key: Key for desired score vector. - :type key: :class:`str` - :raises: :exc:`~exceptions.RuntimeError` if there are no scores for that - *key*. - - .. method:: Set(key, scores) - - :param key: Set scores for that *key*. - :type key: :class:`str` - :param scores: Score vector to set. - :type scores: :class:`list` of :class:`float` - :raises: :exc:`~exceptions.RuntimeError` if this container contains other - score vectors with a different number of entries. - - .. method:: GetNumCandidates() - - :return: Number of loop candidates that are scored here. This is the length - of each score vector in this container. - :rtype: :class:`int` - - .. method:: LinearCombine(linear_weights) - - :return: Weighted, linear combination of scores. - :rtype: :class:`list` of :meth:`GetNumCandidates` :class:`float` - - :param linear_weights: Weights for each scorer. - :type linear_weights: :class:`dict` (keys: :class:`str`, - values: :class:`float`) - - :raises: :exc:`~exceptions.RuntimeError` if *linear_weights* has a key for - which no scores were added. - - .. method:: Copy() - - :return: Full copy of this container. - :rtype: :class:`ScoreContainer` - - .. method:: Extract(indices) - - :return: Container with scores for a subset of loop candidates. - :rtype: :class:`ScoreContainer` - - :param indices: List of loop candidate indices to pick - (in [0, :meth:`GetNumCandidates`-1]) - :type indices: :class:`list` of :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if any index is out of bounds. - - .. method:: Extend(other) - - Extend each score vector with the score vector of *other* (must have - matching keys). - - :param other: Score container to be added to this one. - :type other: :class:`ScoreContainer` - - -.. class:: ScoringWeights - - Globally accessible set of weights to be used in scoring. This also defines - a consistent naming of keys used for backbone and all atom scorers as set up - by :func:`SetupDefaultBackboneScoring` and :func:`SetupDefaultAllAtomScoring`. - - Different sets of weights are available. You can get general weights - that have been optimized for a non redundant set of loops with lengths [3,14] - (including stem residues). The alternative is to get weights that have only - been optimized on a length specific subset of loops. By default you get - different weights for following lengths: [0,1,2,3,4], [5,6], [7,8], [9,10], - [11,12], [13,14]. - - If you choose to modify the weights, please ensure to set consistently named - keys in here and to use consistently named scorers and scoring computations! - - .. staticmethod:: GetWeights(with_db=False, with_aa=False,\ - length_dependent=False, loop_length=-1) - - :return: Named weights to be used when scoring loop candidates. The default - weights were optimized to give the best performance when choosing - the loop candidate with the lowest combined score. Each set of - weights includes (different) backbone scoring weights, that are - optionally only trained on a subset of loops with corresponding - loop length. - :rtype: :class:`dict` (keys: :class:`str`, values: :class:`float`) - - :param with_db: True to choose a set of weights including DB specific scores - (stem RMSD and profile scores) - :type with_db: :class:`bool` - :param with_aa: True to choose a set of weights including all atom scores - :type with_aa: :class:`bool` - :param length_dependent: Whether to use general weights or their length - length dependent counterparts. - :type length_dependent: :class:`bool` - :param loop_length: Length of full loop. If no weights are available for - this length or when *loop_length* is -1, the general - weights are returned. - :type loop_length: :class:`int` - - .. staticmethod:: SetWeights(with_db, with_aa, weights,\ - length_dependent=False, loop_length=-1) - - Overwrite a set of weights as returned by :meth:`GetWeights`. - - .. staticmethod:: GetBackboneWeights(with_db=False, with_aa=False,\ - length_dependent=False, loop_length=-1) - - :return: Subset of :meth:`GetWeights` for backbone scoring as in - :meth:`scoring.BackboneOverallScorer.CalculateLinearCombination`. - :rtype: :class:`dict` (keys: :class:`str`, values: :class:`float`) - - :param with_db: As in :meth:`GetWeights` - :type with_db: :class:`bool` - :param with_aa: As in :meth:`GetWeights` - :type with_aa: :class:`bool` - :param length_dependent: As in :meth:`GetWeights` - :type length_dependent: :class:`bool` - :param loop_length: As in :meth:`GetWeights` - :type loop_length: :class:`int` - - .. staticmethod:: GetAllAtomWeights(with_db=False, length_dependent=False,\ - loop_length=-1) - - :return: Subset of :meth:`GetWeights` for all atom scoring as in - :meth:`scoring.AllAtomOverallScorer.CalculateLinearCombination`. - :rtype: :class:`dict` (keys: :class:`str`, values: :class:`float`) - - :param with_db: As in :meth:`GetWeights` - :type with_db: :class:`bool` - :param length_dependent: As in :meth:`GetWeights` - :type length_dependent: :class:`bool` - :param loop_length: As in :meth:`GetWeights` - :type loop_length: :class:`int` - - - .. staticmethod:: GetStemRMSDsKey() - GetSequenceProfileScoresKey() - GetStructureProfileScoresKey() - - :return: Default key for stem RMSD / sequence profile / structure profile - scores. - :rtype: :class:`str` - - .. staticmethod:: SetStemRMSDsKey(key) - SetSequenceProfileScoresKey(key) - SetStructureProfileScoresKey(key) - - :param key: New default key for stem RMSD / sequence profile / structure - profile scores. - :type key: :class:`str` - - .. staticmethod:: GetBackboneScoringKeys() - GetAllAtomScoringKeys() - - :return: List of backbone / all-atom scorers to be computed for any set of - weights defined in here. - :rtype: :class:`list` of :class:`str` - - .. staticmethod:: SetBackboneScoringKeys(keys) - SetAllAtomScoringKeys(keys) - - :param keys: New list of backbone / all-atom scorers to be computed for any - set of weights defined in here. - :type keys: :class:`list` of :class:`str` - - -Example: loop scoring in modelling --------------------------------------------------------------------------------- - -In the example below, we show how we find and choose a loop candidate to close a -gap for a model. This shows the combined usage of :class:`ModellingHandle` to -keep a consistent modelling environment, :class:`LoopCandidates` with its -scoring routines, :class:`ScoreContainer` for keeping track of scores and -:class:`ScoringWeights` to combine scores: - -.. literalinclude:: ../../../tests/doc/scripts/modelling_loop_scoring.py +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Handling Loop Candidates +================================================================================ + +.. currentmodule:: promod3.modelling + +For convenience, we provide the :class:`LoopCandidates` class as a container of +loop candidates with consistent length and sequence among them. It can either be +filled manually or generated using static filling functions using the +functionality from the :class:`~promod3.loop.FragDB` or Monte Carlo algorithms. +Once it contains candidates you can apply closing, scoring or clustering +algorithms on all loop candidates. Example: + +.. literalinclude:: ../../../tests/doc/scripts/modelling_loop_candidates.py + + +The LoopCandidates class +-------------------------------------------------------------------------------- + +.. class:: LoopCandidates(seq) + + Initializes an empty container of loop candidates. + + Candidates can be accessed and iterated as if it was a :class:`list` of + :class:`~promod3.loop.BackboneList`. + + :param seq: The sequence being enforced for all candidates + :type seq: :class:`str` + + .. staticmethod:: 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. + + This call also adds fragment infos (:meth:`HasFragmentInfos` will be True). + + :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 including the + *n_stem* and *c_stem* + :param frag_db: The fragment database + :param structural_db: The according structural database + :param extended_search: Whether 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:`~promod3.loop.FragDB` + :type structural_db: :class:`~promod3.loop.StructureDB` + :type extended_search: :class:`bool` + + :returns: A list of loop candidates + :rtype: :class:`LoopCandidates` + + :raises: :exc:`~exceptions.RuntimeError` if stems do no contain N, CA and C + atoms. + + .. staticmethod:: FillFromMonteCarloSampler(seq, num_loops, steps, \ + sampler, closer, scorer, cooler, \ + random_seed=0) + FillFromMonteCarloSampler(initial_bb, seq, num_loops, steps, \ + sampler, closer, scorer, cooler, \ + random_seed=0) + + Uses Monte Carlo simulated annealing to sample the loop to be modelled. + If *initial_bb* is given, every Monte Carlo run starts from that configuration. + + .. warning:: The :class:`~promod3.scoring.BackboneScoreEnv` + attached to *scorer* will be altered in the specified stretch. + You might consider the Stash / Pop mechanism of the + :class:`~promod3.scoring.BackboneScoreEnv` to restore to the + original state once the sampling is done. + + :param initial_bb: Initial configuration used for the sampling + :param seq: The sequence of residues to be sampled + :param num_loops: Number of loop candidates to return + :param steps: Number of MC steps to perform for each loop candidate + generated + :param sampler: Used to generate a new configuration at each MC step + :param closer: Used to close the loop after each MC step + :param scorer: Used to score the generated configurations at each MC step + :param cooler: Controls the temperature profile of the simulated annealing + :param random_seed: Seed to feed the random number generator for + accepting/rejecting proposed monte carlo steps. + For every monte carlo run, the random number generator + gets refreshed and this seed gets increased by 1. + + :type initial_bb: :class:`~promod3.loop.BackboneList` + :type seq: :class:`str` + :type num_loops: :class:`int` + :type steps: :class:`int` + :type sampler: :ref:`mc-sampler-object` + :type closer: :ref:`mc-closer-object` + :type scorer: :ref:`mc-scorer-object` + :type cooler: :ref:`mc-cooler-object` + :type random_seed: :class:`int` + + :returns: The resulting candidates + :rtype: :class:`LoopCandidates` + + :raises: :exc:`~exceptions.RuntimeError`, if *initial_bb* is not given and + the Monte Carlo sampler failed to initialize (i.e. stems are too + far apart) or if *initial_bb* is given and it is inconsistent with + *seq*. + + + .. method:: GetSequence() + + :returns: The Sequence + :rtype: :class:`str` + + .. method:: ApplyCCD(n_stem, c_stem, max_iterations=1000, \ + rmsd_cutoff=0.1, keep_non_converged=false, random_seed=0) + ApplyCCD(n_stem, c_stem, torsion_sampler, max_iterations=1000, \ + rmsd_cutoff=0.1, keep_non_converged=false, random_seed=0) + ApplyCCD(n_stem, c_stem, torsion_samplers, max_iterations=1000, \ + rmsd_cutoff=0.1, keep_non_converged=false, random_seed=0) + + Closes all loop candidates in this container using the CCD algorithm (i.e. + modifies the candidates so that its stem residues match those of *n_stem* + and *c_stem*). CCD (cyclic coordinate descent, see :class:`CCD`) is an + iterative minimization algorithm. + + If *torsion_sampler* is given, it is used at each step of the closing to + calculate the probability of the proposed move, which is then accepted or + not depending on a metropolis criterium. + + :param n_stem: Residue defining the n-stem positions every candidate + should match. See :meth:`~CCD.CCD()`. + :param c_stem: Residue defining the c-stem positions every candidate + should match. See :meth:`~CCD.CCD()`. + :param torsion_sampler: A torsion sampler (used for all residues) or a list + of samplers (one per residue). + :param max_iterations: Maximum number of iterations + :param rmsd_cutoff: Cutoff in stem residue RMSD used to determine + convergence + :param keep_non_converged: Whether to keep loop candidates for which the + closing did not converge + :param random_seed: seed for random number generator used to + accept/reject moves in CCD algorithm + + :type n_stem: :class:`ost.mol.ResidueHandle` + :type c_stem: :class:`ost.mol.ResidueHandle` + :type torsion_sampler: :class:`~promod3.loop.TorsionSampler` / :class:`list` + of :class:`~promod3.loop.TorsionSampler` + :type max_iterations: :class:`int` + :type rmsd_cutoff: :class:`float` + :type keep_non_converged: :class:`bool` + :type random_seed: :class:`int` + + :return: An index for each kept candidate corresponding to the candidate + index before this function was called. This is useful to keep track + of scores and other data extracted before. + :rtype: :class:`list` of :class:`int` + + + .. method:: ApplyKIC(n_stem, c_stem, pivot_one, pivot_two, pivot_three) + + Closes all loop candidates in this container (i.e. modifies the candidates + so that its stem residues match those of *n_stem* and *c_stem*, 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. Due to the underlying + mathematical formalism in KIC, up to 16 solutions can be found for every + candidate. This leads to an increase in number of loops. + + :param n_stem: Residue defining the n-stem positions every candidate + should match + :param c_stem: Residue defining the c-stem positions every candidate + should match + :param pivot_one: First pivot residue + :param pivot_two: Second pivot residue + :param pivot_three: Third pivot residue + + :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` + + :return: An index for each added candidate corresponding to the original + candidate index before this function was called (each candidate can + lead to multiple or no candidates after KIC is applied). This is + useful to keep track of scores and other data extracted before. + :rtype: :class:`list` of :class:`int` + + .. method:: CalculateBackboneScores(score_container, scorer, scorer_env,\ + start_resnum, chain_idx=0) + CalculateBackboneScores(score_container, scorer, scorer_env,\ + keys, start_resnum, chain_idx=0) + CalculateBackboneScores(score_container, mhandle,\ + start_resnum, chain_idx=0) + CalculateBackboneScores(score_container, mhandle,\ + keys, start_resnum, chain_idx=0) + CalculateAllAtomScores(score_container, mhandle, \ + start_resnum, chain_idx=0) + CalculateAllAtomScores(score_container, mhandle, keys, \ + start_resnum, chain_idx=0) + + Calculate backbone / all-atom scores for each loop candidate. + Note that (unless otherwise noted) a lower "score" is better! + + The computed scores are in the same same order as the candidates in here. + + :param score_container: Add scores to this score container using the given + key names (or the ones from :class:`ScoringWeights`) + :type score_container: :class:`ScoreContainer` + :param scorer: Backbone scoring object with set environment for the + particular loop modelling problem. + :type scorer: :class:`~promod3.scoring.BackboneOverallScorer` + :param scorer_env: The scoring environment attached to *scorer* + :type scorer_env: :class:`~promod3.scoring.BackboneScoreEnv` + :param mhandle: Modelling handle set up scoring (see + :func:`SetupDefaultBackboneScoring` + :func:`SetupDefaultAllAtomScoring`). + :type mhandle: :class:`ModellingHandle` + :param keys: Keys of the desired scorers. If not given, we use the set of + keys given by :meth:`ScoringWeights.GetBackboneScoringKeys` / + :meth:`ScoringWeights.GetAllAtomScoringKeys`. + :type keys: :class:`list` of :class:`str` + :param start_resnum: Res. number defining the position in the SEQRES. + :type start_resnum: :class:`int` + :param chain_idx: Index of chain the loops belong to. + :type chain_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if :func:`IsAllAtomScoringSetUp` + is False, if *keys* has a key for which no scorer exists or if + anything is raised when calculating the scores. + + + .. method:: CalculateSequenceProfileScores(score_container, structure_db, \ + prof, offset=0) + CalculateStructureProfileScores(score_container, structure_db, \ + prof, offset=0) + + Calculates a score comparing the given profile *prof* starting at *offset* + with the sequence / structure profile of each candidate as extracted from + *structure_db* (see :meth:`ost.seq.ProfileHandle.GetAverageScore` for + details, *prof.null_model* is used for weighting). + + Note that for profile scores a higher "score" is better! So take care when + combining this to other scores, where it is commonly the other way around. + + This requires that each candidate has a connected fragment info into the + given *structure_db* (e.g. :meth:`FillFromDatabase` must have been called + with this DB). + + The computed scores are in the same same order as the candidates in here. + + :param score_container: Add scores to this score container using the default + key name defined in :class:`ScoringWeights` + :type score_container: :class:`ScoreContainer` + :param structural_db: Structural database used in :meth:`FillFromDatabase` + :type structural_db: :class:`~promod3.loop.StructureDB` + :param prof: Profile information for target. + :type prof: :class:`ost.seq.ProfileHandle` + :param offset: Loop starts at index *offset* in *prof*. + :type offset: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if :meth:`HasFragmentInfos` is + False, if *structure_db* is incompatible with the stored fragment + infos or if *prof* has less than *offset+len* elements (len = + length of loops stored in here). + + + .. method:: CalculateStemRMSDs(score_container, n_stem, c_stem) + + Calculates RMSD between the given stems and the first and last residue of + the loop candidates. This first superposes the first loop residue with + *n_stem* and then computes the RMSD between the last residue's N, CA, C + positions and the corresponding atoms in *c_stem*. + + Note that this score is only useful before calling :meth:`ApplyCCD` or + :meth:`ApplyKIC`. + + The computed scores are in the same same order as the candidates in here. + + :param score_container: Add scores to this score container using the default + key name defined in :class:`ScoringWeights` + :type score_container: :class:`ScoreContainer` + :param n_stem: The residue at the N-terminal end of the loop. + :type n_stem: :class:`ost.mol.ResidueHandle` + :param c_stem: The residue at the C-terminal end of the loop. + :type c_stem: :class:`ost.mol.ResidueHandle` + + :raises: :exc:`~exceptions.RuntimeError` if stems do no contain N, CA and C + atoms. + + + .. method:: CalculateSequenceProfileScores(structure_db, prof, offset=0) + CalculateStructureProfileScores(structure_db, prof, offset=0) + CalculateStemRMSDs(n_stem, c_stem) + + Same as the *score_container* variant above, but here we directly return the + score vector instead of storing it in a container. + + :return: Score for each candidate (same order as candidates in here). + :rtype: :class:`list` of :class:`float` + + + .. method:: Add(bb_list) + + :param bb_list: The loop candidate to be added. + :type bb_list: :class:`~promod3.loop.BackboneList` + + :raises: :exc:`~exceptions.RuntimeError` if sequence of *bb_list* is not + consistent with internal sequence + + .. method:: AddFragmentInfo(fragment) + + Adds a fragment info for the last candidate added with :meth:`Add`. Note + that these infos are added automatically with :meth:`FillFromDatabase` and + updated whenever the candidates are copied, removed, clustered etc.. So you + will probably never need this function. + + :param fragment: The fragment info to add. + :type fragment: :class:`~promod3.loop.FragmentInfo` + + .. 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` + + :raises: :exc:`~exceptions.RuntimeError` if *index* is out of bounds. + + .. method:: HasFragmentInfos() + + :return: True, if each loop candidate has a connected fragment info. + :rtype: :class:`bool` + + .. method:: GetFragmentInfo(index) + + :return: Fragment info connected to loop candidate at given *index*. + :rtype: :class:`~promod3.loop.FragmentInfo` + :param index: The index of the candidate. + :type index: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if :meth:`HasFragmentInfos` is + False or if *index* is out of bounds. + + .. method:: Extract(indices) + + :return: Container with candidates with given *indices*. + :rtype: :class:`LoopCandidates` + :param indices: Candidate indices to extract. + :type indices: :class:`list` of :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if any index is out of bounds. + + + .. method:: GetClusters(max_dist, superposed_rmsd = False) + + Clusters the loop candidates according to their pairwise CA RMSD using an + agglomerative hierarchical clustering algorithm. Every candidate gets + assigned a unique cluster. At every clustering step, the two clusters with + shortest distance get merged, with the distance definition being the average + CA RMSD between any of the members of the two clusters. + + :param max_dist: Maximal distance two clusters can have to be merged + :type superposed_rmsd: :class:`bool` + :param superposed_rmsd: Whether to calculate the RMSD based on a minimal + RMSD superposition or simply consider the current + positions + :type max_dist: :class:`float` + + :returns: Lists of loop candidate indices into this container + :rtype: :class:`list` of :class:`list` of :class:`int` + + .. method:: GetClusteredCandidates(max_dist, neglect_size_one=True, \ + superposed_rmsd=False) + + :returns: List of loop candidates clustered as in :meth:`GetClusters`. + :rtype: :class:`list` of :class:`LoopCandidates` + + :param max_dist: Maximal distance two clusters can have to be merged + :type max_dist: :class:`float` + :param neglect_size_one: Whether clusters should be added to the returned + list if they only contain one loop candidate + :type neglect_size_one: :class:`bool` + :param superposed_rmsd: Whether to calculate the RMSD based on a minimal + RMSD superposition or simply consider the current + positions + :type superposed_rmsd: :class:`bool` + + .. method:: GetLargestCluster(max_dist, superposed_rmsd = False) + + Instead of performing a full clustering, the algorithm simply searches for + the candidate with the most other candidates having a CA RMSD below + **max_dist**. This candidate then serves as centroid for the return + cluster. + + :param max_dist: Maximal CA RMSD to cluster centroid + :type max_dist: :class:`float` + :param superposed_rmsd: Whether to calculate the RMSD based on a minimal + RMSD superposition or simply consider the current + positions + :type superposed_rmsd: :class:`bool` + + :returns: Largest possible cluster with all members having a + CA RMSD below **max_dist** to cluster centroid. + :rtype: :class:`LoopCandidates` + + +Keeping track of loop candidate scores +-------------------------------------------------------------------------------- + +Two helper classes are used to keep track and combine different scores computed +on loop candidates. + +.. class:: ScoreContainer + + Container to keep vectors of scores (one for each loop candidate) for each + scorer (one vector for each single scorer). Each score vector is guaranteed + to have the same number of values. + + .. method:: IsEmpty() + + :return: True, if no loop candidates have been scored with any scorer yet. + :rtype: :class:`bool` + + .. method:: Contains(key) + + :return: True, if a score vector for this key was already added. + :rtype: :class:`bool` + :param key: Key for desired scorer. + :type key: :class:`str` + + .. method:: Get(key) + + :return: Score vector for the given *key*. + :rtype: :class:`list` of :meth:`GetNumCandidates` :class:`float` + :param key: Key for desired score vector. + :type key: :class:`str` + :raises: :exc:`~exceptions.RuntimeError` if there are no scores for that + *key*. + + .. method:: Set(key, scores) + + :param key: Set scores for that *key*. + :type key: :class:`str` + :param scores: Score vector to set. + :type scores: :class:`list` of :class:`float` + :raises: :exc:`~exceptions.RuntimeError` if this container contains other + score vectors with a different number of entries. + + .. method:: GetNumCandidates() + + :return: Number of loop candidates that are scored here. This is the length + of each score vector in this container. + :rtype: :class:`int` + + .. method:: LinearCombine(linear_weights) + + :return: Weighted, linear combination of scores. + :rtype: :class:`list` of :meth:`GetNumCandidates` :class:`float` + + :param linear_weights: Weights for each scorer. + :type linear_weights: :class:`dict` (keys: :class:`str`, + values: :class:`float`) + + :raises: :exc:`~exceptions.RuntimeError` if *linear_weights* has a key for + which no scores were added. + + .. method:: Copy() + + :return: Full copy of this container. + :rtype: :class:`ScoreContainer` + + .. method:: Extract(indices) + + :return: Container with scores for a subset of loop candidates. + :rtype: :class:`ScoreContainer` + + :param indices: List of loop candidate indices to pick + (in [0, :meth:`GetNumCandidates`-1]) + :type indices: :class:`list` of :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if any index is out of bounds. + + .. method:: Extend(other) + + Extend each score vector with the score vector of *other* (must have + matching keys). + + :param other: Score container to be added to this one. + :type other: :class:`ScoreContainer` + + +.. class:: ScoringWeights + + Globally accessible set of weights to be used in scoring. This also defines + a consistent naming of keys used for backbone and all atom scorers as set up + by :func:`SetupDefaultBackboneScoring` and :func:`SetupDefaultAllAtomScoring`. + + Different sets of weights are available. You can get general weights + that have been optimized for a non redundant set of loops with lengths [3,14] + (including stem residues). The alternative is to get weights that have only + been optimized on a length specific subset of loops. By default you get + different weights for following lengths: [0,1,2,3,4], [5,6], [7,8], [9,10], + [11,12], [13,14]. + + If you choose to modify the weights, please ensure to set consistently named + keys in here and to use consistently named scorers and scoring computations! + + .. staticmethod:: GetWeights(with_db=False, with_aa=False,\ + length_dependent=False, loop_length=-1) + + :return: Named weights to be used when scoring loop candidates. The default + weights were optimized to give the best performance when choosing + the loop candidate with the lowest combined score. Each set of + weights includes (different) backbone scoring weights, that are + optionally only trained on a subset of loops with corresponding + loop length. + :rtype: :class:`dict` (keys: :class:`str`, values: :class:`float`) + + :param with_db: True to choose a set of weights including DB specific scores + (stem RMSD and profile scores) + :type with_db: :class:`bool` + :param with_aa: True to choose a set of weights including all atom scores + :type with_aa: :class:`bool` + :param length_dependent: Whether to use general weights or their length + length dependent counterparts. + :type length_dependent: :class:`bool` + :param loop_length: Length of full loop. If no weights are available for + this length or when *loop_length* is -1, the general + weights are returned. + :type loop_length: :class:`int` + + .. staticmethod:: SetWeights(with_db, with_aa, weights,\ + length_dependent=False, loop_length=-1) + + Overwrite a set of weights as returned by :meth:`GetWeights`. + + .. staticmethod:: GetBackboneWeights(with_db=False, with_aa=False,\ + length_dependent=False, loop_length=-1) + + :return: Subset of :meth:`GetWeights` for backbone scoring as in + :meth:`scoring.BackboneOverallScorer.CalculateLinearCombination`. + :rtype: :class:`dict` (keys: :class:`str`, values: :class:`float`) + + :param with_db: As in :meth:`GetWeights` + :type with_db: :class:`bool` + :param with_aa: As in :meth:`GetWeights` + :type with_aa: :class:`bool` + :param length_dependent: As in :meth:`GetWeights` + :type length_dependent: :class:`bool` + :param loop_length: As in :meth:`GetWeights` + :type loop_length: :class:`int` + + .. staticmethod:: GetAllAtomWeights(with_db=False, length_dependent=False,\ + loop_length=-1) + + :return: Subset of :meth:`GetWeights` for all atom scoring as in + :meth:`scoring.AllAtomOverallScorer.CalculateLinearCombination`. + :rtype: :class:`dict` (keys: :class:`str`, values: :class:`float`) + + :param with_db: As in :meth:`GetWeights` + :type with_db: :class:`bool` + :param length_dependent: As in :meth:`GetWeights` + :type length_dependent: :class:`bool` + :param loop_length: As in :meth:`GetWeights` + :type loop_length: :class:`int` + + + .. staticmethod:: GetStemRMSDsKey() + GetSequenceProfileScoresKey() + GetStructureProfileScoresKey() + + :return: Default key for stem RMSD / sequence profile / structure profile + scores. + :rtype: :class:`str` + + .. staticmethod:: SetStemRMSDsKey(key) + SetSequenceProfileScoresKey(key) + SetStructureProfileScoresKey(key) + + :param key: New default key for stem RMSD / sequence profile / structure + profile scores. + :type key: :class:`str` + + .. staticmethod:: GetBackboneScoringKeys() + GetAllAtomScoringKeys() + + :return: List of backbone / all-atom scorers to be computed for any set of + weights defined in here. + :rtype: :class:`list` of :class:`str` + + .. staticmethod:: SetBackboneScoringKeys(keys) + SetAllAtomScoringKeys(keys) + + :param keys: New list of backbone / all-atom scorers to be computed for any + set of weights defined in here. + :type keys: :class:`list` of :class:`str` + + +Example: loop scoring in modelling +-------------------------------------------------------------------------------- + +In the example below, we show how we find and choose a loop candidate to close a +gap for a model. This shows the combined usage of :class:`ModellingHandle` to +keep a consistent modelling environment, :class:`LoopCandidates` with its +scoring routines, :class:`ScoreContainer` for keeping track of scores and +:class:`ScoringWeights` to combine scores: + +.. literalinclude:: ../../../tests/doc/scripts/modelling_loop_scoring.py diff --git a/doc/html/_sources/modelling/loop_closing.rst.txt b/doc/html/_sources/modelling/loop_closing.txt similarity index 97% rename from doc/html/_sources/modelling/loop_closing.rst.txt rename to doc/html/_sources/modelling/loop_closing.txt index 5199272f7948695124008b96a868633899c5ccd9..1239fe63fdacb6fabfa4ccb300120896a06e4b52 100644 --- a/doc/html/_sources/modelling/loop_closing.rst.txt +++ b/doc/html/_sources/modelling/loop_closing.txt @@ -1,393 +1,393 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Fitting Loops Into Gaps -================================================================================ - -.. currentmodule:: promod3.modelling - -Loops often need to undergo conformational changes to fit into gaps defined by -stem residues. |project| implements two algorithms performing this task: - - * Cyclic coordinate descent (CCD) [canutescu2003]_ - * Kinematic closure (KIC) [coutsias2005]_ - -In case of small gaps or small issues in the loop you might also consider the -:class:`BackboneRelaxer`. - - -CCD --------------------------------------------------------------------------------- - -The |project| implementation of the cyclic coordinate descent first superposes -the n-stem of the input loop with the provided n-stem positions. In every -iteration of the algorithm, we loop over all residues of the loop and find the -ideal phi/psi angles to minimize the RMSD between the c-stem and the target -c-stem positions. Iterations continue until a c-stem RMSD threshold is reached -or the number of iterations hits a limit. By performing CCD, unfavorable -backbone dihedral pairs can be introduced. It is therefore optionally possible -to use torsion samplers to guide the iterative process. In this case, the -algorithm calculates the probability of observing the dihedral pair before and -after performing the phi/psi update. If the fraction after/before is smaller -than a uniform random number in the range [0,1[, the proposed dihedral pair gets -rejected. Please note, that this increases the probability of non-convergence. - -.. class:: CCD - - Class, that sets up everything you need to perform a particular loop closing - action. - - .. method:: CCD(sequence, n_stem, c_stem, torsion_sampler, max_steps, \ - rmsd_cutoff, seed) - - All runs with this CCD object will be with application of torsion samplers - to avoid moving into unfavourable regions of the backbone dihedrals. - - :param sequence: Sequence of the backbones to be closed - :param n_stem: Residue defining the n_stem. - If the residue before *n_stem* doesn't exist, the - torsion sampler will use a default residue (ALA) and - and phi angle (-1.0472) to evaluate the first angle. - :param c_stem: Residue defining the c_stem. - If the residue after *c_stem* doesn't exist, the - torsion sampler will use a default residue (ALA) and - psi angle (-0.7854) to evaluate the last angle. - :param torsion_sampler: To extract probabilities for the analysis of the - backbone dihedrals. Either a list of torsion - samplers (one for for every residue of the loop to - be closed) or a single one (used for all residues). - :param max_steps: Maximal number of iterations - :param rmsd_cutoff: The algorithm stops as soon as the c_stem of the loop to - be closed has RMSD below the *c_stem* - :param seed: Seed of random number generator to decide whether new phi/psi pair - should be accepted. - - - :type sequence: :class:`str` - :type n_stem: :class:`ost.mol.ResidueHandle` - :type c_stem: :class:`ost.mol.ResidueHandle` - :type torsion_sampler: :class:`~promod3.loop.TorsionSampler` / :class:`list` - of :class:`~promod3.loop.TorsionSampler` - :type max_steps: :class:`int` - :type rmsd_cutoff: :class:`float` - :type seed: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if a list of torsion samplers is - given with inconsistent length regarding the sequence. Another - requirement is that all backbone atoms of the stems must be - present. - - .. method:: CCD(n_stem, c_stem, max_steps, rmsd_cutoff) - - All runs with this CCD object will be without application of torsion samplers. - This is faster but might lead to weird backbone dihedral pairs. - - :param n_stem: Residue defining the n_stem - :param c_stem: Residue defining the c_stem - :param max_steps: Maximal number of iterations - :param rmsd_cutoff: The algorithm stops as soon as the c_stem of the loop to - be closed has RMSD below the given *c_stem* - - :type n_stem: :class:`ost.mol.ResidueHandle` - :type c_stem: :class:`ost.mol.ResidueHandle` - :type max_steps: :class:`int` - :type rmsd_cutoff: :class:`float` - - .. method:: Close(bb_list) - - Closes given *bb_list* with the settings set at initialization. - - :param bb_list: Loop to be closed - :type bb_list: :class:`~promod3.loop.BackboneList` - - :return: Whether *rmsd_cutoff* has been reached - :rtype: :class:`bool` - - :raises: :exc:`~exceptions.RuntimeError` if the CCD object has been - initialized with :class:`~promod3.loop.TorsionSampler` support - and the length of the *bb_list* is not consistent with the initial - *sequence*. - - -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. - - -.. class:: KIC - - Class, that sets up everything you need to perform a particular loop closing - action. - - .. method:: KIC(n_stem, c_stem) - - All runs of this KIC closing object will adapt the input loops to these - stem residues. - - :param n_stem: Residue describing the stem towards n_ter - :param c_stem: Residue describing the stem towards c_ter - - .. method:: Close(bb_list, pivot_one, pivot_two, pivot_three) - - Applies KIC algorithm, so that the output loops match the given stem residues - - :param bb_list: Loop to be closed - :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:`~promod3.loop.BackboneList` - :type pivot_one: :class:`int` - :type pivot_two: :class:`int` - :type pivot_three: :class:`int` - - :return: List of closed loops (maximum of 16 entries) - :rtype: :class:`list` of :class:`~promod3.loop.BackboneList` - - :raises: :exc:`~exceptions.RuntimeError` in case of invalid pivot indices. - - -Relaxing Backbones --------------------------------------------------------------------------------- - -In many cases one wants to quickly relax a loop. 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 loop. -Once setup, every loop of the same length and sequence can be relaxed by -the relaxer. - -.. class:: BackboneRelaxer(bb_list, ff, fix_nterm=True, fix_cterm=True) - - Sets up a molecular mechanics topology for given *bb_list*. Every - :class:`~promod3.loop.BackboneList` of same length and sequence can then be - relaxed. The parametrization is taken from *ff*, simply neglecting all - interactions to non backbone atoms. The electrostatics get neglected - completely by setting all charges to 0.0. - - :param bb_list: Basis for topology creation - :param ff: Source for parametrization - :param fix_nterm: Whether N-terminal backbone positions (N, CA, CB) should - be kept rigid during relaxation - (C and O are left to move). - :param fix_cterm: Whether C-terminal backbone positions (CA, CB, C, O) - should be kept rigid during relaxation - (N is left to move). - :type bb_list: :class:`~promod3.loop.BackboneList` - :type ff: :class:`promod3.loop.ForcefieldLookup` - :type fix_nterm: :class:`bool` - :type fix_cterm: :class:`bool` - - -.. class:: BackboneRelaxer(bb_list, density, resolution, fix_nterm=True, \ - fix_cterm=True) - - :param bb_list: Basis for topology creation - :param fix_nterm: Whether N-terminal backbone positions (N, CA, CB) should - be kept rigid during relaxation. - :param fix_cterm: Whether C-terminal backbone positions (CA, CB, C, O) - should be kept rigid during relaxation. - - :type bb_list: :class:`~promod3.loop.BackboneList` - :type fix_nterm: :class:`bool` - :type fix_cterm: :class:`bool` - - :raises: :exc:`~exceptions.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. The function possibly fails - if there are particles (almost) on top of each other, resulting in NaN - positions in the OpenMM system. The positions of **bb_list** are not touched - in this case and the function returns an infinit potential energy. - In Python you can check for that with float("inf"). - - :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:`~promod3.loop.BackboneList` - :type steps: :class:`int` - :type stop_criterion: :class:`float` - - :return: Forcefield energy upon relaxation, infinity in case of OpenMM Error - :rtype: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if *bb_list* has not the same - size or sequence as the initial one. - - - .. method:: AddNRestraint(idx, pos, force_constant=100000) - - Adds harmonic position restraint for nitrogen atom at specified residue - - :param idx: Idx of residue - :param pos: Restraint Position (in Angstrom) - :param force_constant: Force constant in kJ/mol/nm^2 - - :type idx: :class:`int` - :type pos: :class:`ost.geom.Vec3` - :type force_constant: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if *idx* is too large - - .. method:: AddCARestraint(idx, pos, force_constant=100000) - - Adds harmonic position restraint for CA atom at specified residue - - :param idx: Idx of residue - :param pos: Restraint Position (in Angstrom) - :param force_constant: Force constant in kJ/mol/nm^2 - - :type idx: :class:`int` - :type pos: :class:`ost.geom.Vec3` - :type force_constant: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if *idx* is too large - - .. method:: AddCBRestraint(idx, pos, force_constant=100000) - - Adds harmonic position restraint for CB atom at specified residue, - doesn't do anything if specified residue is a glycine - - :param idx: Idx of residue - :param pos: Restraint Position (in Angstrom) - :param force_constant: Force constant in kJ/mol/nm^2 - - :type idx: :class:`int` - :type pos: :class:`ost.geom.Vec3` - :type force_constant: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if *idx* is too large - - .. method:: AddCRestraint(idx, pos, force_constant=100000) - - Adds harmonic position restraint for C atom at specified residue - - :param idx: Idx of residue - :param pos: Restraint Position (in Angstrom) - :param force_constant: Force constant in kJ/mol/nm^2 - - :type idx: :class:`int` - :type pos: :class:`ost.geom.Vec3` - :type force_constant: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if *idx* is too large - - .. method:: AddORestraint(idx, pos, force_constant=100000) - - Adds harmonic position restraint for O atom at specified residue - - :param idx: Idx of residue - :param pos: Restraint Position (in Angstrom) - :param force_constant: Force constant in kJ/mol/nm^2 - - :type idx: :class:`int` - :type pos: :class:`ost.geom.Vec3` - :type force_constant: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if *idx* is too large - - - .. method:: SetNonBondedCutoff(nonbonded_cutoff) - - Defines cutoff to set for non bonded interactions. By default, all atom- - pairs are compared which is the fastest for small backbones (e.g. in - :meth:`CloseSmallDeletions`). Otherwise, a cutoff around 5 is reasonable as - we ignore electrostatics. - - :param nonbonded_cutoff: Cutoff to set for non bonded interactions. Negative - means no cutoff. - :type nonbonded_cutoff: :class:`float` - - .. method:: GetNonBondedCutoff(nonbonded_cutoff) - - :return: Cutoff for non bonded interactions. - :rtype: :class:`float` - - -Relaxing All Atom Loops --------------------------------------------------------------------------------- - -After the reconstruction of loop sidechains with the -:meth:`~promod3.modelling.SidechainReconstructor.Reconstruct` method of -:class:`~promod3.modelling.SidechainReconstructor`, it may be desired to -quickly relax the loop. The :class:`AllAtomRelaxer` class takes care of that. - -Example usage: - -.. literalinclude:: ../../../tests/doc/scripts/modelling_allatomrelaxer.py - -.. class:: AllAtomRelaxer(sc_data, mm_system_creator) - - Setup relaxer for a given sidechain reconstruction result and a given MM - system creator, which takes care of generating a simulation object. - - N/C stems of loop are fixed if they are non-terminal. - - :param sc_data: Sidechain reconstruction result - :type sc_data: :class:`~promod3.modelling.SidechainReconstructionData` - :param mm_system_creator: System creator to be used here - :type mm_system_creator: :class:`~promod3.loop.MmSystemCreator` - - .. method:: Run(sc_data, steps=100, stop_criterion=0.01) - - Performs steepest descent for this system and writes updated positions into - *sc_data.env_pos.all_pos*. The function possibly fails - if there are particles (almost) on top of each other, resulting in NaN - positions in the OpenMM system. The positions of *sc_data.env_pos.all_pos* - are not touched in this case and the function returns an infinit potential - energy. In Python you can check for that with float("inf"). - - :param sc_data: Sidechain reconstruction result to be updated - :type sc_data: :class:`~promod3.modelling.SidechainReconstructionData` - :param steps: Number of steepest descent steps - :type steps: :class:`int` - :param stop_criterion: If maximum force acting on a particle falls below - that threshold, the relaxation aborts. - :type stop_criterion: :class:`float` - - :return: Potential energy after relaxation, infinity in case of OpenMM Error - :rtype: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if *sc_data* is incompatible with - the one given in the constructor. - - .. method:: UpdatePositions(sc_data) - - Resets simulation positions to a new set of positions. It is assumed that - this *sc_data* object has the same amino acids as loops and surrounding and - the same disulfid bridges as the one given in the constructor. - - :param sc_data: Get new positions from *sc_data.env_pos.all_pos* - :type sc_data: :class:`~promod3.modelling.SidechainReconstructionData` - - :raises: :exc:`~exceptions.RuntimeError` if *sc_data* is incompatible with - the one given in the constructor. - - .. method:: GetSystemCreator() - - :return: MM system creator passed in the constructor - :rtype: :class:`~promod3.loop.MmSystemCreator` - - - +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Fitting Loops Into Gaps +================================================================================ + +.. currentmodule:: promod3.modelling + +Loops often need to undergo conformational changes to fit into gaps defined by +stem residues. |project| implements two algorithms performing this task: + + * Cyclic coordinate descent (CCD) [canutescu2003]_ + * Kinematic closure (KIC) [coutsias2005]_ + +In case of small gaps or small issues in the loop you might also consider the +:class:`BackboneRelaxer`. + + +CCD +-------------------------------------------------------------------------------- + +The |project| implementation of the cyclic coordinate descent first superposes +the n-stem of the input loop with the provided n-stem positions. In every +iteration of the algorithm, we loop over all residues of the loop and find the +ideal phi/psi angles to minimize the RMSD between the c-stem and the target +c-stem positions. Iterations continue until a c-stem RMSD threshold is reached +or the number of iterations hits a limit. By performing CCD, unfavorable +backbone dihedral pairs can be introduced. It is therefore optionally possible +to use torsion samplers to guide the iterative process. In this case, the +algorithm calculates the probability of observing the dihedral pair before and +after performing the phi/psi update. If the fraction after/before is smaller +than a uniform random number in the range [0,1[, the proposed dihedral pair gets +rejected. Please note, that this increases the probability of non-convergence. + +.. class:: CCD + + Class, that sets up everything you need to perform a particular loop closing + action. + + .. method:: CCD(sequence, n_stem, c_stem, torsion_sampler, max_steps, \ + rmsd_cutoff, seed) + + All runs with this CCD object will be with application of torsion samplers + to avoid moving into unfavourable regions of the backbone dihedrals. + + :param sequence: Sequence of the backbones to be closed + :param n_stem: Residue defining the n_stem. + If the residue before *n_stem* doesn't exist, the + torsion sampler will use a default residue (ALA) and + and phi angle (-1.0472) to evaluate the first angle. + :param c_stem: Residue defining the c_stem. + If the residue after *c_stem* doesn't exist, the + torsion sampler will use a default residue (ALA) and + psi angle (-0.7854) to evaluate the last angle. + :param torsion_sampler: To extract probabilities for the analysis of the + backbone dihedrals. Either a list of torsion + samplers (one for for every residue of the loop to + be closed) or a single one (used for all residues). + :param max_steps: Maximal number of iterations + :param rmsd_cutoff: The algorithm stops as soon as the c_stem of the loop to + be closed has RMSD below the *c_stem* + :param seed: Seed of random number generator to decide whether new phi/psi pair + should be accepted. + + + :type sequence: :class:`str` + :type n_stem: :class:`ost.mol.ResidueHandle` + :type c_stem: :class:`ost.mol.ResidueHandle` + :type torsion_sampler: :class:`~promod3.loop.TorsionSampler` / :class:`list` + of :class:`~promod3.loop.TorsionSampler` + :type max_steps: :class:`int` + :type rmsd_cutoff: :class:`float` + :type seed: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if a list of torsion samplers is + given with inconsistent length regarding the sequence. Another + requirement is that all backbone atoms of the stems must be + present. + + .. method:: CCD(n_stem, c_stem, max_steps, rmsd_cutoff) + + All runs with this CCD object will be without application of torsion samplers. + This is faster but might lead to weird backbone dihedral pairs. + + :param n_stem: Residue defining the n_stem + :param c_stem: Residue defining the c_stem + :param max_steps: Maximal number of iterations + :param rmsd_cutoff: The algorithm stops as soon as the c_stem of the loop to + be closed has RMSD below the given *c_stem* + + :type n_stem: :class:`ost.mol.ResidueHandle` + :type c_stem: :class:`ost.mol.ResidueHandle` + :type max_steps: :class:`int` + :type rmsd_cutoff: :class:`float` + + .. method:: Close(bb_list) + + Closes given *bb_list* with the settings set at initialization. + + :param bb_list: Loop to be closed + :type bb_list: :class:`~promod3.loop.BackboneList` + + :return: Whether *rmsd_cutoff* has been reached + :rtype: :class:`bool` + + :raises: :exc:`~exceptions.RuntimeError` if the CCD object has been + initialized with :class:`~promod3.loop.TorsionSampler` support + and the length of the *bb_list* is not consistent with the initial + *sequence*. + + +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. + + +.. class:: KIC + + Class, that sets up everything you need to perform a particular loop closing + action. + + .. method:: KIC(n_stem, c_stem) + + All runs of this KIC closing object will adapt the input loops to these + stem residues. + + :param n_stem: Residue describing the stem towards n_ter + :param c_stem: Residue describing the stem towards c_ter + + .. method:: Close(bb_list, pivot_one, pivot_two, pivot_three) + + Applies KIC algorithm, so that the output loops match the given stem residues + + :param bb_list: Loop to be closed + :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:`~promod3.loop.BackboneList` + :type pivot_one: :class:`int` + :type pivot_two: :class:`int` + :type pivot_three: :class:`int` + + :return: List of closed loops (maximum of 16 entries) + :rtype: :class:`list` of :class:`~promod3.loop.BackboneList` + + :raises: :exc:`~exceptions.RuntimeError` in case of invalid pivot indices. + + +Relaxing Backbones +-------------------------------------------------------------------------------- + +In many cases one wants to quickly relax a loop. 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 loop. +Once setup, every loop of the same length and sequence can be relaxed by +the relaxer. + +.. class:: BackboneRelaxer(bb_list, ff, fix_nterm=True, fix_cterm=True) + + Sets up a molecular mechanics topology for given *bb_list*. Every + :class:`~promod3.loop.BackboneList` of same length and sequence can then be + relaxed. The parametrization is taken from *ff*, simply neglecting all + interactions to non backbone atoms. The electrostatics get neglected + completely by setting all charges to 0.0. + + :param bb_list: Basis for topology creation + :param ff: Source for parametrization + :param fix_nterm: Whether N-terminal backbone positions (N, CA, CB) should + be kept rigid during relaxation + (C and O are left to move). + :param fix_cterm: Whether C-terminal backbone positions (CA, CB, C, O) + should be kept rigid during relaxation + (N is left to move). + :type bb_list: :class:`~promod3.loop.BackboneList` + :type ff: :class:`promod3.loop.ForcefieldLookup` + :type fix_nterm: :class:`bool` + :type fix_cterm: :class:`bool` + + +.. class:: BackboneRelaxer(bb_list, density, resolution, fix_nterm=True, \ + fix_cterm=True) + + :param bb_list: Basis for topology creation + :param fix_nterm: Whether N-terminal backbone positions (N, CA, CB) should + be kept rigid during relaxation. + :param fix_cterm: Whether C-terminal backbone positions (CA, CB, C, O) + should be kept rigid during relaxation. + + :type bb_list: :class:`~promod3.loop.BackboneList` + :type fix_nterm: :class:`bool` + :type fix_cterm: :class:`bool` + + :raises: :exc:`~exceptions.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. The function possibly fails + if there are particles (almost) on top of each other, resulting in NaN + positions in the OpenMM system. The positions of **bb_list** are not touched + in this case and the function returns an infinit potential energy. + In Python you can check for that with float("inf"). + + :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:`~promod3.loop.BackboneList` + :type steps: :class:`int` + :type stop_criterion: :class:`float` + + :return: Forcefield energy upon relaxation, infinity in case of OpenMM Error + :rtype: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if *bb_list* has not the same + size or sequence as the initial one. + + + .. method:: AddNRestraint(idx, pos, force_constant=100000) + + Adds harmonic position restraint for nitrogen atom at specified residue + + :param idx: Idx of residue + :param pos: Restraint Position (in Angstrom) + :param force_constant: Force constant in kJ/mol/nm^2 + + :type idx: :class:`int` + :type pos: :class:`ost.geom.Vec3` + :type force_constant: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if *idx* is too large + + .. method:: AddCARestraint(idx, pos, force_constant=100000) + + Adds harmonic position restraint for CA atom at specified residue + + :param idx: Idx of residue + :param pos: Restraint Position (in Angstrom) + :param force_constant: Force constant in kJ/mol/nm^2 + + :type idx: :class:`int` + :type pos: :class:`ost.geom.Vec3` + :type force_constant: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if *idx* is too large + + .. method:: AddCBRestraint(idx, pos, force_constant=100000) + + Adds harmonic position restraint for CB atom at specified residue, + doesn't do anything if specified residue is a glycine + + :param idx: Idx of residue + :param pos: Restraint Position (in Angstrom) + :param force_constant: Force constant in kJ/mol/nm^2 + + :type idx: :class:`int` + :type pos: :class:`ost.geom.Vec3` + :type force_constant: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if *idx* is too large + + .. method:: AddCRestraint(idx, pos, force_constant=100000) + + Adds harmonic position restraint for C atom at specified residue + + :param idx: Idx of residue + :param pos: Restraint Position (in Angstrom) + :param force_constant: Force constant in kJ/mol/nm^2 + + :type idx: :class:`int` + :type pos: :class:`ost.geom.Vec3` + :type force_constant: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if *idx* is too large + + .. method:: AddORestraint(idx, pos, force_constant=100000) + + Adds harmonic position restraint for O atom at specified residue + + :param idx: Idx of residue + :param pos: Restraint Position (in Angstrom) + :param force_constant: Force constant in kJ/mol/nm^2 + + :type idx: :class:`int` + :type pos: :class:`ost.geom.Vec3` + :type force_constant: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if *idx* is too large + + + .. method:: SetNonBondedCutoff(nonbonded_cutoff) + + Defines cutoff to set for non bonded interactions. By default, all atom- + pairs are compared which is the fastest for small backbones (e.g. in + :meth:`CloseSmallDeletions`). Otherwise, a cutoff around 5 is reasonable as + we ignore electrostatics. + + :param nonbonded_cutoff: Cutoff to set for non bonded interactions. Negative + means no cutoff. + :type nonbonded_cutoff: :class:`float` + + .. method:: GetNonBondedCutoff(nonbonded_cutoff) + + :return: Cutoff for non bonded interactions. + :rtype: :class:`float` + + +Relaxing All Atom Loops +-------------------------------------------------------------------------------- + +After the reconstruction of loop sidechains with the +:meth:`~promod3.modelling.SidechainReconstructor.Reconstruct` method of +:class:`~promod3.modelling.SidechainReconstructor`, it may be desired to +quickly relax the loop. The :class:`AllAtomRelaxer` class takes care of that. + +Example usage: + +.. literalinclude:: ../../../tests/doc/scripts/modelling_allatomrelaxer.py + +.. class:: AllAtomRelaxer(sc_data, mm_system_creator) + + Setup relaxer for a given sidechain reconstruction result and a given MM + system creator, which takes care of generating a simulation object. + + N/C stems of loop are fixed if they are non-terminal. + + :param sc_data: Sidechain reconstruction result + :type sc_data: :class:`~promod3.modelling.SidechainReconstructionData` + :param mm_system_creator: System creator to be used here + :type mm_system_creator: :class:`~promod3.loop.MmSystemCreator` + + .. method:: Run(sc_data, steps=100, stop_criterion=0.01) + + Performs steepest descent for this system and writes updated positions into + *sc_data.env_pos.all_pos*. The function possibly fails + if there are particles (almost) on top of each other, resulting in NaN + positions in the OpenMM system. The positions of *sc_data.env_pos.all_pos* + are not touched in this case and the function returns an infinit potential + energy. In Python you can check for that with float("inf"). + + :param sc_data: Sidechain reconstruction result to be updated + :type sc_data: :class:`~promod3.modelling.SidechainReconstructionData` + :param steps: Number of steepest descent steps + :type steps: :class:`int` + :param stop_criterion: If maximum force acting on a particle falls below + that threshold, the relaxation aborts. + :type stop_criterion: :class:`float` + + :return: Potential energy after relaxation, infinity in case of OpenMM Error + :rtype: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if *sc_data* is incompatible with + the one given in the constructor. + + .. method:: UpdatePositions(sc_data) + + Resets simulation positions to a new set of positions. It is assumed that + this *sc_data* object has the same amino acids as loops and surrounding and + the same disulfid bridges as the one given in the constructor. + + :param sc_data: Get new positions from *sc_data.env_pos.all_pos* + :type sc_data: :class:`~promod3.modelling.SidechainReconstructionData` + + :raises: :exc:`~exceptions.RuntimeError` if *sc_data* is incompatible with + the one given in the constructor. + + .. method:: GetSystemCreator() + + :return: MM system creator passed in the constructor + :rtype: :class:`~promod3.loop.MmSystemCreator` + + + diff --git a/doc/html/_sources/modelling/model_checking.rst.txt b/doc/html/_sources/modelling/model_checking.txt similarity index 97% rename from doc/html/_sources/modelling/model_checking.rst.txt rename to doc/html/_sources/modelling/model_checking.txt index 7af14d04fa2ffd0c9f9442937908e3afc2bb272a..ab5b5eb9eec534e44b685fb09571c30ce77ed2a7 100644 --- a/doc/html/_sources/modelling/model_checking.rst.txt +++ b/doc/html/_sources/modelling/model_checking.txt @@ -1,45 +1,45 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Model Checking -================================================================================ - -.. currentmodule:: promod3.modelling - -This chapter describes additional functionality to check models. Some of this -functionality is used within the modelling pipeline. - -Detecting Ring Punches --------------------------------------------------------------------------------- - -.. autofunction:: GetRings - -.. autofunction:: GetRingPunches - -.. autofunction:: HasRingPunches - -.. autofunction:: FilterCandidates - -.. autofunction:: FilterCandidatesWithSC - -Model Checking With MolProbity --------------------------------------------------------------------------------- - -.. autofunction:: RunMolProbity - -.. autofunction:: RunMolProbityEntity - +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Model Checking +================================================================================ + +.. currentmodule:: promod3.modelling + +This chapter describes additional functionality to check models. Some of this +functionality is used within the modelling pipeline. + +Detecting Ring Punches +-------------------------------------------------------------------------------- + +.. autofunction:: GetRings + +.. autofunction:: GetRingPunches + +.. autofunction:: HasRingPunches + +.. autofunction:: FilterCandidates + +.. autofunction:: FilterCandidatesWithSC + +Model Checking With MolProbity +-------------------------------------------------------------------------------- + +.. autofunction:: RunMolProbity + +.. autofunction:: RunMolProbityEntity + .. autofunction:: ReportMolProbityScores \ No newline at end of file diff --git a/doc/html/_sources/modelling/monte_carlo.rst.txt b/doc/html/_sources/modelling/monte_carlo.txt similarity index 97% rename from doc/html/_sources/modelling/monte_carlo.rst.txt rename to doc/html/_sources/modelling/monte_carlo.txt index ad1420fe003c6b5ceff1c4a00703028d5f16bc58..31f5dea53ab190d55f0aa3485cc92e00d7dbd7c6 100644 --- a/doc/html/_sources/modelling/monte_carlo.rst.txt +++ b/doc/html/_sources/modelling/monte_carlo.txt @@ -1,587 +1,587 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Generating Loops De Novo -================================================================================ - -.. currentmodule:: promod3.modelling - -The Monte Carlo capabilities of |project| 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 and we define objects for -each step: - -* :ref:`mc-sampler-object`: Propose new conformation -* :ref:`mc-closer-object`: Adapt new conformation to the environment -* :ref:`mc-scorer-object`: Score the new conformation -* :ref:`mc-cooler-object`: Accept/Reject new conformation based on the score and - a temperature controlled Metropolis criterion - -These steps can be arbitrarily combined to generate custom Monte Carlo sampling -pipelines. This combination either happens manually or by using the convenient -:func:`SampleMonteCarlo` function. For example, here we show how to apply Monte -Carlo sampling to the N-terminal part of crambin: - -.. literalinclude:: ../../../tests/doc/scripts/modelling_monte_carlo.py - -.. autofunction:: SampleMonteCarlo - -.. _mc-sampler-object: - -Sampler Object --------------------------------------------------------------------------------- - -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. You can either use one of the -provided samplers or any object that implements the functionality of -:class:`SamplerBase`. - - -.. class:: SamplerBase - - Abstract base class defining the functions that must be implemented by any - sampler. - - .. method:: Initialize(bb_list) - - Supposed to initialize structural information from scratch. The sequence - of the generated :class:`promod3.loop.BackboneList` is taken from *bb_list*. - - :param bb_list: Passed by reference, so the resulting - :class:`promod3.loop.BackboneList` is assigned to this - parameter. Sequence / length stay the same. - - :type bb_list: :class:`promod3.loop.BackboneList` - - :returns: None - - .. method:: ProposeStep(actual_positions, proposed_positions) - - Takes current positions and proposes a new conformation. There is no - guarantee on maintining any special RT state. The :ref:`mc-closer-object` - is supposed to sort that out. - - :param actual_positions: Starting point, must not change when calling this - function. - :param proposed_positions: Passed by reference, so the resulting - :class:`promod3.loop.BackboneList` is assigned to - this parameter. - - :type actual_positions: :class:`promod3.loop.BackboneList` - :type proposed_positions: :class:`promod3.loop.BackboneList` - - :returns: None - - -.. 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:`~promod3.loop.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:`~promod3.loop.BackboneList` by randomly drawing - phi/psi dihedral angles. - - :param bb_list: The newly created conformation gets stored in here - :type bb_list: :class:`~promod3.loop.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:`~promod3.loop.BackboneList` - :type proposed_positions: :class:`~promod3.loop.BackboneList` - - :raises: :exc:`~exceptions.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:`~promod3.loop.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:`~promod3.loop.BackboneList` by randomly drawing - phi/psi dihedral angles. - - :param bb_list: The newly created conformation gets stored in here - :type bb_list: :class:`~promod3.loop.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:`~promod3.loop.BackboneList` - :type proposed_positions: :class:`~promod3.loop.BackboneList` - - :raises: :exc:`~exceptions.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:: FragmentSampler(sequence, fraggers,\ - init_bb_list=BackboneList(sequence), \ - sampling_start_index=0, init_fragments=3, seed=0) - - The FragmentSampler samples by replacing full fragments originating from a - list of :class:`~promod3.loop.Fragger` objects. The region, that actually gets - sampled is determined by *sampling_start_index* and number of - :class:`~promod3.loop.Fragger` objects being available. All parts not covered - by any fragger remain rigid. - - :param sequence: Overall sequence - :param fraggers: A list of :class:`~promod3.loop.Fragger` objects. The first - fragger covers the region starting at the letter - *sampling_start_index* of the *sequence* and so on. - All fraggers must contain fragments of equal size. - :param init_bb_list: Initial conformation, that serves as a starting point for - sampling. The default gets constructed using the default - constructor of :class:`~promod3.loop.BackboneList` and - results in a helix. - :param sampling_start_index: Defines the beginning of the region, that actually - gets sampled. - :param init_fragments: When calling the Initialize function, the positions get set - to the ones of *init_bb_list*. This is the number of - fragments that gets randomly selected and inserted. - :param seed: Seed for the internal random number generators - - :type sequence: :class:`str` - :type fraggers: :class:`list` - :type init_bb_list: :class:`~promod3.loop.BackboneList` - :type sampling_start_index: :class:`int` - :type init_fragments: :class:`int` - :type seed: :class:`int` - - - .. method:: Initialize(bb_list) - - Sets up a new :class:`~promod3.loop.BackboneList` by setting the setting - bb_list = *init_bb_list* and randomly replace n fragments - with n = *init_fragments* - - :param bb_list: The newly created conformation gets stored in here - :type bb_list: :class:`~promod3.loop.BackboneList` - - - .. method:: ProposeStep(actual_step, proposed_position) - - Randomly selects a position and selects a random fragment from the according - fragger object to alter the conformation. - - :param actual_positions: Conformation to be changed - :param proposed_positions: Changed conformation gets stored in here - - :type actual_positions: :class:`~promod3.loop.BackboneList` - :type proposed_positions: :class:`~promod3.loop.BackboneList` - - - -.. _mc-closer-object: - -Closer Object --------------------------------------------------------------------------------- - -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. You can either -use any of the provided closers or any object that implements the -functionality of :class:`CloserBase`. - -.. class:: CloserBase - - Abstract base class defining the functions that must be implemented by any - closer. - - .. method:: Close(actual_positions, closed_positions) - - Takes current positions and proposes a new conformation that fits to a - given environment. - - :param actual_positions: Starting point, must not change when calling this - function. - :param closed_positions: Passed by reference, so the resulting - :class:`promod3.loop.BackboneList` is assigned to - this parameter. - - :type actual_positions: :class:`promod3.loop.BackboneList` - :type closed_positions: :class:`promod3.loop.BackboneList` - - :returns: Whether closing procedure was successful - :rtype: :class:`bool` - - -.. 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. See :meth:`~CCD.CCD()`. - - :param c_stem: Defining stem positions the closed conformation - should adapt. See :meth:`~CCD.CCD()`. - - :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 sampler 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:`~promod3.loop.TorsionSampler` / :class:`list` - of :class:`~promod3.loop.TorsionSampler` - :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:`~promod3.loop.BackboneList` - :type closed_positions: :class:`~promod3.loop.BackboneList` - - :returns: Whether CCD converged - - -.. class:: DirtyCCDCloser(n_stem, c_stem) - - 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. There is no check for reasonable backbone - dihedral angles as it is the case for the :class:`CCDCloser`. - - :param n_stem: Defining stem positions the closed conformation - should adapt. - - :param c_stem: Defining stem positions the closed conformation - should adapt. - - :type n_stem: :class:`ost.mol.ResidueHandle` - :type c_stem: :class:`ost.mol.ResidueHandle` - - .. 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:`~promod3.loop.BackboneList` - :type closed_positions: :class:`~promod3.loop.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 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:`~promod3.loop.BackboneList` - :type closed_positions: :class:`~promod3.loop.BackboneList` - - :returns: Whether KIC found a solution - - -.. class:: NTerminalCloser(c_stem) - - The :class:`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` - - - .. method:: Close(actual_positions, closed_positions) - - :param actual_positions: Conformation to be closed (or in this case - transformed in space). - :param closed_positions: Closed (transformed) conformation gets stored in - here. - - :type actual_positions: :class:`~promod3.loop.BackboneList` - :type closed_positions: :class:`~promod3.loop.BackboneList` - - :returns: Whether closing was successful - - -.. class:: CTerminalCloser(n_stem) - - The :class:`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` - - .. method:: Close(actual_positions,closed_positions) - - :param actual_positions: Conformation to be closed (or in this case - transformed in space). - :param closed_positions: Closed (transformed) conformation gets stored in - here. - - :type actual_positions: :class:`~promod3.loop.BackboneList` - :type closed_positions: :class:`~promod3.loop.BackboneList` - - :returns: Whether closing was successful - - -.. class:: DeNovoCloser - - In case of sampling a full stretch, you dont have external constraints. The - closer has a rather boring job in this case. - - .. method:: Close(actual_positions,closed_positions) - - Does absolutely nothing, except copying over the coordinates from - *actual_positions* to *closed_positions* and return true. - - - - -.. _mc-scorer-object: - -Scorer Object --------------------------------------------------------------------------------- - -The scorer asses a proposed conformation and are intended to return a pseudo -energy, the lower the better. You can either use the provided scorer or any -object implementing the functionality defined in :class:`ScorerBase`. - - -.. class:: ScorerBase - - Abstract base class defining the functions that must be implemented by any - scorer. - - .. method:: GetScore(bb_list) - - Takes coordinates and spits out a score given some internal structural - environment. - - :param bb_list: Coordinates to be scored - :type bb_list: :class:`promod3.loop.BackboneList` - - :returns: The score - :rtype: :class:`float` - -.. class:: LinearScorer(scorer, scorer_env, start_resnum, num_residues,\ - chain_idx, linear_weights) - - The LinearScorer allows to combine the scores available from - :class:`~promod3.scoring.BackboneOverallScorer` in a linear manner. See - :meth:`~promod3.scoring.BackboneOverallScorer.CalculateLinearCombination` for a - detailed description of the arguments. - - .. warning:: The provided *scorer_env* will be altered in every - :func:`GetScore` call. - You might consider the Stash / Pop mechanism of the - :class:`~promod3.scoring.BackboneScoreEnv` to restore to the - original state once the sampling is done. - - :param scorer: Scorer Object with set environment for the particular loop - modelling problem. - :type scorer: :class:`~promod3.scoring.BackboneOverallScorer` - :param scorer_env: The environment that is linked to the *scorer* - :type scorer_env: :class:`~promod3.scoring.BackboneScoreEnv` - :param start_resnum: Res. number defining the position in the SEQRES. - :type start_resnum: :class:`int` - :param num_residues: Number of residues to score - :type num_residues: :class:`int` - :param chain_idx: Index of chain the loop(s) belong to. - :type chain_idx: :class:`int` - :param linear_weights: Weights for each desired scorer. - :type linear_weights: :class:`dict` (keys: :class:`str`, - values: :class:`float`) - - :raises: :exc:`~exceptions.RuntimeError` if *linear_weights* has a *key* for - which no scorer exists - - .. method:: GetScore(bb_list) - - :param bb_list: Loop to be scored. - :type bb_list: :class:`~promod3.loop.BackboneList` - - :return: A linear combination of the scores - :rtype: :class:`float` - - -.. _mc-cooler-object: - -Cooler Object --------------------------------------------------------------------------------- - -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. You can either use the provided cooler -or any object implementing the functionality defined in -:class:`CoolerBase`. - -.. class:: CoolerBase - - Abstract base class defining the functions that must be implemented by any - cooler. - - .. method:: GetTemperature() - - :returns: The Temperature - :rtype: :class:`float` - - .. method:: Reset() - - Resets to original state, so a new Monte Carlo trajectory can be generated - - -.. class:: ExponentialCooler(change_frequency, start_temperature, cooling_factor) - - The exponential cooler starts with a given *start_temperature* and counts the - calls to its :meth:`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* and the - internal counter to 0 +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Generating Loops De Novo +================================================================================ + +.. currentmodule:: promod3.modelling + +The Monte Carlo capabilities of |project| 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 and we define objects for +each step: + +* :ref:`mc-sampler-object`: Propose new conformation +* :ref:`mc-closer-object`: Adapt new conformation to the environment +* :ref:`mc-scorer-object`: Score the new conformation +* :ref:`mc-cooler-object`: Accept/Reject new conformation based on the score and + a temperature controlled Metropolis criterion + +These steps can be arbitrarily combined to generate custom Monte Carlo sampling +pipelines. This combination either happens manually or by using the convenient +:func:`SampleMonteCarlo` function. For example, here we show how to apply Monte +Carlo sampling to the N-terminal part of crambin: + +.. literalinclude:: ../../../tests/doc/scripts/modelling_monte_carlo.py + +.. autofunction:: SampleMonteCarlo + +.. _mc-sampler-object: + +Sampler Object +-------------------------------------------------------------------------------- + +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. You can either use one of the +provided samplers or any object that implements the functionality of +:class:`SamplerBase`. + + +.. class:: SamplerBase + + Abstract base class defining the functions that must be implemented by any + sampler. + + .. method:: Initialize(bb_list) + + Supposed to initialize structural information from scratch. The sequence + of the generated :class:`promod3.loop.BackboneList` is taken from *bb_list*. + + :param bb_list: Passed by reference, so the resulting + :class:`promod3.loop.BackboneList` is assigned to this + parameter. Sequence / length stay the same. + + :type bb_list: :class:`promod3.loop.BackboneList` + + :returns: None + + .. method:: ProposeStep(actual_positions, proposed_positions) + + Takes current positions and proposes a new conformation. There is no + guarantee on maintining any special RT state. The :ref:`mc-closer-object` + is supposed to sort that out. + + :param actual_positions: Starting point, must not change when calling this + function. + :param proposed_positions: Passed by reference, so the resulting + :class:`promod3.loop.BackboneList` is assigned to + this parameter. + + :type actual_positions: :class:`promod3.loop.BackboneList` + :type proposed_positions: :class:`promod3.loop.BackboneList` + + :returns: None + + +.. 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:`~promod3.loop.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:`~promod3.loop.BackboneList` by randomly drawing + phi/psi dihedral angles. + + :param bb_list: The newly created conformation gets stored in here + :type bb_list: :class:`~promod3.loop.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:`~promod3.loop.BackboneList` + :type proposed_positions: :class:`~promod3.loop.BackboneList` + + :raises: :exc:`~exceptions.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:`~promod3.loop.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:`~promod3.loop.BackboneList` by randomly drawing + phi/psi dihedral angles. + + :param bb_list: The newly created conformation gets stored in here + :type bb_list: :class:`~promod3.loop.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:`~promod3.loop.BackboneList` + :type proposed_positions: :class:`~promod3.loop.BackboneList` + + :raises: :exc:`~exceptions.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:: FragmentSampler(sequence, fraggers,\ + init_bb_list=BackboneList(sequence), \ + sampling_start_index=0, init_fragments=3, seed=0) + + The FragmentSampler samples by replacing full fragments originating from a + list of :class:`~promod3.loop.Fragger` objects. The region, that actually gets + sampled is determined by *sampling_start_index* and number of + :class:`~promod3.loop.Fragger` objects being available. All parts not covered + by any fragger remain rigid. + + :param sequence: Overall sequence + :param fraggers: A list of :class:`~promod3.loop.Fragger` objects. The first + fragger covers the region starting at the letter + *sampling_start_index* of the *sequence* and so on. + All fraggers must contain fragments of equal size. + :param init_bb_list: Initial conformation, that serves as a starting point for + sampling. The default gets constructed using the default + constructor of :class:`~promod3.loop.BackboneList` and + results in a helix. + :param sampling_start_index: Defines the beginning of the region, that actually + gets sampled. + :param init_fragments: When calling the Initialize function, the positions get set + to the ones of *init_bb_list*. This is the number of + fragments that gets randomly selected and inserted. + :param seed: Seed for the internal random number generators + + :type sequence: :class:`str` + :type fraggers: :class:`list` + :type init_bb_list: :class:`~promod3.loop.BackboneList` + :type sampling_start_index: :class:`int` + :type init_fragments: :class:`int` + :type seed: :class:`int` + + + .. method:: Initialize(bb_list) + + Sets up a new :class:`~promod3.loop.BackboneList` by setting the setting + bb_list = *init_bb_list* and randomly replace n fragments + with n = *init_fragments* + + :param bb_list: The newly created conformation gets stored in here + :type bb_list: :class:`~promod3.loop.BackboneList` + + + .. method:: ProposeStep(actual_step, proposed_position) + + Randomly selects a position and selects a random fragment from the according + fragger object to alter the conformation. + + :param actual_positions: Conformation to be changed + :param proposed_positions: Changed conformation gets stored in here + + :type actual_positions: :class:`~promod3.loop.BackboneList` + :type proposed_positions: :class:`~promod3.loop.BackboneList` + + + +.. _mc-closer-object: + +Closer Object +-------------------------------------------------------------------------------- + +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. You can either +use any of the provided closers or any object that implements the +functionality of :class:`CloserBase`. + +.. class:: CloserBase + + Abstract base class defining the functions that must be implemented by any + closer. + + .. method:: Close(actual_positions, closed_positions) + + Takes current positions and proposes a new conformation that fits to a + given environment. + + :param actual_positions: Starting point, must not change when calling this + function. + :param closed_positions: Passed by reference, so the resulting + :class:`promod3.loop.BackboneList` is assigned to + this parameter. + + :type actual_positions: :class:`promod3.loop.BackboneList` + :type closed_positions: :class:`promod3.loop.BackboneList` + + :returns: Whether closing procedure was successful + :rtype: :class:`bool` + + +.. 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. See :meth:`~CCD.CCD()`. + + :param c_stem: Defining stem positions the closed conformation + should adapt. See :meth:`~CCD.CCD()`. + + :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 sampler 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:`~promod3.loop.TorsionSampler` / :class:`list` + of :class:`~promod3.loop.TorsionSampler` + :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:`~promod3.loop.BackboneList` + :type closed_positions: :class:`~promod3.loop.BackboneList` + + :returns: Whether CCD converged + + +.. class:: DirtyCCDCloser(n_stem, c_stem) + + 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. There is no check for reasonable backbone + dihedral angles as it is the case for the :class:`CCDCloser`. + + :param n_stem: Defining stem positions the closed conformation + should adapt. + + :param c_stem: Defining stem positions the closed conformation + should adapt. + + :type n_stem: :class:`ost.mol.ResidueHandle` + :type c_stem: :class:`ost.mol.ResidueHandle` + + .. 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:`~promod3.loop.BackboneList` + :type closed_positions: :class:`~promod3.loop.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 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:`~promod3.loop.BackboneList` + :type closed_positions: :class:`~promod3.loop.BackboneList` + + :returns: Whether KIC found a solution + + +.. class:: NTerminalCloser(c_stem) + + The :class:`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` + + + .. method:: Close(actual_positions, closed_positions) + + :param actual_positions: Conformation to be closed (or in this case + transformed in space). + :param closed_positions: Closed (transformed) conformation gets stored in + here. + + :type actual_positions: :class:`~promod3.loop.BackboneList` + :type closed_positions: :class:`~promod3.loop.BackboneList` + + :returns: Whether closing was successful + + +.. class:: CTerminalCloser(n_stem) + + The :class:`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` + + .. method:: Close(actual_positions,closed_positions) + + :param actual_positions: Conformation to be closed (or in this case + transformed in space). + :param closed_positions: Closed (transformed) conformation gets stored in + here. + + :type actual_positions: :class:`~promod3.loop.BackboneList` + :type closed_positions: :class:`~promod3.loop.BackboneList` + + :returns: Whether closing was successful + + +.. class:: DeNovoCloser + + In case of sampling a full stretch, you dont have external constraints. The + closer has a rather boring job in this case. + + .. method:: Close(actual_positions,closed_positions) + + Does absolutely nothing, except copying over the coordinates from + *actual_positions* to *closed_positions* and return true. + + + + +.. _mc-scorer-object: + +Scorer Object +-------------------------------------------------------------------------------- + +The scorer asses a proposed conformation and are intended to return a pseudo +energy, the lower the better. You can either use the provided scorer or any +object implementing the functionality defined in :class:`ScorerBase`. + + +.. class:: ScorerBase + + Abstract base class defining the functions that must be implemented by any + scorer. + + .. method:: GetScore(bb_list) + + Takes coordinates and spits out a score given some internal structural + environment. + + :param bb_list: Coordinates to be scored + :type bb_list: :class:`promod3.loop.BackboneList` + + :returns: The score + :rtype: :class:`float` + +.. class:: LinearScorer(scorer, scorer_env, start_resnum, num_residues,\ + chain_idx, linear_weights) + + The LinearScorer allows to combine the scores available from + :class:`~promod3.scoring.BackboneOverallScorer` in a linear manner. See + :meth:`~promod3.scoring.BackboneOverallScorer.CalculateLinearCombination` for a + detailed description of the arguments. + + .. warning:: The provided *scorer_env* will be altered in every + :func:`GetScore` call. + You might consider the Stash / Pop mechanism of the + :class:`~promod3.scoring.BackboneScoreEnv` to restore to the + original state once the sampling is done. + + :param scorer: Scorer Object with set environment for the particular loop + modelling problem. + :type scorer: :class:`~promod3.scoring.BackboneOverallScorer` + :param scorer_env: The environment that is linked to the *scorer* + :type scorer_env: :class:`~promod3.scoring.BackboneScoreEnv` + :param start_resnum: Res. number defining the position in the SEQRES. + :type start_resnum: :class:`int` + :param num_residues: Number of residues to score + :type num_residues: :class:`int` + :param chain_idx: Index of chain the loop(s) belong to. + :type chain_idx: :class:`int` + :param linear_weights: Weights for each desired scorer. + :type linear_weights: :class:`dict` (keys: :class:`str`, + values: :class:`float`) + + :raises: :exc:`~exceptions.RuntimeError` if *linear_weights* has a *key* for + which no scorer exists + + .. method:: GetScore(bb_list) + + :param bb_list: Loop to be scored. + :type bb_list: :class:`~promod3.loop.BackboneList` + + :return: A linear combination of the scores + :rtype: :class:`float` + + +.. _mc-cooler-object: + +Cooler Object +-------------------------------------------------------------------------------- + +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. You can either use the provided cooler +or any object implementing the functionality defined in +:class:`CoolerBase`. + +.. class:: CoolerBase + + Abstract base class defining the functions that must be implemented by any + cooler. + + .. method:: GetTemperature() + + :returns: The Temperature + :rtype: :class:`float` + + .. method:: Reset() + + Resets to original state, so a new Monte Carlo trajectory can be generated + + +.. class:: ExponentialCooler(change_frequency, start_temperature, cooling_factor) + + The exponential cooler starts with a given *start_temperature* and counts the + calls to its :meth:`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* and the + internal counter to 0 diff --git a/doc/html/_sources/modelling/pipeline.rst.txt b/doc/html/_sources/modelling/pipeline.txt similarity index 97% rename from doc/html/_sources/modelling/pipeline.rst.txt rename to doc/html/_sources/modelling/pipeline.txt index 3e5b83497356697c0dc5ed3dbd2a86f395102c34..3e90542c05f05af6398f4dd9bc514be793c4dcaf 100644 --- a/doc/html/_sources/modelling/pipeline.rst.txt +++ b/doc/html/_sources/modelling/pipeline.txt @@ -1,445 +1,445 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Modelling Pipeline -================================================================================ - -.. currentmodule:: promod3.modelling - -A protein homology modelling pipeline has the following main steps: - -- Build a raw model from the template (see :func:`BuildRawModel` function) -- Perform loop modelling to close (or remove) all gaps (see functions - :func:`CloseSmallDeletions`, :func:`RemoveTerminalGaps`, - :func:`MergeGapsByDistance`, :func:`FillLoopsByDatabase`, - :func:`FillLoopsByMonteCarlo`, :func:`CloseLargeDeletions` or - :func:`CloseGaps` that calls all these functions using predefined - heuristics) -- Build sidechains (see :func:`BuildSidechains` function) -- Minimize energy of final model using molecular mechanics - (see :func:`MinimizeModelEnergy` function) - -The last steps to go from a raw model to a final model can easily be executed -with the :func:`BuildFromRawModel` function. If you want to run and tweak the -internal steps, you can start with the following code and adapt it to your -purposes: - -.. _modelling_steps_example: - -.. literalinclude:: ../../../tests/doc/scripts/modelling_steps.py - - -Build Raw Modelling Handle --------------------------------------------------------------------------------- - -.. class:: ModellingHandle - - Handles the result for structure model building and provides high-level methods - to turn an initial raw model (see :func:`~promod3.modelling.BuildRawModel`) - into a complete protein model by removing any existing gaps. - - .. attribute:: model - - The resulting model. This includes one chain per target chain (in the same - order as the sequences in :attr:`seqres`) and (if they were included) a - chain named '_' for ligands. You can therefore access `model.chains` items - and :attr:`seqres` items with the same indexing and the optional ligand - chain follows afterwards. - - :type: :class:`~ost.mol.EntityHandle` - - .. attribute:: gaps - - List of gaps in the model that could not be copied from the template. These - gaps may be the result of insertions/deletions in the alignment or due to - missing or incomplete backbone coordinates in the template structure. - Gaps of different chains are appended one after another. - - :type: :class:`StructuralGapList` - - .. attribute:: seqres - - List of sequences with one :class:`~ost.seq.SequenceHandle` for each chain - of the target protein. - - :type: :class:`~ost.seq.SequenceList` - - .. attribute:: profiles - - List of profiles with one :class:`ost.seq.ProfileHandle` for each chain of - the target protein (same order as in :attr:`seqres`). Please note, that this - attribute won't be set by simply calling :func:`BuildFromRawModel`. You have - to fill it manually or even better by the convenient function - :func:`SetSequenceProfiles`, to ensure consistency with the seqres. - - :type: :class:`list` of :class:`ost.seq.ProfileHandle` - - .. attribute:: psipred_predictions - - List of predictions with one :class:`promod3.loop.PsipredPrediction` for - each chain of the target protein (same order as in :attr:`seqres`). Please - note, that this attribute won't be set by simply calling - :func:`BuildFromRawModel`. You have to fill it manually or even better by - the convenient function :func:`SetPsipredPredictions`, to ensure - consistency with the seqres. - - :type: :class:`list` of :class:`~promod3.loop.PsipredPrediction` - - .. attribute:: backbone_scorer_env - - Backbone score environment attached to this handle. A default environment is - set with :func:`SetupDefaultBackboneScoring` when needed. Additional - information can be added to the environment before running the pipeline - steps. - - :type: :class:`~promod3.scoring.BackboneScoreEnv` - - .. attribute:: backbone_scorer - - Backbone scorer container attached to this handle. A default set of scorers - is initialized with :func:`SetupDefaultBackboneScoring` when needed. - - :type: :class:`~promod3.scoring.BackboneOverallScorer` - - .. attribute:: all_atom_scorer_env - - All atom environment attached to this handle for scoring. A default - environment is set with :func:`SetupDefaultAllAtomScoring` when needed. This - environment is for temporary work only and is only updated to score loops. - It is not to be updated when loops are chosen and added to the final model. - - :type: :class:`~promod3.loop.AllAtomEnv` - - .. attribute:: all_atom_scorer - - All atom scorer container attached to this handle. A default set of scorers - is initialized with :func:`SetupDefaultAllAtomScoring` when needed. - - :type: :class:`~promod3.scoring.AllAtomOverallScorer` - - .. attribute:: all_atom_sidechain_env - - All atom environment attached to this handle for sidechain reconstruction. A - default environment is set with :func:`SetupDefaultAllAtomScoring` when - needed. - - :type: :class:`~promod3.loop.AllAtomEnv` - - .. attribute:: sidechain_reconstructor - - A sidechain reconstructor to add sidechains to loops prior to all atom - scoring. A default one is set with :func:`SetupDefaultAllAtomScoring` when - needed. - - :type: :class:`~promod3.modelling.SidechainReconstructor` - - .. attribute:: fragger_handles - - Optional attribute which is set in :meth:`SetFraggerHandles`. Use - :meth:`hasattr` to check if it's available. If it's set, it is used in - :meth:`BuildFromRawModel`. - - :type: :class:`list` of :class:`FraggerHandle` - - .. attribute:: modelling_issues - - Optional attribute which is set in :meth:`AddModellingIssue`. Use - :meth:`hasattr` to check if it's available. If it's set, it can be used to - check issues which occurred in :meth:`BuildFromRawModel` (see - :meth:`MinimizeModelEnergy` and :meth:`CheckFinalModel` for details). - - :type: :class:`list` of :class:`ModellingIssue` - - .. method:: Copy() - - Generates a deep copy. Everything will be copied over to the returned - :class:`ModellingHandle`, except the potentially set scoring members - :attr:`~ModellingHandle.backbone_scorer`, - :attr:`~ModellingHandle.backbone_scorer_env`, - :attr:`~ModellingHandle.all_atom_scorer_env`, - :attr:`~ModellingHandle.all_atom_scorer`, - :attr:`~ModellingHandle.all_atom_sidechain_env` and - :attr:`~ModellingHandle.sidechain_reconstructor`. - - :return: A deep copy of the current handle - :rtype: :class:`ModellingHandle` - - -.. function:: BuildRawModel(aln, include_ligands=False, chain_names=\ - "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz",\ - spdbv_style=False) - - Builds a raw (pseudo) model from the alignment. Can either take a single - alignment handle or an alignment handle list. Every list item is treated as a - single chain in the final raw model. - - Each alignment handle must contain exactly two sequences and the second - sequence is considered the template sequence, which must have a - :class:`~ost.mol.EntityView` attached. - - This is a basic protein core modelling algorithm that copies backbone - coordinates based on the sequence alignment. For matching residues, the - side chain coordinates are also copied. Gaps are ignored. Hydrogen an - deuterium atoms are not copied into the model. - - The function tries to reuse as much as possible from the template. Modified - residues are treated as follows: - - - Selenium methionine residues are converted to methionine - - - Side chains which contain all atoms of the parent amino acid, e.g. - phosphoserine are copied as a whole with the modifications stripped off. - - Residues with missing backbone atoms and D-peptides are generally skipped and - treated as gaps. Missing Cbeta atoms in backbone are ok and reconstructed. - If all residues are skipped (e.g. Calpha traces), we report an error and - return an empty model. - - Residue numbers are set such that missing residue in gaps are honoured and - subsequent loop modelling can insert new residues without having to renumber. - **The numbering of residues starts for every chain with the value 1**. - - The returned :class:`ModellingHandle` stores the obtained raw model as well - as information about insertions and deletions in the gaps list. - - :param aln: Single alignment handle for raw model with single chain or - list of alignment handles for raw model with multiple chains. - :type aln: :class:`~ost.seq.AlignmentHandle` / :class:`~ost.seq.AlignmentList` - - :param include_ligands: True, if we wish to include ligands in the model. This - searches for ligands in all OST handles of the views - attached to the alignments. Ligands are identified - with the `ligand` property in the handle (set by OST - based on HET records) or by the chain name '_' (as set - in SMTL). All ligands are added to a new chain named - '_'. - :type include_ligands: :class:`bool` - - :param chain_names: Chains are named by a single chanacter taken from this. - :type chain_names: :class:`str` - - :param spdbv_style: True, if we need a model in the old SPDBV style. - :type spdbv_style: :class:`bool` - - :return: Raw (pseudo) model from the alignment. - :rtype: :class:`ModellingHandle` - - :raises: A :exc:`RuntimeError` when: - - - the alignments do not have two sequences - - the second sequence does not have an attached structure - - the residues of the template structure do not match with the - alignment sequence (note that you can set an "offset" (see - :meth:`~ost.seq.AlignmentHandle.SetSequenceOffset`) for the - template sequence (but not for the target)) - - the target sequence has a non-zero offset (cannot be honored as - the resulting model will always start its residue numbering at 1) - -The Default Pipeline --------------------------------------------------------------------------------- - -.. autofunction:: BuildFromRawModel - - -Modelling Steps --------------------------------------------------------------------------------- - - -.. function:: SetupDefaultBackboneScoring(mhandle) - - Setup scorers and environment for meddling with backbones. - This one is already tailored towards a certain modelling job. - The scorers added (with their respective keys) are: - - - "cb_packing": :class:`~promod3.scoring.CBPackingScorer` - - "cbeta": :class:`~promod3.scoring.CBetaScorer` - - "reduced": :class:`~promod3.scoring.ReducedScorer` - - "clash": :class:`~promod3.scoring.ClashScorer` - - "hbond": :class:`~promod3.scoring.HBondScorer` - - "torsion": :class:`~promod3.scoring.TorsionScorer` - - "pairwise": :class:`~promod3.scoring.PairwiseScorer` - - :param mhandle: The modelling handle. This will set the properties - :attr:`~ModellingHandle.backbone_scorer` and - :attr:`~ModellingHandle.backbone_scorer_env` of `mhandle`. - :type mhandle: :class:`~promod3.modelling.ModellingHandle` - -.. function:: IsBackboneScoringSetUp(mhandle) - - :return: True, if :attr:`~ModellingHandle.backbone_scorer` and - :attr:`~ModellingHandle.backbone_scorer_env` of `mhandle` are set. - :rtype: :class:`bool` - :param mhandle: Modelling handle to check. - :type mhandle: :class:`ModellingHandle` - -.. function:: SetupDefaultAllAtomScoring(mhandle) - - Setup scorers and environment to perform all atom scoring. - This one is already tailored towards a certain modelling job, where we - reconstruct sidechains for loop candidates and score them. - The scorers added (with their respective keys) are: - - - "aa_interaction": :class:`~promod3.scoring.AllAtomInteractionScorer` - - "aa_packing": :class:`~promod3.scoring.AllAtomPackingScorer` - - "aa_clash": :class:`~promod3.scoring.AllAtomClashScorer` - - :param mhandle: The modelling handle. This will set the properties - :attr:`~ModellingHandle.all_atom_scorer_env`, - :attr:`~ModellingHandle.all_atom_scorer`, - :attr:`~ModellingHandle.all_atom_sidechain_env` and - :attr:`~ModellingHandle.sidechain_reconstructor`. - :type mhandle: :class:`~promod3.modelling.ModellingHandle` - -.. function:: IsAllAtomScoringSetUp(mhandle) - - :return: True, if :attr:`~ModellingHandle.all_atom_scorer_env`, - :attr:`~ModellingHandle.all_atom_scorer`, - :attr:`~ModellingHandle.all_atom_sidechain_env` and - :attr:`~ModellingHandle.sidechain_reconstructor` of `mhandle` are set. - :rtype: :class:`bool` - :param mhandle: Modelling handle to check. - :type mhandle: :class:`ModellingHandle` - -.. function:: InsertLoop(mhandle, bb_list, start_resnum, chain_idx) - - Insert loop into model and ensure consistent updating of scoring environments. - Note that we do not update :attr:`~ModellingHandle.all_atom_scorer_env` as - that one is meant to be updated only while scoring. To clear a gap while - inserting a loop, use the simpler :meth:`InsertLoopClearGaps`. - - :param mhandle: Modelling handle on which to apply change. - :type mhandle: :class:`ModellingHandle` - :param bb_list: Loop to insert (backbone only). - :type bb_list: :class:`~promod3.loop.BackboneList` - :param start_resnum: Res. number defining the start position in the SEQRES. - :type start_resnum: :class:`int` - :param chain_idx: Index of chain the loop belongs to. - :type chain_idx: :class:`int` - -.. function:: RemoveTerminalGaps(mhandle) - - Removes terminal gaps without modelling them (just removes them from the list - of gaps). This is useful for pipelines which lack the possibility to properly - model loops at the termini. - - :param mhandle: Modelling handle on which to apply change. - :type mhandle: :class:`ModellingHandle` - - :return: Number of gaps which were removed. - :rtype: :class:`int` - -.. function:: ReorderGaps(mhandle) - - Reorders all gaps to ensure sequential order by performing lexicographical - comparison on the sequence formed by chain index of the gap and - start residue number. - -.. function:: MergeMHandle(source_mhandle, target_mhandle, source_chain_idx, \ - target_chain_idx, start_resnum, end_resnum, transform) - - Merges the specified stretch of **source_mhandle** into **target_mhandle** by - replacing all structural information and gaps in the stretch - **start_resnum** and **end_resnum** (inclusive). The residues specified by - **start_resnum** and **end_resnum** must be valid in the source_mhandle, - i.e. not be enclosed by a gap. If a gap encloses **start_resnum** or - **end_resnum** in the **target_mhandle**, the gap gets replaced by a - shortened version not including the part overlapping with the defined stretch. - If there is any scoring set up (backbone or all atom), the according - environments get updated in **target_mhandle**. - - :param source_mhandle: Source of structural information and gaps - :param target_mhandle: Structural information and gaps will be copied in here - :param source_chain_idx: This is the chain where the info comes from - :param target_chain_idx: This is the chain where the info goes to - :param start_resnum: First residue of the copied stretch - :param end_resnum: Last residue of the copied stretch - :param transform: Transformation to be applied to all atom positions when - they're copied over - - :type source_mhandle: :class:`ModellingHandle` - :type target_mhandle: :class:`ModellingHandle` - :type source_chain_idx: :class:`int` - :type target_chain_idx: :class:`int` - :type start_resnum: :class:`int` - :type end_resnum: :class:`int` - :type transform: :class:`ost.geom.Mat4` - - :raises: A :exc:`RuntimeError` when: - - - the chain indices are invalid - - the SEQRES of the specified chains do not match - - the start and end residue numbers are invalid or when the residues - at the specified positions in the **source_mhandle** do not exist - - a gap in the **source_mhandle** encloses the residues specified by - **start_resnum** and **end_resnum** - -.. function:: SetSequenceProfiles(mhandle, profiles) - - Sets the :attr:`sequence profiles <ModellingHandle.profiles>` of **mhandle** - while ensuring consistency with the :attr:`~ModellingHandle.seqres`. - - :param mhandle: Will have the profiles attached afterwards - :param profiles: The sequence profiles to attach - - :type mhandle: :class:`ModellingHandle` - :type profiles: :class:`list` of :class:`ost.seq.ProfileHandle` - - :raises: :class:`ValueError` when the given **profiles** are not consistent - with seqres in **mhandle** - - -.. function:: SetPsipredPredictions(mhandle, predictions) - - Sets the :attr:`predictions <ModellingHandle.psipred_predictions>` of - **mhandle** while ensuring consistency with the - :attr:`~ModellingHandle.seqres`. - - :param mhandle: Will have the predictions attached afterwards - :param predictions: The predictions to attach - - :type mhandle: :class:`ModellingHandle` - :type predictions: :class:`list` of :class:`~promod3.loop.PsipredPrediction` - - :raises: :class:`ValueError` when the given **predictions** are not consistent - with seqres in **mhandle** - - -.. autofunction:: SetFraggerHandles - -.. autofunction:: CloseGaps - -.. autofunction:: CloseSmallDeletions - -.. autofunction:: MergeGapsByDistance - -.. autofunction:: FillLoopsByDatabase - -.. autofunction:: FillLoopsByMonteCarlo - -.. autofunction:: CloseLargeDeletions - -.. autofunction:: ModelTermini - -.. autofunction:: BuildSidechains - -.. autofunction:: MinimizeModelEnergy - -.. autofunction:: CheckFinalModel - -.. autoclass:: ModellingIssue - :members: - -.. autofunction:: AddModellingIssue +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Modelling Pipeline +================================================================================ + +.. currentmodule:: promod3.modelling + +A protein homology modelling pipeline has the following main steps: + +- Build a raw model from the template (see :func:`BuildRawModel` function) +- Perform loop modelling to close (or remove) all gaps (see functions + :func:`CloseSmallDeletions`, :func:`RemoveTerminalGaps`, + :func:`MergeGapsByDistance`, :func:`FillLoopsByDatabase`, + :func:`FillLoopsByMonteCarlo`, :func:`CloseLargeDeletions` or + :func:`CloseGaps` that calls all these functions using predefined + heuristics) +- Build sidechains (see :func:`BuildSidechains` function) +- Minimize energy of final model using molecular mechanics + (see :func:`MinimizeModelEnergy` function) + +The last steps to go from a raw model to a final model can easily be executed +with the :func:`BuildFromRawModel` function. If you want to run and tweak the +internal steps, you can start with the following code and adapt it to your +purposes: + +.. _modelling_steps_example: + +.. literalinclude:: ../../../tests/doc/scripts/modelling_steps.py + + +Build Raw Modelling Handle +-------------------------------------------------------------------------------- + +.. class:: ModellingHandle + + Handles the result for structure model building and provides high-level methods + to turn an initial raw model (see :func:`~promod3.modelling.BuildRawModel`) + into a complete protein model by removing any existing gaps. + + .. attribute:: model + + The resulting model. This includes one chain per target chain (in the same + order as the sequences in :attr:`seqres`) and (if they were included) a + chain named '_' for ligands. You can therefore access `model.chains` items + and :attr:`seqres` items with the same indexing and the optional ligand + chain follows afterwards. + + :type: :class:`~ost.mol.EntityHandle` + + .. attribute:: gaps + + List of gaps in the model that could not be copied from the template. These + gaps may be the result of insertions/deletions in the alignment or due to + missing or incomplete backbone coordinates in the template structure. + Gaps of different chains are appended one after another. + + :type: :class:`StructuralGapList` + + .. attribute:: seqres + + List of sequences with one :class:`~ost.seq.SequenceHandle` for each chain + of the target protein. + + :type: :class:`~ost.seq.SequenceList` + + .. attribute:: profiles + + List of profiles with one :class:`ost.seq.ProfileHandle` for each chain of + the target protein (same order as in :attr:`seqres`). Please note, that this + attribute won't be set by simply calling :func:`BuildFromRawModel`. You have + to fill it manually or even better by the convenient function + :func:`SetSequenceProfiles`, to ensure consistency with the seqres. + + :type: :class:`list` of :class:`ost.seq.ProfileHandle` + + .. attribute:: psipred_predictions + + List of predictions with one :class:`promod3.loop.PsipredPrediction` for + each chain of the target protein (same order as in :attr:`seqres`). Please + note, that this attribute won't be set by simply calling + :func:`BuildFromRawModel`. You have to fill it manually or even better by + the convenient function :func:`SetPsipredPredictions`, to ensure + consistency with the seqres. + + :type: :class:`list` of :class:`~promod3.loop.PsipredPrediction` + + .. attribute:: backbone_scorer_env + + Backbone score environment attached to this handle. A default environment is + set with :func:`SetupDefaultBackboneScoring` when needed. Additional + information can be added to the environment before running the pipeline + steps. + + :type: :class:`~promod3.scoring.BackboneScoreEnv` + + .. attribute:: backbone_scorer + + Backbone scorer container attached to this handle. A default set of scorers + is initialized with :func:`SetupDefaultBackboneScoring` when needed. + + :type: :class:`~promod3.scoring.BackboneOverallScorer` + + .. attribute:: all_atom_scorer_env + + All atom environment attached to this handle for scoring. A default + environment is set with :func:`SetupDefaultAllAtomScoring` when needed. This + environment is for temporary work only and is only updated to score loops. + It is not to be updated when loops are chosen and added to the final model. + + :type: :class:`~promod3.loop.AllAtomEnv` + + .. attribute:: all_atom_scorer + + All atom scorer container attached to this handle. A default set of scorers + is initialized with :func:`SetupDefaultAllAtomScoring` when needed. + + :type: :class:`~promod3.scoring.AllAtomOverallScorer` + + .. attribute:: all_atom_sidechain_env + + All atom environment attached to this handle for sidechain reconstruction. A + default environment is set with :func:`SetupDefaultAllAtomScoring` when + needed. + + :type: :class:`~promod3.loop.AllAtomEnv` + + .. attribute:: sidechain_reconstructor + + A sidechain reconstructor to add sidechains to loops prior to all atom + scoring. A default one is set with :func:`SetupDefaultAllAtomScoring` when + needed. + + :type: :class:`~promod3.modelling.SidechainReconstructor` + + .. attribute:: fragger_handles + + Optional attribute which is set in :meth:`SetFraggerHandles`. Use + :meth:`hasattr` to check if it's available. If it's set, it is used in + :meth:`BuildFromRawModel`. + + :type: :class:`list` of :class:`FraggerHandle` + + .. attribute:: modelling_issues + + Optional attribute which is set in :meth:`AddModellingIssue`. Use + :meth:`hasattr` to check if it's available. If it's set, it can be used to + check issues which occurred in :meth:`BuildFromRawModel` (see + :meth:`MinimizeModelEnergy` and :meth:`CheckFinalModel` for details). + + :type: :class:`list` of :class:`ModellingIssue` + + .. method:: Copy() + + Generates a deep copy. Everything will be copied over to the returned + :class:`ModellingHandle`, except the potentially set scoring members + :attr:`~ModellingHandle.backbone_scorer`, + :attr:`~ModellingHandle.backbone_scorer_env`, + :attr:`~ModellingHandle.all_atom_scorer_env`, + :attr:`~ModellingHandle.all_atom_scorer`, + :attr:`~ModellingHandle.all_atom_sidechain_env` and + :attr:`~ModellingHandle.sidechain_reconstructor`. + + :return: A deep copy of the current handle + :rtype: :class:`ModellingHandle` + + +.. function:: BuildRawModel(aln, include_ligands=False, chain_names=\ + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz",\ + spdbv_style=False) + + Builds a raw (pseudo) model from the alignment. Can either take a single + alignment handle or an alignment handle list. Every list item is treated as a + single chain in the final raw model. + + Each alignment handle must contain exactly two sequences and the second + sequence is considered the template sequence, which must have a + :class:`~ost.mol.EntityView` attached. + + This is a basic protein core modelling algorithm that copies backbone + coordinates based on the sequence alignment. For matching residues, the + side chain coordinates are also copied. Gaps are ignored. Hydrogen an + deuterium atoms are not copied into the model. + + The function tries to reuse as much as possible from the template. Modified + residues are treated as follows: + + - Selenium methionine residues are converted to methionine + + - Side chains which contain all atoms of the parent amino acid, e.g. + phosphoserine are copied as a whole with the modifications stripped off. + + Residues with missing backbone atoms and D-peptides are generally skipped and + treated as gaps. Missing Cbeta atoms in backbone are ok and reconstructed. + If all residues are skipped (e.g. Calpha traces), we report an error and + return an empty model. + + Residue numbers are set such that missing residue in gaps are honoured and + subsequent loop modelling can insert new residues without having to renumber. + **The numbering of residues starts for every chain with the value 1**. + + The returned :class:`ModellingHandle` stores the obtained raw model as well + as information about insertions and deletions in the gaps list. + + :param aln: Single alignment handle for raw model with single chain or + list of alignment handles for raw model with multiple chains. + :type aln: :class:`~ost.seq.AlignmentHandle` / :class:`~ost.seq.AlignmentList` + + :param include_ligands: True, if we wish to include ligands in the model. This + searches for ligands in all OST handles of the views + attached to the alignments. Ligands are identified + with the `ligand` property in the handle (set by OST + based on HET records) or by the chain name '_' (as set + in SMTL). All ligands are added to a new chain named + '_'. + :type include_ligands: :class:`bool` + + :param chain_names: Chains are named by a single chanacter taken from this. + :type chain_names: :class:`str` + + :param spdbv_style: True, if we need a model in the old SPDBV style. + :type spdbv_style: :class:`bool` + + :return: Raw (pseudo) model from the alignment. + :rtype: :class:`ModellingHandle` + + :raises: A :exc:`RuntimeError` when: + + - the alignments do not have two sequences + - the second sequence does not have an attached structure + - the residues of the template structure do not match with the + alignment sequence (note that you can set an "offset" (see + :meth:`~ost.seq.AlignmentHandle.SetSequenceOffset`) for the + template sequence (but not for the target)) + - the target sequence has a non-zero offset (cannot be honored as + the resulting model will always start its residue numbering at 1) + +The Default Pipeline +-------------------------------------------------------------------------------- + +.. autofunction:: BuildFromRawModel + + +Modelling Steps +-------------------------------------------------------------------------------- + + +.. function:: SetupDefaultBackboneScoring(mhandle) + + Setup scorers and environment for meddling with backbones. + This one is already tailored towards a certain modelling job. + The scorers added (with their respective keys) are: + + - "cb_packing": :class:`~promod3.scoring.CBPackingScorer` + - "cbeta": :class:`~promod3.scoring.CBetaScorer` + - "reduced": :class:`~promod3.scoring.ReducedScorer` + - "clash": :class:`~promod3.scoring.ClashScorer` + - "hbond": :class:`~promod3.scoring.HBondScorer` + - "torsion": :class:`~promod3.scoring.TorsionScorer` + - "pairwise": :class:`~promod3.scoring.PairwiseScorer` + + :param mhandle: The modelling handle. This will set the properties + :attr:`~ModellingHandle.backbone_scorer` and + :attr:`~ModellingHandle.backbone_scorer_env` of `mhandle`. + :type mhandle: :class:`~promod3.modelling.ModellingHandle` + +.. function:: IsBackboneScoringSetUp(mhandle) + + :return: True, if :attr:`~ModellingHandle.backbone_scorer` and + :attr:`~ModellingHandle.backbone_scorer_env` of `mhandle` are set. + :rtype: :class:`bool` + :param mhandle: Modelling handle to check. + :type mhandle: :class:`ModellingHandle` + +.. function:: SetupDefaultAllAtomScoring(mhandle) + + Setup scorers and environment to perform all atom scoring. + This one is already tailored towards a certain modelling job, where we + reconstruct sidechains for loop candidates and score them. + The scorers added (with their respective keys) are: + + - "aa_interaction": :class:`~promod3.scoring.AllAtomInteractionScorer` + - "aa_packing": :class:`~promod3.scoring.AllAtomPackingScorer` + - "aa_clash": :class:`~promod3.scoring.AllAtomClashScorer` + + :param mhandle: The modelling handle. This will set the properties + :attr:`~ModellingHandle.all_atom_scorer_env`, + :attr:`~ModellingHandle.all_atom_scorer`, + :attr:`~ModellingHandle.all_atom_sidechain_env` and + :attr:`~ModellingHandle.sidechain_reconstructor`. + :type mhandle: :class:`~promod3.modelling.ModellingHandle` + +.. function:: IsAllAtomScoringSetUp(mhandle) + + :return: True, if :attr:`~ModellingHandle.all_atom_scorer_env`, + :attr:`~ModellingHandle.all_atom_scorer`, + :attr:`~ModellingHandle.all_atom_sidechain_env` and + :attr:`~ModellingHandle.sidechain_reconstructor` of `mhandle` are set. + :rtype: :class:`bool` + :param mhandle: Modelling handle to check. + :type mhandle: :class:`ModellingHandle` + +.. function:: InsertLoop(mhandle, bb_list, start_resnum, chain_idx) + + Insert loop into model and ensure consistent updating of scoring environments. + Note that we do not update :attr:`~ModellingHandle.all_atom_scorer_env` as + that one is meant to be updated only while scoring. To clear a gap while + inserting a loop, use the simpler :meth:`InsertLoopClearGaps`. + + :param mhandle: Modelling handle on which to apply change. + :type mhandle: :class:`ModellingHandle` + :param bb_list: Loop to insert (backbone only). + :type bb_list: :class:`~promod3.loop.BackboneList` + :param start_resnum: Res. number defining the start position in the SEQRES. + :type start_resnum: :class:`int` + :param chain_idx: Index of chain the loop belongs to. + :type chain_idx: :class:`int` + +.. function:: RemoveTerminalGaps(mhandle) + + Removes terminal gaps without modelling them (just removes them from the list + of gaps). This is useful for pipelines which lack the possibility to properly + model loops at the termini. + + :param mhandle: Modelling handle on which to apply change. + :type mhandle: :class:`ModellingHandle` + + :return: Number of gaps which were removed. + :rtype: :class:`int` + +.. function:: ReorderGaps(mhandle) + + Reorders all gaps to ensure sequential order by performing lexicographical + comparison on the sequence formed by chain index of the gap and + start residue number. + +.. function:: MergeMHandle(source_mhandle, target_mhandle, source_chain_idx, \ + target_chain_idx, start_resnum, end_resnum, transform) + + Merges the specified stretch of **source_mhandle** into **target_mhandle** by + replacing all structural information and gaps in the stretch + **start_resnum** and **end_resnum** (inclusive). The residues specified by + **start_resnum** and **end_resnum** must be valid in the source_mhandle, + i.e. not be enclosed by a gap. If a gap encloses **start_resnum** or + **end_resnum** in the **target_mhandle**, the gap gets replaced by a + shortened version not including the part overlapping with the defined stretch. + If there is any scoring set up (backbone or all atom), the according + environments get updated in **target_mhandle**. + + :param source_mhandle: Source of structural information and gaps + :param target_mhandle: Structural information and gaps will be copied in here + :param source_chain_idx: This is the chain where the info comes from + :param target_chain_idx: This is the chain where the info goes to + :param start_resnum: First residue of the copied stretch + :param end_resnum: Last residue of the copied stretch + :param transform: Transformation to be applied to all atom positions when + they're copied over + + :type source_mhandle: :class:`ModellingHandle` + :type target_mhandle: :class:`ModellingHandle` + :type source_chain_idx: :class:`int` + :type target_chain_idx: :class:`int` + :type start_resnum: :class:`int` + :type end_resnum: :class:`int` + :type transform: :class:`ost.geom.Mat4` + + :raises: A :exc:`RuntimeError` when: + + - the chain indices are invalid + - the SEQRES of the specified chains do not match + - the start and end residue numbers are invalid or when the residues + at the specified positions in the **source_mhandle** do not exist + - a gap in the **source_mhandle** encloses the residues specified by + **start_resnum** and **end_resnum** + +.. function:: SetSequenceProfiles(mhandle, profiles) + + Sets the :attr:`sequence profiles <ModellingHandle.profiles>` of **mhandle** + while ensuring consistency with the :attr:`~ModellingHandle.seqres`. + + :param mhandle: Will have the profiles attached afterwards + :param profiles: The sequence profiles to attach + + :type mhandle: :class:`ModellingHandle` + :type profiles: :class:`list` of :class:`ost.seq.ProfileHandle` + + :raises: :class:`ValueError` when the given **profiles** are not consistent + with seqres in **mhandle** + + +.. function:: SetPsipredPredictions(mhandle, predictions) + + Sets the :attr:`predictions <ModellingHandle.psipred_predictions>` of + **mhandle** while ensuring consistency with the + :attr:`~ModellingHandle.seqres`. + + :param mhandle: Will have the predictions attached afterwards + :param predictions: The predictions to attach + + :type mhandle: :class:`ModellingHandle` + :type predictions: :class:`list` of :class:`~promod3.loop.PsipredPrediction` + + :raises: :class:`ValueError` when the given **predictions** are not consistent + with seqres in **mhandle** + + +.. autofunction:: SetFraggerHandles + +.. autofunction:: CloseGaps + +.. autofunction:: CloseSmallDeletions + +.. autofunction:: MergeGapsByDistance + +.. autofunction:: FillLoopsByDatabase + +.. autofunction:: FillLoopsByMonteCarlo + +.. autofunction:: CloseLargeDeletions + +.. autofunction:: ModelTermini + +.. autofunction:: BuildSidechains + +.. autofunction:: MinimizeModelEnergy + +.. autofunction:: CheckFinalModel + +.. autoclass:: ModellingIssue + :members: + +.. autofunction:: AddModellingIssue diff --git a/doc/html/_sources/modelling/sidechain_reconstruction.rst.txt b/doc/html/_sources/modelling/sidechain_reconstruction.txt similarity index 97% rename from doc/html/_sources/modelling/sidechain_reconstruction.rst.txt rename to doc/html/_sources/modelling/sidechain_reconstruction.txt index 2997410a9f7b2f66d73f233940d32cb34f1a441f..11c4bfd928175b640b0ea36556bb47002bb8f2c2 100644 --- a/doc/html/_sources/modelling/sidechain_reconstruction.rst.txt +++ b/doc/html/_sources/modelling/sidechain_reconstruction.txt @@ -1,236 +1,236 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Sidechain Reconstruction -================================================================================ - -.. currentmodule:: promod3.modelling - -Two methods are provided to fully reconstruct sidechains of residues: - -- the :func:`ReconstructSidechains` function handles a full OST - :class:`~ost.mol.EntityHandle` -- the :class:`SidechainReconstructor` is linked to an all atom environment - and used to reconstruct sidechains of single loops - -Example usage: - -.. literalinclude:: ../../../tests/doc/scripts/modelling_reconstruct_sidechains.py - -.. literalinclude:: ../../../tests/doc/scripts/modelling_sidechain_reconstructor.py - - - -Reconstruct Function --------------------------------------------------------------------------------- - -.. autofunction:: ReconstructSidechains - - -SidechainReconstructor Class --------------------------------------------------------------------------------- - -.. class:: SidechainReconstructor(keep_sidechains=True, build_disulfids=True, \ - optimize_subrotamers=False, \ - remodel_cutoff=20, \ - rigid_frame_cutoff=0, \ - graph_max_complexity=100000000, \ - graph_intial_epsilon=0.02, \ - disulfid_score_thresh=45) - - Reconstruct sidechains for single loops or residues. Must be linked to an - all atom env. (:meth:`AttachEnvironment`) containing the structural data. - Residues are identified as N- or C-terminal according to the seqres in the - environment. This means that residues preceeded / followed by gaps are not - treated as terminal! In the reconstruction procedure you can specify - residues that should be remodelled. Everything within *remodel_cutoff* will - also be considered and potentially remodelled. To enforce the visibility - of the rigid frame to all of those close residues you can specify the - *rigid_frame_cutoff*. In the example of *remodel_cutoff*\=20 and - *rigid_frame_cutoff*\=10, all residues within 20A of any of the input residues - will be considered for remodelling. Everything further away than 20A but - within 20A + 10A = 30A will also be considered as rigid frame (all - backbone atoms and the sidechain if present). The distance criteria is the - CB atom distance between residues (CA in case of glycine). - - :param keep_sidechains: Flag, whether complete sidechains in env. (i.e. - containing all required atoms) should be kept rigid - and directly be added to the result. - :type keep_sidechains: :class:`bool` - - :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 result. - :type build_disulfids: :class:`bool` - - :param optimize_subrotamers: Flag, whether the - :func:`~promod3.sidechain.SubrotamerOptimizer` - with default parametrization should be called - if we're dealing with FRM rotamers. - :type optimize_subrotamers: :class:`bool` - - :param remodel_cutoff: Cutoff to identify all residues that need to be - remodelled. - :type remodel_cutoff: :class:`float` - - :param rigid_frame_cutoff: Cutoff to control the visibility of the rigid - frame to the reconstruction procedure. - Everything within - \[*remodel_cutoff*, - *remodel_cutoff* + *rigid_frame_cutoff*\] - will be considered as ridig frame. Small sidenote: - if the *keep_sidechains* flag is true and all - residues within *remodel_cutoff* already have a - sidechain, the *rigid_frame_cutoff* won't have any - effect. - :type rigid_frame_cutoff: :class:`float` - - :param graph_max_complexity: Max. complexity for - :meth:`promod3.sidechain.RotamerGraph.TreeSolve`. - :type graph_max_complexity: :class:`int` - :param graph_intial_epsilon: Initial epsilon for - :meth:`promod3.sidechain.RotamerGraph.TreeSolve`. - :type graph_intial_epsilon: :class:`float` - - :param disulfid_score_thresh: If :meth:`DisulfidScore` between two CYS is - below this threshold, we consider them to be - disulfid-bonded. - :type disulfid_score_thresh: :class:`float` - - - .. method:: Reconstruct(start_resnum, num_residues, chain_idx=0) - Reconstruct(start_resnum_list, num_residues_list, chain_idx_list) - - Reconstruct sidechains for one or several loops extracted from environment. - Overlapping loops are merged and 0-length loops are removed. All residues in - the loop(s) are expected to contain valid CB positions (or CA for GLY), - which are used to look for other potentially relevant residues in the - surrounding. The resulting structural data will contain all residues in the - loop(s) and in the surrounding with all backbone and sidechain heavy atom - positions set. - - Note that the structural data of the loop(s) is expected to be in the linked - environment before calling this! - - :param start_resnum: Start of loop. - :type start_resnum: :class:`int` / :class:`ost.mol.ResNum` - :param num_residues: Length of loop. - :type num_residues: :class:`int` - :param chain_idx: Chain the loop belongs to. - :type chain_idx: :class:`int` - - :param start_resnum_list: Starts of loops. - :type start_resnum_list: :class:`list` of :class:`int` - :param num_residues_list: Lengths of loops. - :type num_residues_list: :class:`list` of :class:`int` - :param chain_idx_list: Chains the loops belong to. - :type chain_idx_list: :class:`list` of :class:`int` - - :return: A helper object with all the reconstruction results. - :rtype: :class:`SidechainReconstructionData` - - :raises: :exc:`~exceptions.RuntimeError` if reconstructor was never attached - to an environment or if parameters lead to invalid / unset - positions in environment. - - .. method:: AttachEnvironment(env, use_frm=True, use_bbdep_lib=True) - AttachEnvironment(env, use_frm, rotamer_library) - - Link reconstructor to given *env*. A helper class is used in the background - to provide sidechain-objects for the environment. As this class is reused by - every reconstructor linked to *env*, the used parameters must be consistent - if multiple reconstructors are used (or you must use a distinct *env*). - - :param env: Link to this environment. - :type env: :class:`~promod3.loop.AllAtomEnv` - :param use_frm: If True, use flexible rotamer model, else rigid. - :type use_frm: :class:`bool` - :param use_bbdep_lib: If True, use default backbone dependent rot. library - (:meth:`LoadBBDepLib`), else use - backbone independent one - (:meth:`LoadLib`). - :type use_bbdep_lib: :class:`bool` - :param rotamer_library: Custom rotamer library to be used. - :type rotamer_library: :class:`BBDepRotamerLib` / :class:`RotamerLib` - - :raises: :exc:`~exceptions.RuntimeError` if *env* was already linked to - another reconstructor with inconsistent parameters. Acceptable - changes: - - - *keep_sidechains* = True, if previously False - - *build_disulfids* = False, if previously True - -The SidechainReconstructionData class --------------------------------------------------------------------------------- - -.. class:: SidechainReconstructionData - - Contains the results of a sidechain reconstruction - (:meth:`SidechainReconstructor.Reconstruct`). All attributes are read only! - - .. attribute:: env_pos - - Container for structural data and mapping to the internal residue indices - of the used :class:`~promod3.loop.AllAtomEnv`. Useful for scoring and env. - updates. - - :type: :class:`~promod3.loop.AllAtomEnvPositions` - - .. attribute:: loop_start_indices - loop_lengths - - The first *sum(loop_lengths)* residues in - :attr:`~promod3.loop.AllAtomEnvPositions.res_indices` of *env_pos* are - guaranteed to belong to the actual input, all the rest comes from the close - environment. - - Each input loop (apart from overlapping and 0-length loops) is defined by an - entry in *loop_start_indices* and *loop_lengths*. For loop *i_loop*, - *res_indices[loop_start_indices[i_loop]]* is the N-stem and - *res_indices[loop_start_indices[i_loop] + loop_lengths[i_loop] - 1]* is the - C-stem of the loop. The loop indices are contiguous in *res_indices* between - the stems. - - :type: :class:`list` of :class:`int` - - .. attribute:: rotamer_res_indices - - Indices of residues within *env_pos* for which we generated a new sidechain - (in [*0, len(env_pos.res_indices)-1*]). - - :type: :class:`list` of :class:`int` - - .. attribute:: disulfid_bridges - - Pairs of residue indices within *env_pos* for which we generated a disulfid - bridge (indices in [*0, len(env_pos.res_indices)-1*]). - - :type: :class:`list` of :class:`tuple` with two :class:`int` - - .. attribute:: is_n_ter - - True/False depending on whether a given residue in *env_pos* is N-terminal - in the environment (same length as *env_pos.res_indices*) - - :type: :class:`list` of :class:`bool` - - .. attribute:: is_c_ter - - True/False depending on whether a given residue in *env_pos* is C-terminal - in the environment (same length as *env_pos.res_indices*) - - :type: :class:`list` of :class:`bool` +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Sidechain Reconstruction +================================================================================ + +.. currentmodule:: promod3.modelling + +Two methods are provided to fully reconstruct sidechains of residues: + +- the :func:`ReconstructSidechains` function handles a full OST + :class:`~ost.mol.EntityHandle` +- the :class:`SidechainReconstructor` is linked to an all atom environment + and used to reconstruct sidechains of single loops + +Example usage: + +.. literalinclude:: ../../../tests/doc/scripts/modelling_reconstruct_sidechains.py + +.. literalinclude:: ../../../tests/doc/scripts/modelling_sidechain_reconstructor.py + + + +Reconstruct Function +-------------------------------------------------------------------------------- + +.. autofunction:: ReconstructSidechains + + +SidechainReconstructor Class +-------------------------------------------------------------------------------- + +.. class:: SidechainReconstructor(keep_sidechains=True, build_disulfids=True, \ + optimize_subrotamers=False, \ + remodel_cutoff=20, \ + rigid_frame_cutoff=0, \ + graph_max_complexity=100000000, \ + graph_intial_epsilon=0.02, \ + disulfid_score_thresh=45) + + Reconstruct sidechains for single loops or residues. Must be linked to an + all atom env. (:meth:`AttachEnvironment`) containing the structural data. + Residues are identified as N- or C-terminal according to the seqres in the + environment. This means that residues preceeded / followed by gaps are not + treated as terminal! In the reconstruction procedure you can specify + residues that should be remodelled. Everything within *remodel_cutoff* will + also be considered and potentially remodelled. To enforce the visibility + of the rigid frame to all of those close residues you can specify the + *rigid_frame_cutoff*. In the example of *remodel_cutoff*\=20 and + *rigid_frame_cutoff*\=10, all residues within 20A of any of the input residues + will be considered for remodelling. Everything further away than 20A but + within 20A + 10A = 30A will also be considered as rigid frame (all + backbone atoms and the sidechain if present). The distance criteria is the + CB atom distance between residues (CA in case of glycine). + + :param keep_sidechains: Flag, whether complete sidechains in env. (i.e. + containing all required atoms) should be kept rigid + and directly be added to the result. + :type keep_sidechains: :class:`bool` + + :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 result. + :type build_disulfids: :class:`bool` + + :param optimize_subrotamers: Flag, whether the + :func:`~promod3.sidechain.SubrotamerOptimizer` + with default parametrization should be called + if we're dealing with FRM rotamers. + :type optimize_subrotamers: :class:`bool` + + :param remodel_cutoff: Cutoff to identify all residues that need to be + remodelled. + :type remodel_cutoff: :class:`float` + + :param rigid_frame_cutoff: Cutoff to control the visibility of the rigid + frame to the reconstruction procedure. + Everything within + \[*remodel_cutoff*, + *remodel_cutoff* + *rigid_frame_cutoff*\] + will be considered as ridig frame. Small sidenote: + if the *keep_sidechains* flag is true and all + residues within *remodel_cutoff* already have a + sidechain, the *rigid_frame_cutoff* won't have any + effect. + :type rigid_frame_cutoff: :class:`float` + + :param graph_max_complexity: Max. complexity for + :meth:`promod3.sidechain.RotamerGraph.TreeSolve`. + :type graph_max_complexity: :class:`int` + :param graph_intial_epsilon: Initial epsilon for + :meth:`promod3.sidechain.RotamerGraph.TreeSolve`. + :type graph_intial_epsilon: :class:`float` + + :param disulfid_score_thresh: If :meth:`DisulfidScore` between two CYS is + below this threshold, we consider them to be + disulfid-bonded. + :type disulfid_score_thresh: :class:`float` + + + .. method:: Reconstruct(start_resnum, num_residues, chain_idx=0) + Reconstruct(start_resnum_list, num_residues_list, chain_idx_list) + + Reconstruct sidechains for one or several loops extracted from environment. + Overlapping loops are merged and 0-length loops are removed. All residues in + the loop(s) are expected to contain valid CB positions (or CA for GLY), + which are used to look for other potentially relevant residues in the + surrounding. The resulting structural data will contain all residues in the + loop(s) and in the surrounding with all backbone and sidechain heavy atom + positions set. + + Note that the structural data of the loop(s) is expected to be in the linked + environment before calling this! + + :param start_resnum: Start of loop. + :type start_resnum: :class:`int` / :class:`ost.mol.ResNum` + :param num_residues: Length of loop. + :type num_residues: :class:`int` + :param chain_idx: Chain the loop belongs to. + :type chain_idx: :class:`int` + + :param start_resnum_list: Starts of loops. + :type start_resnum_list: :class:`list` of :class:`int` + :param num_residues_list: Lengths of loops. + :type num_residues_list: :class:`list` of :class:`int` + :param chain_idx_list: Chains the loops belong to. + :type chain_idx_list: :class:`list` of :class:`int` + + :return: A helper object with all the reconstruction results. + :rtype: :class:`SidechainReconstructionData` + + :raises: :exc:`~exceptions.RuntimeError` if reconstructor was never attached + to an environment or if parameters lead to invalid / unset + positions in environment. + + .. method:: AttachEnvironment(env, use_frm=True, use_bbdep_lib=True) + AttachEnvironment(env, use_frm, rotamer_library) + + Link reconstructor to given *env*. A helper class is used in the background + to provide sidechain-objects for the environment. As this class is reused by + every reconstructor linked to *env*, the used parameters must be consistent + if multiple reconstructors are used (or you must use a distinct *env*). + + :param env: Link to this environment. + :type env: :class:`~promod3.loop.AllAtomEnv` + :param use_frm: If True, use flexible rotamer model, else rigid. + :type use_frm: :class:`bool` + :param use_bbdep_lib: If True, use default backbone dependent rot. library + (:meth:`LoadBBDepLib`), else use + backbone independent one + (:meth:`LoadLib`). + :type use_bbdep_lib: :class:`bool` + :param rotamer_library: Custom rotamer library to be used. + :type rotamer_library: :class:`BBDepRotamerLib` / :class:`RotamerLib` + + :raises: :exc:`~exceptions.RuntimeError` if *env* was already linked to + another reconstructor with inconsistent parameters. Acceptable + changes: + + - *keep_sidechains* = True, if previously False + - *build_disulfids* = False, if previously True + +The SidechainReconstructionData class +-------------------------------------------------------------------------------- + +.. class:: SidechainReconstructionData + + Contains the results of a sidechain reconstruction + (:meth:`SidechainReconstructor.Reconstruct`). All attributes are read only! + + .. attribute:: env_pos + + Container for structural data and mapping to the internal residue indices + of the used :class:`~promod3.loop.AllAtomEnv`. Useful for scoring and env. + updates. + + :type: :class:`~promod3.loop.AllAtomEnvPositions` + + .. attribute:: loop_start_indices + loop_lengths + + The first *sum(loop_lengths)* residues in + :attr:`~promod3.loop.AllAtomEnvPositions.res_indices` of *env_pos* are + guaranteed to belong to the actual input, all the rest comes from the close + environment. + + Each input loop (apart from overlapping and 0-length loops) is defined by an + entry in *loop_start_indices* and *loop_lengths*. For loop *i_loop*, + *res_indices[loop_start_indices[i_loop]]* is the N-stem and + *res_indices[loop_start_indices[i_loop] + loop_lengths[i_loop] - 1]* is the + C-stem of the loop. The loop indices are contiguous in *res_indices* between + the stems. + + :type: :class:`list` of :class:`int` + + .. attribute:: rotamer_res_indices + + Indices of residues within *env_pos* for which we generated a new sidechain + (in [*0, len(env_pos.res_indices)-1*]). + + :type: :class:`list` of :class:`int` + + .. attribute:: disulfid_bridges + + Pairs of residue indices within *env_pos* for which we generated a disulfid + bridge (indices in [*0, len(env_pos.res_indices)-1*]). + + :type: :class:`list` of :class:`tuple` with two :class:`int` + + .. attribute:: is_n_ter + + True/False depending on whether a given residue in *env_pos* is N-terminal + in the environment (same length as *env_pos.res_indices*) + + :type: :class:`list` of :class:`bool` + + .. attribute:: is_c_ter + + True/False depending on whether a given residue in *env_pos* is C-terminal + in the environment (same length as *env_pos.res_indices*) + + :type: :class:`list` of :class:`bool` diff --git a/doc/html/_sources/portableIO.rst.txt b/doc/html/_sources/portableIO.txt similarity index 97% rename from doc/html/_sources/portableIO.rst.txt rename to doc/html/_sources/portableIO.txt index ada636e54962bd9de85ce61c42b909deb637d029..a196c24da6b2e764d22dbd98caf57ae099b38969 100644 --- a/doc/html/_sources/portableIO.rst.txt +++ b/doc/html/_sources/portableIO.txt @@ -1,422 +1,422 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -.. _portableIO: - -Using Binary Files In |project| -=============================================================================== -A few features in |project| (and potentially your next addition) require binary -files to be loaded and stored. Here, we provide guidelines and describe helper -tools to perform tasks related to loading and storing binary files. - -Generally, each binary file consists of a short header and binary data. -The header ensures consistency between the storing and the loading of data, -while the "binary data" is some binary representation of the data of interest. - -The main issue, we try to address is that in |C++|, the binary representation -of objects can be machine- and compiler-dependent. The standard guarantees -though that ``sizeof(char) = 1`` and that ``std::vector`` is contiguous in -memory. Everything else (e.g. ``sizeof(int)``, endianness, padding of structs) -can vary. Two approaches can be used: - -1. Raw binary data files which are very fast to load, but assume a certain - memory-layout for the internal representation of data -2. Portable binary data files which are slow to load, but do not assume a given - memory-layout for the internal representation of data - -Portable I/O should always be provided for binary files. If this is too slow -for your needs, you can provide functionality for raw binary files. In that -case you should still distribute only the portable file and provide a -converter which loads the portable file and stores a raw binary file for -further use. Storing and loading of raw binary files on the same machine with -the same compiler should never be an issue. - -For instance, the classes :class:`~promod3.loop.TorsionSampler`, -:class:`~promod3.loop.FragDB`, :class:`~promod3.loop.StructureDB`, -:class:`~promod3.sidechain.BBDepRotamerLib` and -:class:`~promod3.sidechain.RotamerLib` use this approach and the conversion is -automatically done in the ``make`` process. Code examples are given in the unit -tests in :file:`test_check_io.cc` and :file:`test_portable_binary.cc` and in the -|C++| code of the classes listed above (see methods Load, Save, LoadPortable and -SavePortable). - --------------------------------------------------------------------------------- -File Header --------------------------------------------------------------------------------- - -The header is written/read with functions provided in the header file -:file:`promod3/core/check_io.hh`. The header is written/read before the data -itself and is structured as follows: - -- a "magic number" (ensures that we can read ``uint32_t`` which is needed for - the following fields) -- a version number (allows for backwards-compatibility) -- sizes for all types which are treated as raw memory (i.e. casted to a byte - (``char``) array and written either to memory or to a stream) -- example values for the used base-types (ensures we can e.g. read an ``int``) - -For portable I/O (see below), we only write/read fixed-width fundamental -data-types (e.g. ``int32_t``, ``float``). Hence, we only check if we can -read/write those types. -When data is converted from a non-fixed fundamental type ``T`` (e.g. ``uint``, -``short``, ``Real``), we furthermore ensure that the used fixed-width type -(size written to file) is ``<= sizeof(T)``. - -All write functions (when saving a binary) should be mirrored by the -corresponding check (or get) function in the exact same order when loading. - -All functions are templatized to work with any |ost_s|-like data sink or source -and overloaded to work with ``std::ofstream`` and ``std::ifstream``. - --------------------------------------------------------------------------------- -Portable Binary Data --------------------------------------------------------------------------------- - -Portable files are written/read with functions and classes provided in the -header file :file:`promod3/core/portable_binary_serializer.hh`. -Generally, we store any data-structure value-by-value as fixed-width types! - -Writing and reading is performed by the following classes: - -- ``PortableBinaryDataSink`` to write files (opened as ``std::ofstream``) -- ``PortableBinaryDataSource`` to read files (opened as ``std::ifstream``) - -Each serializable class must define a ``Serialize`` function that accepts sinks -and sources, such as: - -.. code-block:: cpp - - template <typename DS> - void Serialize(DS& ds) { - // serialize element-by-element - } - -Or if this is not possible for an object of type ``T``, we need to define -global functions such as: - -.. code-block:: cpp - - inline void Serialize(core::PortableBinaryDataSource& ds, T& t) { } - inline void Serialize(core::PortableBinaryDataSink& ds, T t) { } - -Given a sink or source object ``ds``, we read/write an object ``v`` as: - -- ``ds & v``, if ``v`` is an instance of a class, a ``bool`` or any - fixed-width type (e.g. ``char``, ``int_32_t``, ``float``) -- ``core::ConvertBaseType<T>(ds, v)``, where ``T`` is a fixed-width type. - ``v`` will then be converted to/from ``T``. This is needed for any non-fixed - fundamental type (e.g. ``uint``, ``short``, ``Real``). - -Implementation notes: - -- the ``Serialize`` function for fundamental types takes care of endianness - (all written as little endian and converted from/to native endianness) -- custom ``Serialize`` functions exist for ``String`` (= ``std::string``), - ``std::vector<T>`` and ``std::pair<T,T2>``. It will throw an error if the - used type ``T`` or ``T2`` is a fundamental type. In that case, you have to - serialize the values manually and convert each element appropriately. -- you can use ``ds.IsSource()`` to distinguish sources and sinks. - --------------------------------------------------------------------------------- -Code Example --------------------------------------------------------------------------------- - -Here is an example of a class which provides functionality for portable -and non-portable I/O: - -.. code-block:: cpp - - // includes for this class - #include <boost/shared_ptr.hpp> - #include <iostream> - #include <fstream> - #include <sstream> - #include <vector> - - // includes for I/O - #include <promod3/core/message.hh> - #include <promod3/core/portable_binary_serializer.hh> - #include <promod3/core/check_io.hh> - - using namespace promod3; - - // define some data-structure - struct SomeData { - short s; - int i; - Real r; - - // portable serialization - // (cleanly element by element with fixed-width base-types) - template <typename DS> - void Serialize(DS& ds) { - core::ConvertBaseType<int16_t>(ds, s); - core::ConvertBaseType<int32_t>(ds, i); - core::ConvertBaseType<float>(ds, r); - } - }; - - // define pointer type - class MyClass; - typedef boost::shared_ptr<MyClass> MyClassPtr; - - // define class - class MyClass { - public: - MyClass(const String& id): id_(id) { } - - // raw binary save - void Save(const String& filename) { - // open file - std::ofstream out_stream(filename.c_str(), std::ios::binary); - if (!out_stream) { - std::stringstream ss; - ss << "The file '" << filename << "' cannot be opened."; - throw promod3::Error(ss.str()); - } - - // header for consistency checks - core::WriteMagicNumber(out_stream); - core::WriteVersionNumber(out_stream, 1); - // required base types: short, int, Real (for SomeData). - // uint (for sizes) - // required structs: SomeData - core::WriteTypeSize<uint>(out_stream); - core::WriteTypeSize<short>(out_stream); - core::WriteTypeSize<int>(out_stream); - core::WriteTypeSize<Real>(out_stream); - core::WriteTypeSize<SomeData>(out_stream); - // check values for base types - core::WriteBaseType<uint>(out_stream); - core::WriteBaseType<short>(out_stream); - core::WriteBaseType<int>(out_stream); - core::WriteBaseType<Real>(out_stream); - - // write string - uint str_len = id_.length(); - out_stream.write(reinterpret_cast<char*>(&str_len), sizeof(uint)); - out_stream.write(id_.c_str(), str_len); - // write vector of SomeData - uint v_size = data_.size(); - out_stream.write(reinterpret_cast<char*>(&v_size), sizeof(uint)); - out_stream.write(reinterpret_cast<char*>(&data_[0]), - sizeof(SomeData)*v_size); - } - - // raw binary load - static MyClassPtr Load(const String& filename) { - // open file - std::ifstream in_stream(filename.c_str(), std::ios::binary); - if (!in_stream) { - std::stringstream ss; - ss << "The file '" << filename << "' does not exist."; - throw promod3::Error(ss.str()); - } - - // header for consistency checks - core::CheckMagicNumber(in_stream); - uint32_t version = core::GetVersionNumber(in_stream); - if (version > 1) { - std::stringstream ss; - ss << "Unsupported file version '" << version - << "' in '" << filename; - throw promod3::Error(ss.str()); - } - // check for exact sizes as used in Save - core::CheckTypeSize<uint>(in_stream); - core::CheckTypeSize<short>(in_stream); - core::CheckTypeSize<int>(in_stream); - core::CheckTypeSize<Real>(in_stream); - core::CheckTypeSize<SomeData>(in_stream); - // check values for base types used in Save - core::CheckBaseType<uint>(in_stream); - core::CheckBaseType<short>(in_stream); - core::CheckBaseType<int>(in_stream); - core::CheckBaseType<Real>(in_stream); - - // read string (needed for constructor) - uint str_len; - in_stream.read(reinterpret_cast<char*>(&str_len), sizeof(uint)); - std::vector<char> tmp_buf(str_len); - in_stream.read(&tmp_buf[0], str_len); - - // construct - MyClassPtr p(new MyClass(String(&tmp_buf[0], str_len))); - - // read vector of SomeData - uint v_size; - in_stream.read(reinterpret_cast<char*>(&v_size), sizeof(uint)); - p->data_.resize(v_size); - in_stream.read(reinterpret_cast<char*>(&p->data_[0]), - sizeof(SomeData)*v_size); - - return p; - } - - // portable binary save - void SavePortable(const String& filename) { - // open file - std::ofstream out_stream_(filename.c_str(), std::ios::binary); - if (!out_stream_) { - std::stringstream ss; - ss << "The file '" << filename << "' cannot be opened."; - throw promod3::Error(ss.str()); - } - core::PortableBinaryDataSink out_stream(out_stream_); - - // header for consistency checks - core::WriteMagicNumber(out_stream); - core::WriteVersionNumber(out_stream, 1); - // required base types: short, int, Real - // -> converted to int16_t, int32_t, float - core::WriteTypeSize<int16_t>(out_stream); - core::WriteTypeSize<int32_t>(out_stream); - core::WriteTypeSize<float>(out_stream); - // check values for base types - core::WriteBaseType<int16_t>(out_stream); - core::WriteBaseType<int32_t>(out_stream); - core::WriteBaseType<float>(out_stream); - - // write string (provided in portable_binary_serializer.hh) - out_stream & id_; - // write vector (provided in portable_binary_serializer.hh) - // -> only ok like this if vector of custom type - // -> will call Serialize-function for each element - out_stream & data_; - } - - // portable binary load - static MyClassPtr LoadPortable(const String& filename) { - // open file - std::ifstream in_stream_(filename.c_str(), std::ios::binary); - if (!in_stream_) { - std::stringstream ss; - ss << "The file '" << filename << "' does not exist."; - throw promod3::Error(ss.str()); - } - core::PortableBinaryDataSource in_stream(in_stream_); - - // header for consistency checks - core::CheckMagicNumber(in_stream); - uint32_t version = core::GetVersionNumber(in_stream); - if (version > 1) { - std::stringstream ss; - ss << "Unsupported file version '" << version - << "' in '" << filename; - throw promod3::Error(ss.str()); - } - // check for if required base types (see SavePortable) - // are big enough - core::CheckTypeSize<short>(in_stream, true); - core::CheckTypeSize<int>(in_stream, true); - core::CheckTypeSize<Real>(in_stream, true); - // check values for base types used in Save - core::CheckBaseType<int16_t>(in_stream); - core::CheckBaseType<int32_t>(in_stream); - core::CheckBaseType<float>(in_stream); - - // read string (needed for constructor) - String s; - in_stream & s; - // construct - MyClassPtr p(new MyClass(s)); - // read vector of SomeData - in_stream & p->data_; - - return p; - } - - private: - std::vector<SomeData> data_; - String id_; - }; - - int main() { - // generate raw file - MyClassPtr p(new MyClass("HELLO")); - p->Save("test.dat"); - // load raw file - p = MyClass::Load("test.dat"); - - // generate portable file - p->SavePortable("test.dat"); - // load portable file - p = MyClass::LoadPortable("test.dat"); - - return 0; - } - --------------------------------------------------------------------------------- -Exisiting Binary Files --------------------------------------------------------------------------------- - -The following binary files are currently in |project|: - -- module ``loop``: - - - :file:`frag_db.dat` - (:class:`~promod3.loop.FragDB`) - - :file:`structure_db.dat` - (:class:`~promod3.loop.StructureDB`) - - :file:`torsion_sampler_coil.dat` - (:class:`~promod3.loop.TorsionSampler`) - - :file:`torsion_sampler.dat` - (:class:`~promod3.loop.TorsionSampler`) - - :file:`torsion_sampler_extended.dat` - (:class:`~promod3.loop.TorsionSampler`) - - :file:`torsion_sampler_helical.dat` - (:class:`~promod3.loop.TorsionSampler`) - - :file:`ff_lookup_charmm.dat` - (:class:`~promod3.loop.ForcefieldLookup`) - -- module ``scoring``: - - - :file:`cbeta_scorer.dat` - (:class:`~promod3.scoring.CBetaScorer`) - - :file:`cb_packing_scorer.dat` - (:class:`~promod3.scoring.CBPackingScorer`) - - :file:`hbond_scorer.dat` - (:class:`~promod3.scoring.HBondScorer`) - - :file:`reduced_scorer.dat` - (:class:`~promod3.scoring.ReducedScorer`) - - :file:`ss_agreement_scorer.dat` - (:class:`~promod3.scoring.SSAgreementScorer`) - - :file:`torsion_scorer.dat` - (:class:`~promod3.scoring.TorsionScorer`) - - :file:`aa_scorer.dat` - (:class:`~promod3.scoring.AllAtomInteractionScorer`) - - :file:`aa_packing_scorer.dat` - (:class:`~promod3.scoring.AllAtomPackingScorer`) - -- module ``sidechain``: - - - :file:`bb_dep_lib.dat` - (:class:`~promod3.sidechain.BBDepRotamerLib`) - - :file:`lib.dat` - (:class:`~promod3.sidechain.RotamerLib`) - -During the ``make`` process, portable versions of the files (stored in the -:file:`<MODULE>/data` folder) are converted and corresponding raw binary files -are stored in the :file:`stage/share/promod3/<MODULE>_data` folder. - -If the stage folder is moved after compilation (e.g. ``make install``), the -location of the :file:`share/promod3` folder is to be stored in an environment -variable called ``PROMOD3_SHARED_DATA_PATH``. This variable is automatically set -if you load any |python| module from ``promod3`` or if you use the ``pm`` -script or if you use a well-setup module on a cluster. - -Code for the generation of the binary files and their portable versions are -in the :file:`extras/data_generation` folder (provided as-is). +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +.. _portableIO: + +Using Binary Files In |project| +=============================================================================== +A few features in |project| (and potentially your next addition) require binary +files to be loaded and stored. Here, we provide guidelines and describe helper +tools to perform tasks related to loading and storing binary files. + +Generally, each binary file consists of a short header and binary data. +The header ensures consistency between the storing and the loading of data, +while the "binary data" is some binary representation of the data of interest. + +The main issue, we try to address is that in |C++|, the binary representation +of objects can be machine- and compiler-dependent. The standard guarantees +though that ``sizeof(char) = 1`` and that ``std::vector`` is contiguous in +memory. Everything else (e.g. ``sizeof(int)``, endianness, padding of structs) +can vary. Two approaches can be used: + +1. Raw binary data files which are very fast to load, but assume a certain + memory-layout for the internal representation of data +2. Portable binary data files which are slow to load, but do not assume a given + memory-layout for the internal representation of data + +Portable I/O should always be provided for binary files. If this is too slow +for your needs, you can provide functionality for raw binary files. In that +case you should still distribute only the portable file and provide a +converter which loads the portable file and stores a raw binary file for +further use. Storing and loading of raw binary files on the same machine with +the same compiler should never be an issue. + +For instance, the classes :class:`~promod3.loop.TorsionSampler`, +:class:`~promod3.loop.FragDB`, :class:`~promod3.loop.StructureDB`, +:class:`~promod3.sidechain.BBDepRotamerLib` and +:class:`~promod3.sidechain.RotamerLib` use this approach and the conversion is +automatically done in the ``make`` process. Code examples are given in the unit +tests in :file:`test_check_io.cc` and :file:`test_portable_binary.cc` and in the +|C++| code of the classes listed above (see methods Load, Save, LoadPortable and +SavePortable). + +-------------------------------------------------------------------------------- +File Header +-------------------------------------------------------------------------------- + +The header is written/read with functions provided in the header file +:file:`promod3/core/check_io.hh`. The header is written/read before the data +itself and is structured as follows: + +- a "magic number" (ensures that we can read ``uint32_t`` which is needed for + the following fields) +- a version number (allows for backwards-compatibility) +- sizes for all types which are treated as raw memory (i.e. casted to a byte + (``char``) array and written either to memory or to a stream) +- example values for the used base-types (ensures we can e.g. read an ``int``) + +For portable I/O (see below), we only write/read fixed-width fundamental +data-types (e.g. ``int32_t``, ``float``). Hence, we only check if we can +read/write those types. +When data is converted from a non-fixed fundamental type ``T`` (e.g. ``uint``, +``short``, ``Real``), we furthermore ensure that the used fixed-width type +(size written to file) is ``<= sizeof(T)``. + +All write functions (when saving a binary) should be mirrored by the +corresponding check (or get) function in the exact same order when loading. + +All functions are templatized to work with any |ost_s|-like data sink or source +and overloaded to work with ``std::ofstream`` and ``std::ifstream``. + +-------------------------------------------------------------------------------- +Portable Binary Data +-------------------------------------------------------------------------------- + +Portable files are written/read with functions and classes provided in the +header file :file:`promod3/core/portable_binary_serializer.hh`. +Generally, we store any data-structure value-by-value as fixed-width types! + +Writing and reading is performed by the following classes: + +- ``PortableBinaryDataSink`` to write files (opened as ``std::ofstream``) +- ``PortableBinaryDataSource`` to read files (opened as ``std::ifstream``) + +Each serializable class must define a ``Serialize`` function that accepts sinks +and sources, such as: + +.. code-block:: cpp + + template <typename DS> + void Serialize(DS& ds) { + // serialize element-by-element + } + +Or if this is not possible for an object of type ``T``, we need to define +global functions such as: + +.. code-block:: cpp + + inline void Serialize(core::PortableBinaryDataSource& ds, T& t) { } + inline void Serialize(core::PortableBinaryDataSink& ds, T t) { } + +Given a sink or source object ``ds``, we read/write an object ``v`` as: + +- ``ds & v``, if ``v`` is an instance of a class, a ``bool`` or any + fixed-width type (e.g. ``char``, ``int_32_t``, ``float``) +- ``core::ConvertBaseType<T>(ds, v)``, where ``T`` is a fixed-width type. + ``v`` will then be converted to/from ``T``. This is needed for any non-fixed + fundamental type (e.g. ``uint``, ``short``, ``Real``). + +Implementation notes: + +- the ``Serialize`` function for fundamental types takes care of endianness + (all written as little endian and converted from/to native endianness) +- custom ``Serialize`` functions exist for ``String`` (= ``std::string``), + ``std::vector<T>`` and ``std::pair<T,T2>``. It will throw an error if the + used type ``T`` or ``T2`` is a fundamental type. In that case, you have to + serialize the values manually and convert each element appropriately. +- you can use ``ds.IsSource()`` to distinguish sources and sinks. + +-------------------------------------------------------------------------------- +Code Example +-------------------------------------------------------------------------------- + +Here is an example of a class which provides functionality for portable +and non-portable I/O: + +.. code-block:: cpp + + // includes for this class + #include <boost/shared_ptr.hpp> + #include <iostream> + #include <fstream> + #include <sstream> + #include <vector> + + // includes for I/O + #include <promod3/core/message.hh> + #include <promod3/core/portable_binary_serializer.hh> + #include <promod3/core/check_io.hh> + + using namespace promod3; + + // define some data-structure + struct SomeData { + short s; + int i; + Real r; + + // portable serialization + // (cleanly element by element with fixed-width base-types) + template <typename DS> + void Serialize(DS& ds) { + core::ConvertBaseType<int16_t>(ds, s); + core::ConvertBaseType<int32_t>(ds, i); + core::ConvertBaseType<float>(ds, r); + } + }; + + // define pointer type + class MyClass; + typedef boost::shared_ptr<MyClass> MyClassPtr; + + // define class + class MyClass { + public: + MyClass(const String& id): id_(id) { } + + // raw binary save + void Save(const String& filename) { + // open file + std::ofstream out_stream(filename.c_str(), std::ios::binary); + if (!out_stream) { + std::stringstream ss; + ss << "The file '" << filename << "' cannot be opened."; + throw promod3::Error(ss.str()); + } + + // header for consistency checks + core::WriteMagicNumber(out_stream); + core::WriteVersionNumber(out_stream, 1); + // required base types: short, int, Real (for SomeData). + // uint (for sizes) + // required structs: SomeData + core::WriteTypeSize<uint>(out_stream); + core::WriteTypeSize<short>(out_stream); + core::WriteTypeSize<int>(out_stream); + core::WriteTypeSize<Real>(out_stream); + core::WriteTypeSize<SomeData>(out_stream); + // check values for base types + core::WriteBaseType<uint>(out_stream); + core::WriteBaseType<short>(out_stream); + core::WriteBaseType<int>(out_stream); + core::WriteBaseType<Real>(out_stream); + + // write string + uint str_len = id_.length(); + out_stream.write(reinterpret_cast<char*>(&str_len), sizeof(uint)); + out_stream.write(id_.c_str(), str_len); + // write vector of SomeData + uint v_size = data_.size(); + out_stream.write(reinterpret_cast<char*>(&v_size), sizeof(uint)); + out_stream.write(reinterpret_cast<char*>(&data_[0]), + sizeof(SomeData)*v_size); + } + + // raw binary load + static MyClassPtr Load(const String& filename) { + // open file + std::ifstream in_stream(filename.c_str(), std::ios::binary); + if (!in_stream) { + std::stringstream ss; + ss << "The file '" << filename << "' does not exist."; + throw promod3::Error(ss.str()); + } + + // header for consistency checks + core::CheckMagicNumber(in_stream); + uint32_t version = core::GetVersionNumber(in_stream); + if (version > 1) { + std::stringstream ss; + ss << "Unsupported file version '" << version + << "' in '" << filename; + throw promod3::Error(ss.str()); + } + // check for exact sizes as used in Save + core::CheckTypeSize<uint>(in_stream); + core::CheckTypeSize<short>(in_stream); + core::CheckTypeSize<int>(in_stream); + core::CheckTypeSize<Real>(in_stream); + core::CheckTypeSize<SomeData>(in_stream); + // check values for base types used in Save + core::CheckBaseType<uint>(in_stream); + core::CheckBaseType<short>(in_stream); + core::CheckBaseType<int>(in_stream); + core::CheckBaseType<Real>(in_stream); + + // read string (needed for constructor) + uint str_len; + in_stream.read(reinterpret_cast<char*>(&str_len), sizeof(uint)); + std::vector<char> tmp_buf(str_len); + in_stream.read(&tmp_buf[0], str_len); + + // construct + MyClassPtr p(new MyClass(String(&tmp_buf[0], str_len))); + + // read vector of SomeData + uint v_size; + in_stream.read(reinterpret_cast<char*>(&v_size), sizeof(uint)); + p->data_.resize(v_size); + in_stream.read(reinterpret_cast<char*>(&p->data_[0]), + sizeof(SomeData)*v_size); + + return p; + } + + // portable binary save + void SavePortable(const String& filename) { + // open file + std::ofstream out_stream_(filename.c_str(), std::ios::binary); + if (!out_stream_) { + std::stringstream ss; + ss << "The file '" << filename << "' cannot be opened."; + throw promod3::Error(ss.str()); + } + core::PortableBinaryDataSink out_stream(out_stream_); + + // header for consistency checks + core::WriteMagicNumber(out_stream); + core::WriteVersionNumber(out_stream, 1); + // required base types: short, int, Real + // -> converted to int16_t, int32_t, float + core::WriteTypeSize<int16_t>(out_stream); + core::WriteTypeSize<int32_t>(out_stream); + core::WriteTypeSize<float>(out_stream); + // check values for base types + core::WriteBaseType<int16_t>(out_stream); + core::WriteBaseType<int32_t>(out_stream); + core::WriteBaseType<float>(out_stream); + + // write string (provided in portable_binary_serializer.hh) + out_stream & id_; + // write vector (provided in portable_binary_serializer.hh) + // -> only ok like this if vector of custom type + // -> will call Serialize-function for each element + out_stream & data_; + } + + // portable binary load + static MyClassPtr LoadPortable(const String& filename) { + // open file + std::ifstream in_stream_(filename.c_str(), std::ios::binary); + if (!in_stream_) { + std::stringstream ss; + ss << "The file '" << filename << "' does not exist."; + throw promod3::Error(ss.str()); + } + core::PortableBinaryDataSource in_stream(in_stream_); + + // header for consistency checks + core::CheckMagicNumber(in_stream); + uint32_t version = core::GetVersionNumber(in_stream); + if (version > 1) { + std::stringstream ss; + ss << "Unsupported file version '" << version + << "' in '" << filename; + throw promod3::Error(ss.str()); + } + // check for if required base types (see SavePortable) + // are big enough + core::CheckTypeSize<short>(in_stream, true); + core::CheckTypeSize<int>(in_stream, true); + core::CheckTypeSize<Real>(in_stream, true); + // check values for base types used in Save + core::CheckBaseType<int16_t>(in_stream); + core::CheckBaseType<int32_t>(in_stream); + core::CheckBaseType<float>(in_stream); + + // read string (needed for constructor) + String s; + in_stream & s; + // construct + MyClassPtr p(new MyClass(s)); + // read vector of SomeData + in_stream & p->data_; + + return p; + } + + private: + std::vector<SomeData> data_; + String id_; + }; + + int main() { + // generate raw file + MyClassPtr p(new MyClass("HELLO")); + p->Save("test.dat"); + // load raw file + p = MyClass::Load("test.dat"); + + // generate portable file + p->SavePortable("test.dat"); + // load portable file + p = MyClass::LoadPortable("test.dat"); + + return 0; + } + +-------------------------------------------------------------------------------- +Exisiting Binary Files +-------------------------------------------------------------------------------- + +The following binary files are currently in |project|: + +- module ``loop``: + + - :file:`frag_db.dat` + (:class:`~promod3.loop.FragDB`) + - :file:`structure_db.dat` + (:class:`~promod3.loop.StructureDB`) + - :file:`torsion_sampler_coil.dat` + (:class:`~promod3.loop.TorsionSampler`) + - :file:`torsion_sampler.dat` + (:class:`~promod3.loop.TorsionSampler`) + - :file:`torsion_sampler_extended.dat` + (:class:`~promod3.loop.TorsionSampler`) + - :file:`torsion_sampler_helical.dat` + (:class:`~promod3.loop.TorsionSampler`) + - :file:`ff_lookup_charmm.dat` + (:class:`~promod3.loop.ForcefieldLookup`) + +- module ``scoring``: + + - :file:`cbeta_scorer.dat` + (:class:`~promod3.scoring.CBetaScorer`) + - :file:`cb_packing_scorer.dat` + (:class:`~promod3.scoring.CBPackingScorer`) + - :file:`hbond_scorer.dat` + (:class:`~promod3.scoring.HBondScorer`) + - :file:`reduced_scorer.dat` + (:class:`~promod3.scoring.ReducedScorer`) + - :file:`ss_agreement_scorer.dat` + (:class:`~promod3.scoring.SSAgreementScorer`) + - :file:`torsion_scorer.dat` + (:class:`~promod3.scoring.TorsionScorer`) + - :file:`aa_scorer.dat` + (:class:`~promod3.scoring.AllAtomInteractionScorer`) + - :file:`aa_packing_scorer.dat` + (:class:`~promod3.scoring.AllAtomPackingScorer`) + +- module ``sidechain``: + + - :file:`bb_dep_lib.dat` + (:class:`~promod3.sidechain.BBDepRotamerLib`) + - :file:`lib.dat` + (:class:`~promod3.sidechain.RotamerLib`) + +During the ``make`` process, portable versions of the files (stored in the +:file:`<MODULE>/data` folder) are converted and corresponding raw binary files +are stored in the :file:`stage/share/promod3/<MODULE>_data` folder. + +If the stage folder is moved after compilation (e.g. ``make install``), the +location of the :file:`share/promod3` folder is to be stored in an environment +variable called ``PROMOD3_SHARED_DATA_PATH``. This variable is automatically set +if you load any |python| module from ``promod3`` or if you use the ``pm`` +script or if you use a well-setup module on a cluster. + +Code for the generation of the binary files and their portable versions are +in the :file:`extras/data_generation` folder (provided as-is). diff --git a/doc/html/_sources/references.rst.txt b/doc/html/_sources/references.txt similarity index 97% rename from doc/html/_sources/references.rst.txt rename to doc/html/_sources/references.txt index 99547e426db5e03a4828755eb99b6120ed8a18c6..d6f13f3ab40e05142e7003b0276019bf252ce697 100644 --- a/doc/html/_sources/references.rst.txt +++ b/doc/html/_sources/references.txt @@ -1,90 +1,90 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -References -========== - -.. [biasini2013] Biasini M, Schmidt T, Bienert S, Mariani V, Studer G, Haas J, - Johner N, Schenk AD, Philippsen A and Schwede T (2013). - OpenStructure: an integrated software framework for - computational structural biology. Acta Cryst. - -.. [canutescu2003] Canutescu AA and Dunbrack RL Jr. (2003). - Cyclic coordinate descent: A robotics algorithm for protein - loop closure. Protein Sci. - -.. [canutescu2003b] Canutescu AA, Shelenkov AA, Dunbrack RL Jr. (2003). - A graph-theory algorithm for rapid protein side-chain - prediction. Protein Sci. - -.. [coutsias2005] Coutsias EA, Seok C, Wester MJ, Dill KA (2005). - Resultants and loop closure. International Journal of Quantum - Chemistry. - -.. [chakravarty1999] Chakravarty S, Varadarajan R (1999). - Residue depth: a novel parameter for the analysis of - protein structure and stability. Structure. - -.. [davis2006] Davis IW, Arendall WB, Richardson DC, Richardson JS (2006). - The backrub motion: how protein backbone shrugs when a sidechain - dances. Structure. - -.. [goldstein1994] Goldstein RF (1994). - Efficient rotamer elimination applied to protein side-chains - and related spin glasses. Biophys J. - -.. [Jones1999] Jones DT (1999). - Protein secondary structure prediction based on position-specific - scoring matrices. J. Mol. Biol. - -.. [kabsch1983] Kabsch W, Sander C (1983). - Dictionary of protein secondary structure: pattern recognition of - hydrogen-bonded and geometrical features. Biopolymers. - -.. [krivov2009] Krivov GG, Shapovalov MV and Dunbrack RL Jr. (2009). - Improved prediction of protein side-chain conformations with - SCWRL4. Proteins. - -.. [leach1998] Leach AR, Lemon AP (1998). - Exploring the conformational space of protein side chains using - dead-end elimination and the A* algorithm. Proteins. - -.. [nussinov1991] Nussinov R and Wolfson HJ (1991). - Efficient detection of three-dimensional structural motifs in - biological macromolecules by computer vision techniques. PNAS. - -.. [shapovalov2011] Shapovalov MV and Dunbrack RL Jr. (2011). - A smoothed backbone-dependent rotamer library for proteins - derived from adaptive kernel density estimates and - regressions. Structure. - -.. [soding2005] Söding J (2005). - Protein homology detection by HMM-HMM comparison. - Bioinformatics. - -.. [solis2006] Solis AD, Rackovsky S (2006). Improvement of statistical - potentials and threading score functions using information - maximization. Proteins. - -.. [trott2010] Trott O, Olson AJ (2010). AutoDock Vina: improving the speed and - accuracy of docking with a new scoring function, efficient - optimization and multithreading. J Comput Chem - -.. [zhou2005] Zhou H, Zhou Y (2005). - Fold Recognition by Combining Sequence Profiles Derived From - Evolution and From Depth-Dependent Structural Alignment of - Fragments. Proteins. - +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +References +========== + +.. [biasini2013] Biasini M, Schmidt T, Bienert S, Mariani V, Studer G, Haas J, + Johner N, Schenk AD, Philippsen A and Schwede T (2013). + OpenStructure: an integrated software framework for + computational structural biology. Acta Cryst. + +.. [canutescu2003] Canutescu AA and Dunbrack RL Jr. (2003). + Cyclic coordinate descent: A robotics algorithm for protein + loop closure. Protein Sci. + +.. [canutescu2003b] Canutescu AA, Shelenkov AA, Dunbrack RL Jr. (2003). + A graph-theory algorithm for rapid protein side-chain + prediction. Protein Sci. + +.. [coutsias2005] Coutsias EA, Seok C, Wester MJ, Dill KA (2005). + Resultants and loop closure. International Journal of Quantum + Chemistry. + +.. [chakravarty1999] Chakravarty S, Varadarajan R (1999). + Residue depth: a novel parameter for the analysis of + protein structure and stability. Structure. + +.. [davis2006] Davis IW, Arendall WB, Richardson DC, Richardson JS (2006). + The backrub motion: how protein backbone shrugs when a sidechain + dances. Structure. + +.. [goldstein1994] Goldstein RF (1994). + Efficient rotamer elimination applied to protein side-chains + and related spin glasses. Biophys J. + +.. [Jones1999] Jones DT (1999). + Protein secondary structure prediction based on position-specific + scoring matrices. J. Mol. Biol. + +.. [kabsch1983] Kabsch W, Sander C (1983). + Dictionary of protein secondary structure: pattern recognition of + hydrogen-bonded and geometrical features. Biopolymers. + +.. [krivov2009] Krivov GG, Shapovalov MV and Dunbrack RL Jr. (2009). + Improved prediction of protein side-chain conformations with + SCWRL4. Proteins. + +.. [leach1998] Leach AR, Lemon AP (1998). + Exploring the conformational space of protein side chains using + dead-end elimination and the A* algorithm. Proteins. + +.. [nussinov1991] Nussinov R and Wolfson HJ (1991). + Efficient detection of three-dimensional structural motifs in + biological macromolecules by computer vision techniques. PNAS. + +.. [shapovalov2011] Shapovalov MV and Dunbrack RL Jr. (2011). + A smoothed backbone-dependent rotamer library for proteins + derived from adaptive kernel density estimates and + regressions. Structure. + +.. [soding2005] Söding J (2005). + Protein homology detection by HMM-HMM comparison. + Bioinformatics. + +.. [solis2006] Solis AD, Rackovsky S (2006). Improvement of statistical + potentials and threading score functions using information + maximization. Proteins. + +.. [trott2010] Trott O, Olson AJ (2010). AutoDock Vina: improving the speed and + accuracy of docking with a new scoring function, efficient + optimization and multithreading. J Comput Chem + +.. [zhou2005] Zhou H, Zhou Y (2005). + Fold Recognition by Combining Sequence Profiles Derived From + Evolution and From Depth-Dependent Structural Alignment of + Fragments. Proteins. + diff --git a/doc/html/_sources/scoring/all_atom_scorers.rst.txt b/doc/html/_sources/scoring/all_atom_scorers.txt similarity index 97% rename from doc/html/_sources/scoring/all_atom_scorers.rst.txt rename to doc/html/_sources/scoring/all_atom_scorers.txt index a4b86c4178b69fd4cbbad13cafb88ae11ddb5052..65c2b942acd2d8a41e161ec7871cd51ccb52b542 100644 --- a/doc/html/_sources/scoring/all_atom_scorers.rst.txt +++ b/doc/html/_sources/scoring/all_atom_scorers.txt @@ -1,363 +1,363 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -All Atom Scorers -================================================================================ - -.. currentmodule:: promod3.scoring - - -AllAtomOverallScorer class --------------------------------------------------------------------------------- - -.. class:: AllAtomOverallScorer - - Container that allows for the storage of multiple scorers identified by a key - (:class:`str`) and the computation of combined scores. - - Scorers need to be individually set or loaded by - :func:`LoadDefaultAllAtomOverallScorer()` - - .. method:: Contains(key) - - :return: True, if a scorer object for this key was already added. - :rtype: :class:`bool` - :param key: Key for desired scorer. - :type key: :class:`str` - - .. method:: Get(key) - - :return: Scorer with the given *key* (read-only access). - :rtype: :class:`AllAtomScorer` - :param key: Key for desired scorer. - :type key: :class:`str` - :raises: :exc:`~exceptions.RuntimeError` if there is no scorer with that - *key*. - - .. method:: AttachEnvironment(env) - - :param env: Link all scorers to this score environment. - :type env: :class:`~promod3.loop.AllAtomEnv` - - .. method:: CalculateLinearCombination(linear_weights, start_resnum, \ - num_residues, chain_idx) - - Calculate linear combination of scores for the desired loop(s) (extracted - from environment) against the set environment (see - :meth:`AllAtomScorer.CalculateScore`). - - :param linear_weights: Weights for each desired scorer. You can add a - constant value to each score by defining a weight - with key "intercept". - :type linear_weights: :class:`dict` (keys: :class:`str`, - values: :class:`float`) - :param start_resnum: Res. number(s) defining the position(s) in the SEQRES - (see :class:`~promod3.loop.AllAtomEnv` for indexing) - :type start_resnum: :class:`int` / :class:`list` of :class:`int` - :param num_residues: Length of loop(s). - :type num_residues: :class:`int` / :class:`list` of :class:`int` - :param chain_idx: Index of chain the loop(s) belongs to - (see :class:`~promod3.loop.AllAtomEnv` for indexing) - :type chain_idx: :class:`int` / :class:`list` of :class:`int` - - :return: Score for the given set of atoms. - :rtype: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if *linear_weights* has a *key* for - which no scorer exists or anything raised in - :meth:`AllAtomScorer.CalculateScore` for any of the used scorers. - - .. method:: __getitem__(key) - __setitem__(key) - - Allow read/write access (with [*key*]) to scorer object with given key. - - :param key: Key for desired scorer. - :type key: :class:`str` - -.. function:: LoadDefaultAllAtomOverallScorer() - - :returns: Loads or creates the default scorers accessible through - following keys: - "aa_interaction", "aa_packing", "aa_clash" - :rtype: :class:`AllAtomOverallScorer` - -AllAtomScorer base class --------------------------------------------------------------------------------- - -.. class:: AllAtomScorer - - Base class for all the all atom scorers listed below. - - .. method:: AttachEnvironment(env) - - :param env: Link scorer to this score environment. - :type env: :class:`~promod3.loop.AllAtomEnv` - - .. method:: CalculateScore(start_resnum, num_residues, chain_idx) - - Calculates score for the desired loop(s) (extracted from environment) against - the set environment. Unless otherwise noted in the scorer, a lower "score" - is better! - - :param start_resnum: Res. number(s) defining the position(s) in the SEQRES - (see :class:`~promod3.loop.AllAtomEnv` for indexing) - :type start_resnum: :class:`int` / :class:`list` of :class:`int` - :param num_residues: Length of loop(s). - :type num_residues: :class:`int` / :class:`list` of :class:`int` - :param chain_idx: Index of chain the loop(s) belongs to - (see :class:`~promod3.loop.AllAtomEnv` for indexing) - :type chain_idx: :class:`int` / :class:`list` of :class:`int` - - :return: Score for the given set of atoms. - :rtype: :class:`float` - - :raises: (for most scorers) :exc:`~exceptions.RuntimeError` if scorer was - never attached to a score environment, if scorer has never been - properly initialized or if *chain_index* / *start_resnum* lead to - invalid positions. - - .. method:: CalculateScoreProfile(start_resnum, num_residues, chain_idx=0) - - Calculates per residue scores for the desired loop(s) (extracted from - environment) against the set environment. - - :param start_resnum: Res. number(s) defining the position(s) in the SEQRES - (see :class:`~promod3.loop.AllAtomEnv` for indexing) - :type start_resnum: :class:`int` / :class:`list` of :class:`int` - :param num_residues: Length of loop(s). - :type num_residues: :class:`int` - :param chain_idx: Index of chain the loop(s) belongs to - (see :class:`~promod3.loop.AllAtomEnv` for indexing) - :type chain_idx: :class:`int` / :class:`list` of :class:`int` - - :return: Scores for the given loop(s), one for each residue. - :rtype: :class:`list` of :class:`float` / :class:`list` of :class:`list` - of :class:`float` - - :raises: same :exc:`~exceptions.RuntimeError` as :meth:`CalculateScore`. - - -AllAtomInteractionScorer class --------------------------------------------------------------------------------- - -.. class:: AllAtomInteractionScorer(cutoff, bins, seq_sep) - - Inherits all functionality of :class:`AllAtomScorer`. Evaluates a pairwise - pseudo interaction energy between all atoms which are located within a - *cutoff* and which are at least *seq_sep* residues apart. An energy is - assigned to each distance using equally sized bins and distinguishing all - possible pairs of atoms (usually the energy only differs for chemically - distinguishable heavy atoms). - By default, the scorer calculates the scores by - including everything, the stuff set in the environment and the coordinates - in the input loops. You can change this behaviour with the according - functions. - - The scorer needs to be initialized either by loading a predefined scorer (e.g. - :func:`LoadAllAtomInteractionScorer`) or by setting all energies (see :meth:`SetEnergy`). - - :param cutoff: Radius in which other atoms are counted. - :type cutoff: :class:`float` - :param bins: Number of equally sized bins to discretize distances (range - of [0,*cutoff*]). - :type bins: :class:`int` - :param seq_sep: Minimal separation in sequence two residues must have to - be considered. - :type seq_sep: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *cutoff* < 0, *bins* < 1 or - *seq_sep* < 1. - - .. staticmethod:: Load(filename) - LoadPortable(filename) - - Loads raw binary file generated with :meth:`Save` (optimized for fast - reading) / portable file generated with :meth:`SavePortable` (slower but - less machine-dependent). - - :param filename: Path to the file from which to load. - :type filename: :class:`str` - - :returns: The loaded scorer - :rtype: :class:`AllAtomInteractionScorer` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if - file cannot be parsed (see :ref:`here <portableIO>` for details). - - .. method:: Save(filename) - SavePortable(filename) - - Saves a raw / portable binary representation. Use portable files for - distribution and convert locally to raw files. See :ref:`here <portableIO>` - for details. - - :param filename: Path to the file where it will be saved. - :type filename: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. - - .. method:: SetEnergy(aaa1, aaa2, bin, energy) - - Setup one energy value. Unless a predefined scorer is loaded, this must be - called for every pair of heavy atom types and for every *bin* < *bins*. - Internal symmetry is enforced => Calling SetEnergy(aaa1, aaa2, bin, energy) is - equivalent to calling SetEnergy(aaa1, aaa2, bin, energy) AND - SetEnergy(aaa2, aaa1, bin, energy). - - - :param aaa1: Heavy atom type for first interaction partner. - :type aaa1: :class:`~promod3.loop.AminoAcidAtom` - :param aaa2: Heavy atom type for second interaction partner. - :type aaa2: :class:`~promod3.loop.AminoAcidAtom` - :param bin: Discrete bin describing the interaction distance. - :type bin: :class:`int` - :param energy: Energy to set for those parameters. - :type energy: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if inputs are invalid - - .. method:: DoInternalScores(do_it) - - :param do_it: Whether to include pairwise interactions within the - loop. True by default. - :type do_it: :class:`bool` - - .. method:: DoExternalScores(do_it) - - :param do_it: Whether to include pairwise interactions towards the - environment. True by default. - :type do_it: :class:`bool` - - .. method:: DoNormalize(do_it) - - :param do_it: Whether to normalize the calculated scores by the number - of residues in the input loop. True by default. - :type do_it: :class:`bool` - - -.. function:: LoadAllAtomInteractionScorer() - - :returns: The default predefined AllAtomInteractionScorer (loaded from disk) - :rtype: :class:`AllAtomInteractionScorer` - - -AllAtomPackingScorer class --------------------------------------------------------------------------------- - -.. class:: AllAtomPackingScorer(cutoff, max_count) - - Inherits all functionality of :class:`AllAtomScorer`. Evaluates pseudo - energies by counting surrounding atoms within a certain *cutoff* radius around - all heavy atoms not belonging to the assessed residue itself. - - The scorer needs to be initialized either by loading a predefined scorer (e.g. - :func:`LoadAllAtomPackingScorer`) or by setting all energies (see - :meth:`SetEnergy`). - - :param cutoff: Radius in which other atoms are counted. - :type cutoff: :class:`float` - :param max_count: If number of other atoms exceeds *max_count*, it will - be set to this number. - :type max_count: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *cutoff* < 0, *max_count* < 1. - - .. staticmethod:: Load(filename) - LoadPortable(filename) - - Loads raw binary file generated with :meth:`Save` (optimized for fast - reading) / portable file generated with :meth:`SavePortable` (slower but - less machine-dependent). - - :param filename: Path to the file from which to load. - :type filename: :class:`str` - - :returns: The loaded scorer - :rtype: :class:`AllAtomPackingScorer` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if - file cannot be parsed (see :ref:`here <portableIO>` for details). - - .. method:: Save(filename) - SavePortable(filename) - - Saves a raw / portable binary representation. Use portable files for - distribution and convert locally to raw files. See :ref:`here <portableIO>` - for details. - - :param filename: Path to the file where it will be saved. - :type filename: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. - - .. method:: SetEnergy(aaa, count, energy) - - Setup one energy value. Unless a predefined scorer is loaded, this must be - called for every heavy atom type and for every *count* <= *max_count*. - - :param aaa: Heavy atom type for which to set energy. - :type aaa: :class:`~promod3.loop.AminoAcidAtom` - :param count: Number of surrounding atoms for which to set energy. - :type count: :class:`int` - :param energy: Energy to set for those parameters. - :type energy: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if inputs are invalid - - .. method:: DoNormalize(do_it) - - :param do_it: Whether to normalize the calculated scores by the number - of residues in the input loop. True by default. - :type do_it: :class:`bool` - - -.. function:: LoadAllAtomPackingScorer() - - :returns: The default predefined AllAtomPackingScorer (loaded from disk) - :rtype: :class:`AllAtomPackingScorer` - - -AllAtomClashScorer class --------------------------------------------------------------------------------- - -.. class:: AllAtomClashScorer - - Inherits all functionality of :class:`AllAtomScorer`. Calculates a simple - clash score of all atoms against the environment. There is no need to define - any parameters here as all interaction energies are fixed (see Eq. (11) in - [canutescu2003b]_). By default, the scorer calculates the scores by - including everything, the stuff set in the environment and the coordinates - in the input loops. You can change this behaviour with the according - functions. - - .. method:: DoInternalScores(do_it) - - :param do_it: Whether to include pairwise interactions within the - loop. True by default. - :type do_it: :class:`bool` - - .. method:: DoExternalScores(do_it) - - :param do_it: Whether to include pairwise interactions towards the - environment. True by default. - :type do_it: :class:`bool` - - .. method:: DoNormalize(do_it) - - :param do_it: Whether to normalize the calculated scores by the number - of residues in the input loop. True by default. - :type do_it: :class:`bool` +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +All Atom Scorers +================================================================================ + +.. currentmodule:: promod3.scoring + + +AllAtomOverallScorer class +-------------------------------------------------------------------------------- + +.. class:: AllAtomOverallScorer + + Container that allows for the storage of multiple scorers identified by a key + (:class:`str`) and the computation of combined scores. + + Scorers need to be individually set or loaded by + :func:`LoadDefaultAllAtomOverallScorer()` + + .. method:: Contains(key) + + :return: True, if a scorer object for this key was already added. + :rtype: :class:`bool` + :param key: Key for desired scorer. + :type key: :class:`str` + + .. method:: Get(key) + + :return: Scorer with the given *key* (read-only access). + :rtype: :class:`AllAtomScorer` + :param key: Key for desired scorer. + :type key: :class:`str` + :raises: :exc:`~exceptions.RuntimeError` if there is no scorer with that + *key*. + + .. method:: AttachEnvironment(env) + + :param env: Link all scorers to this score environment. + :type env: :class:`~promod3.loop.AllAtomEnv` + + .. method:: CalculateLinearCombination(linear_weights, start_resnum, \ + num_residues, chain_idx) + + Calculate linear combination of scores for the desired loop(s) (extracted + from environment) against the set environment (see + :meth:`AllAtomScorer.CalculateScore`). + + :param linear_weights: Weights for each desired scorer. You can add a + constant value to each score by defining a weight + with key "intercept". + :type linear_weights: :class:`dict` (keys: :class:`str`, + values: :class:`float`) + :param start_resnum: Res. number(s) defining the position(s) in the SEQRES + (see :class:`~promod3.loop.AllAtomEnv` for indexing) + :type start_resnum: :class:`int` / :class:`list` of :class:`int` + :param num_residues: Length of loop(s). + :type num_residues: :class:`int` / :class:`list` of :class:`int` + :param chain_idx: Index of chain the loop(s) belongs to + (see :class:`~promod3.loop.AllAtomEnv` for indexing) + :type chain_idx: :class:`int` / :class:`list` of :class:`int` + + :return: Score for the given set of atoms. + :rtype: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if *linear_weights* has a *key* for + which no scorer exists or anything raised in + :meth:`AllAtomScorer.CalculateScore` for any of the used scorers. + + .. method:: __getitem__(key) + __setitem__(key) + + Allow read/write access (with [*key*]) to scorer object with given key. + + :param key: Key for desired scorer. + :type key: :class:`str` + +.. function:: LoadDefaultAllAtomOverallScorer() + + :returns: Loads or creates the default scorers accessible through + following keys: + "aa_interaction", "aa_packing", "aa_clash" + :rtype: :class:`AllAtomOverallScorer` + +AllAtomScorer base class +-------------------------------------------------------------------------------- + +.. class:: AllAtomScorer + + Base class for all the all atom scorers listed below. + + .. method:: AttachEnvironment(env) + + :param env: Link scorer to this score environment. + :type env: :class:`~promod3.loop.AllAtomEnv` + + .. method:: CalculateScore(start_resnum, num_residues, chain_idx) + + Calculates score for the desired loop(s) (extracted from environment) against + the set environment. Unless otherwise noted in the scorer, a lower "score" + is better! + + :param start_resnum: Res. number(s) defining the position(s) in the SEQRES + (see :class:`~promod3.loop.AllAtomEnv` for indexing) + :type start_resnum: :class:`int` / :class:`list` of :class:`int` + :param num_residues: Length of loop(s). + :type num_residues: :class:`int` / :class:`list` of :class:`int` + :param chain_idx: Index of chain the loop(s) belongs to + (see :class:`~promod3.loop.AllAtomEnv` for indexing) + :type chain_idx: :class:`int` / :class:`list` of :class:`int` + + :return: Score for the given set of atoms. + :rtype: :class:`float` + + :raises: (for most scorers) :exc:`~exceptions.RuntimeError` if scorer was + never attached to a score environment, if scorer has never been + properly initialized or if *chain_index* / *start_resnum* lead to + invalid positions. + + .. method:: CalculateScoreProfile(start_resnum, num_residues, chain_idx=0) + + Calculates per residue scores for the desired loop(s) (extracted from + environment) against the set environment. + + :param start_resnum: Res. number(s) defining the position(s) in the SEQRES + (see :class:`~promod3.loop.AllAtomEnv` for indexing) + :type start_resnum: :class:`int` / :class:`list` of :class:`int` + :param num_residues: Length of loop(s). + :type num_residues: :class:`int` + :param chain_idx: Index of chain the loop(s) belongs to + (see :class:`~promod3.loop.AllAtomEnv` for indexing) + :type chain_idx: :class:`int` / :class:`list` of :class:`int` + + :return: Scores for the given loop(s), one for each residue. + :rtype: :class:`list` of :class:`float` / :class:`list` of :class:`list` + of :class:`float` + + :raises: same :exc:`~exceptions.RuntimeError` as :meth:`CalculateScore`. + + +AllAtomInteractionScorer class +-------------------------------------------------------------------------------- + +.. class:: AllAtomInteractionScorer(cutoff, bins, seq_sep) + + Inherits all functionality of :class:`AllAtomScorer`. Evaluates a pairwise + pseudo interaction energy between all atoms which are located within a + *cutoff* and which are at least *seq_sep* residues apart. An energy is + assigned to each distance using equally sized bins and distinguishing all + possible pairs of atoms (usually the energy only differs for chemically + distinguishable heavy atoms). + By default, the scorer calculates the scores by + including everything, the stuff set in the environment and the coordinates + in the input loops. You can change this behaviour with the according + functions. + + The scorer needs to be initialized either by loading a predefined scorer (e.g. + :func:`LoadAllAtomInteractionScorer`) or by setting all energies (see :meth:`SetEnergy`). + + :param cutoff: Radius in which other atoms are counted. + :type cutoff: :class:`float` + :param bins: Number of equally sized bins to discretize distances (range + of [0,*cutoff*]). + :type bins: :class:`int` + :param seq_sep: Minimal separation in sequence two residues must have to + be considered. + :type seq_sep: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *cutoff* < 0, *bins* < 1 or + *seq_sep* < 1. + + .. staticmethod:: Load(filename) + LoadPortable(filename) + + Loads raw binary file generated with :meth:`Save` (optimized for fast + reading) / portable file generated with :meth:`SavePortable` (slower but + less machine-dependent). + + :param filename: Path to the file from which to load. + :type filename: :class:`str` + + :returns: The loaded scorer + :rtype: :class:`AllAtomInteractionScorer` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if + file cannot be parsed (see :ref:`here <portableIO>` for details). + + .. method:: Save(filename) + SavePortable(filename) + + Saves a raw / portable binary representation. Use portable files for + distribution and convert locally to raw files. See :ref:`here <portableIO>` + for details. + + :param filename: Path to the file where it will be saved. + :type filename: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. + + .. method:: SetEnergy(aaa1, aaa2, bin, energy) + + Setup one energy value. Unless a predefined scorer is loaded, this must be + called for every pair of heavy atom types and for every *bin* < *bins*. + Internal symmetry is enforced => Calling SetEnergy(aaa1, aaa2, bin, energy) is + equivalent to calling SetEnergy(aaa1, aaa2, bin, energy) AND + SetEnergy(aaa2, aaa1, bin, energy). + + + :param aaa1: Heavy atom type for first interaction partner. + :type aaa1: :class:`~promod3.loop.AminoAcidAtom` + :param aaa2: Heavy atom type for second interaction partner. + :type aaa2: :class:`~promod3.loop.AminoAcidAtom` + :param bin: Discrete bin describing the interaction distance. + :type bin: :class:`int` + :param energy: Energy to set for those parameters. + :type energy: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if inputs are invalid + + .. method:: DoInternalScores(do_it) + + :param do_it: Whether to include pairwise interactions within the + loop. True by default. + :type do_it: :class:`bool` + + .. method:: DoExternalScores(do_it) + + :param do_it: Whether to include pairwise interactions towards the + environment. True by default. + :type do_it: :class:`bool` + + .. method:: DoNormalize(do_it) + + :param do_it: Whether to normalize the calculated scores by the number + of residues in the input loop. True by default. + :type do_it: :class:`bool` + + +.. function:: LoadAllAtomInteractionScorer() + + :returns: The default predefined AllAtomInteractionScorer (loaded from disk) + :rtype: :class:`AllAtomInteractionScorer` + + +AllAtomPackingScorer class +-------------------------------------------------------------------------------- + +.. class:: AllAtomPackingScorer(cutoff, max_count) + + Inherits all functionality of :class:`AllAtomScorer`. Evaluates pseudo + energies by counting surrounding atoms within a certain *cutoff* radius around + all heavy atoms not belonging to the assessed residue itself. + + The scorer needs to be initialized either by loading a predefined scorer (e.g. + :func:`LoadAllAtomPackingScorer`) or by setting all energies (see + :meth:`SetEnergy`). + + :param cutoff: Radius in which other atoms are counted. + :type cutoff: :class:`float` + :param max_count: If number of other atoms exceeds *max_count*, it will + be set to this number. + :type max_count: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *cutoff* < 0, *max_count* < 1. + + .. staticmethod:: Load(filename) + LoadPortable(filename) + + Loads raw binary file generated with :meth:`Save` (optimized for fast + reading) / portable file generated with :meth:`SavePortable` (slower but + less machine-dependent). + + :param filename: Path to the file from which to load. + :type filename: :class:`str` + + :returns: The loaded scorer + :rtype: :class:`AllAtomPackingScorer` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if + file cannot be parsed (see :ref:`here <portableIO>` for details). + + .. method:: Save(filename) + SavePortable(filename) + + Saves a raw / portable binary representation. Use portable files for + distribution and convert locally to raw files. See :ref:`here <portableIO>` + for details. + + :param filename: Path to the file where it will be saved. + :type filename: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. + + .. method:: SetEnergy(aaa, count, energy) + + Setup one energy value. Unless a predefined scorer is loaded, this must be + called for every heavy atom type and for every *count* <= *max_count*. + + :param aaa: Heavy atom type for which to set energy. + :type aaa: :class:`~promod3.loop.AminoAcidAtom` + :param count: Number of surrounding atoms for which to set energy. + :type count: :class:`int` + :param energy: Energy to set for those parameters. + :type energy: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if inputs are invalid + + .. method:: DoNormalize(do_it) + + :param do_it: Whether to normalize the calculated scores by the number + of residues in the input loop. True by default. + :type do_it: :class:`bool` + + +.. function:: LoadAllAtomPackingScorer() + + :returns: The default predefined AllAtomPackingScorer (loaded from disk) + :rtype: :class:`AllAtomPackingScorer` + + +AllAtomClashScorer class +-------------------------------------------------------------------------------- + +.. class:: AllAtomClashScorer + + Inherits all functionality of :class:`AllAtomScorer`. Calculates a simple + clash score of all atoms against the environment. There is no need to define + any parameters here as all interaction energies are fixed (see Eq. (11) in + [canutescu2003b]_). By default, the scorer calculates the scores by + including everything, the stuff set in the environment and the coordinates + in the input loops. You can change this behaviour with the according + functions. + + .. method:: DoInternalScores(do_it) + + :param do_it: Whether to include pairwise interactions within the + loop. True by default. + :type do_it: :class:`bool` + + .. method:: DoExternalScores(do_it) + + :param do_it: Whether to include pairwise interactions towards the + environment. True by default. + :type do_it: :class:`bool` + + .. method:: DoNormalize(do_it) + + :param do_it: Whether to normalize the calculated scores by the number + of residues in the input loop. True by default. + :type do_it: :class:`bool` diff --git a/doc/html/_sources/scoring/backbone_score_env.rst.txt b/doc/html/_sources/scoring/backbone_score_env.txt similarity index 97% rename from doc/html/_sources/scoring/backbone_score_env.rst.txt rename to doc/html/_sources/scoring/backbone_score_env.txt index 7b5cf46a9905c7990e8603d34b9b1dd8a9f01a33..05d5649a9f76e9081fcea61f851d6446945f20d9 100644 --- a/doc/html/_sources/scoring/backbone_score_env.rst.txt +++ b/doc/html/_sources/scoring/backbone_score_env.txt @@ -1,295 +1,295 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Backbone Score Environment -================================================================================ - -.. currentmodule:: promod3.scoring - -BackboneScoreEnv class --------------------------------------------------------------------------------- - -.. class:: BackboneScoreEnv(seqres) - - The backbone score environment contains and handles all model-specific data - used by the scorers. It is linked to a (list of) seqres (one per chain) at - construction. The idea is to initialize it at the beginning of the modelling - process with all known data (positions extracted from template, psipred - prediction, etc). All scorers attached to that environment will see that data - and can calculate scores accordingly. - Scoring with this setup is a two step process: - - * Set the positions you want to score in the environment to make it available - to all attached scorers - * Call the scorers to get the desired scores - - One problem that might occur is that you mess around with the environment and - at some point you want to restore the original state. The - :class:`BackboneScoreEnv` provides a Stash / Pop mechanism to perform this - task. - - :param seqres: Internal SEQRES to be set (single chain or list with one per - chain). Whenever setting structural data, consistency with this SEQRES is enforced. - :type seqres: :class:`str` / :class:`ost.seq.SequenceHandle` / - :class:`list` of :class:`str` / :class:`ost.seq.SequenceList` - - To access parts of the environment there are two key arguments to consider: - - * *chain_idx*: Index of chain as it occurs in *seqres* (0 for single sequence) - * *start_resnum*: Residue number defining the position in the SEQRES of chain - with index *chain_idx*. **The numbering starts for every chain with the - value 1**. - - .. method:: Copy() - - :returns: A copy of the current :class:`BackboneScoreEnv` without any scorers - attached - :rtype: :class:`BackboneScoreEnv` - - .. method:: SetInitialEnvironment(env_structure) - - Sets structural environment with which loops to be scored interact. If - structural data was already set, all the existing data gets cleared first. - - :param env_structure: Structral data to be set as environment. The chains - in *env_structure* are expected to be in the same - order as the SEQRES items provided in constructor. - :type env_structure: :class:`ost.mol.EntityHandle` - - :raises: :exc:`~exceptions.RuntimeError` if *env* is inconsistent with - SEQRES set in constructor. This can be because of corrupt residue - numbers or sequence mismatches. - - .. method:: SetEnvironment(bb_list, start_resnum, chain_idx=0) - - Add/update structural information in environment. 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. - :type bb_list: :class:`~promod3.loop.BackboneList` - :param start_resnum: Res. number defining the position in the SEQRES. - :type start_resnum: :class:`int` / :class:`ost.mol.ResNum` - :param chain_idx: Index of chain the structural data belongs to. - :type chain_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if sequence of *bb_list* is - inconsistent with previously SEQRES set in constructor or when - either *start_resnum* or *chain_idx* point to invalid positions in - the SEQRES. - - .. method:: ClearEnvironment(start_resnum, num_residues, chain_idx=0) - - Clears a stretch of length *num_residues* in the environment in chain - with idx *chain_idx* starting from residue number *start_resnum* - - :param start_resnum: Start of stretch to clear - :type start_resnum: :class:`int` - :param num_residues: Length of stretch to clear - :type num_residues: :class:`int` - :param chain_idx: Chain the stretch belongs to - :type chain_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` when either *start_resnum* or - *chain_idx* point to invalid positions in the SEQRES. - - .. method:: SetPsipredPrediction(pred) - - Set the psipred prediction, which is necessary to calculate some scores. - - :param pred: Psipred prediction to set (one per chain). - :type pred: :class:`PsipredPrediction` / :class:`list` of - :class:`PsipredPrediction` - - :raises: :exc:`~exceptions.RuntimeError` if the number of predictions is - inconsistent with the number of internal chains or when one of the - predictions' sizes is inconsistent with the internal SEQRES size. - - .. method:: AddPairwiseFunction(function, function_type) - - Adds a pairwise function that can be used in :meth:`ApplyPairwiseFunction`. - - :param function: Pairwise function to be added. - :type function: :class:`PairwiseFunction` - :param function_type: What distances should be looked at for this function. - :type function_type: :class:`PairwiseFunctionType` - :return: Function index to be used in :meth:`ApplyPairwiseFunction`. - :rtype: :class:`int` - - .. method:: ApplyPairwiseFunction(chain_idx_one, resnum_one, chain_idx_two,\ - resnum_two, f_idx) - - Define two residues to be evaluated with a given pairwise function. This - data can then be used by scorers. Note that the pairs are symmetric and so - there is no need to add them twice with switched residues. - - :param chain_idx_one: Chain index of first residue - :type chain_idx_one: :class:`int` - :param resnum_one: Res. number of first residue - :type resnum_one: :class:`int` - :param chain_idx_two: Chain index of second residue - :type chain_idx_two: :class:`int` - :param resnum_two: Res. number of second residue - :type resnum_two: :class:`int` - :param f_idx: Index of pairwise function (as returned by - :meth:`AddPairwiseFunction`) - :type f_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if any of the chain indices or - res. numbers is invalid, the interaction partners are the same - residue or when *f_idx* is an invalid index. - - .. method:: Stash(start_rnum, num_residues, chain_idx) - - FILO style stashing. You can perform up to 100 stash operations to save - the current state of certain stretches in the environment. This state can - be restored by calling :func:`Pop`. In one stash operation you can either - stash one stretch by providing integers as input or several stretches by - providing lists of integers. - - :param start_rnum: start rnum of stretch to stash - :param num_residues: length of stretch to stash - :param chain_idx: chain idx of stretch to stash - - :type start_rnum: :class:`int` / :class:`list` of :class:`int` - :type num_residues: :class:`int` / :class:`list` of :class:`int` - :type chain_idx: :class:`int` / :class:`list` of :class:`int` - - .. method:: Pop() - - Remove and apply the the last stash operation. - - .. method:: GetSeqres() - - :return: SEQRES that was set in constructor (one sequence per chain). - :rtype: :class:`ost.seq.SequenceList` - - -Pairwise function classes --------------------------------------------------------------------------------- - -.. class:: PairwiseFunctionType - - Enumerates the pairwise function types. Possible values: - - * *CA_PAIRWISE_FUNCTION* - Evaluate CA atoms distances. - * *CB_PAIRWISE_FUNCTION* - Evaluate CB atoms distances. - -.. class:: PairwiseFunction - - Base class for any pairwise function. - - .. method:: Score(distance) - - :return: Score for a given pairwise distance - :rtype: :class:`float` - :param distance: Pairwise distance - :type distance: :class:`float` - -.. class:: ConstraintFunction(min_dist, max_dist, values) - - Inherits all functionality of :class:`PairwiseFunction`. - Defines a constraint function. The score for a distance between *min_dist* and - *max_dist* is determined by linear interpolation assuming the first and last - value exactly lying on *min_dist* and *max_dist*. For distances outside the - range defined by *min_dist* and *max_dist*, the returned score is 0.0. - - :param min_dist: Minimal distance to be considered - :param max_dist: Maximal distance to be considered - :param values: The possible values that get returned when the distance is - between *min_dist* and *max_dist* - - :type min_dist: :class:`float` - :type max_dist: :class:`float` - :type values: :class:`list` of :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if *min_dist* >= *max_dist* or when - *min_dist* or *max_dist* are negative or when *values* contains no - elements - -.. class:: ContactFunction(max_dist, score) - - Inherits all functionality of :class:`PairwiseFunction`. - Defines a simple contact function. The score value is *score* if - distance < *max_dist* and 0.0 otherwise. - - :param max_dist: Maximal distance to be in contact - :param score: Value that gets returned if in contact - - :type max_dist: :class:`float` - :type score: :class:`float` - - -Convenient construction of pairwise functions --------------------------------------------------------------------------------- - -.. class:: DiscoContainer(seqres, [function_type = CA_PAIRWISE_FUNCTION]) - - A container collecting structural information until it can be added in form - of :class:`ConstraintFunction` to a :class:`BackboneScoreEnv` . - The constraint functions are built after the principle of QMEANDisCo. - - :param seqres: The sequence with which all added structures must match - :param function_type: Whether you want to assess pairwise distances between CA - or CB atoms - - :type seqres: :class:`ost.seq.SequenceHandle` - :type function_type: :class:`PairwiseFunctionType` - - .. function:: AddStructuralInfo(aln) - - :param aln: Alignment, where first sequence represent the initial - SEQRES and the second sequence the actual structural - info. The second sequence must have a view attached. - - :type aln: :class:`ost.seq.AlignmentHandle` - - :raises: :exc:`~exceptions.RuntimeError` if number of sequences in *aln* is - not two, the SEQRES does not match or when the second sequence in - *aln* has no view attached. - - .. function:: AttachConstraints(env, chain_indices, [cluster_thresh = 0.5, gamma = 70.0]) - - Generates distance constraints and adds it to *env*. - It first clusters the added sequences with a pairwise normalised sequence - similarity based on BLOSUM62. It's a hierarchical clustering with with an - average distance metric and *cluster_thresh* as threshold to merge two - clusters. Constraint functions are built for every cluster and finally - merged. The influence of the per cluster constraint functions to the overall - function depends on the clusters average sequence similarity to the - target SEQRES. How fast this influence vanishes gets controlled by gamma. - The higher it is, the faster vanishes the influence of structural info - from distant clusters. The final pairwise cluster functions get then - directly added to the scoring *env*. - - :param env: The scoring env to which the constraint - should be added - :param chain_indices: Indices of chains for which the constraints should - be added - :param cluster_thresh: Controls the clustering behaviour at the initial - stage of constraint construction - :param gamma: Controls how fast the influence of constraint - functions of distant clusters vanishes - - :type env: :class:`BackboneScoreEnv` - :type chain_indices: :class:`list` of :class:`int` - :type cluster_thresh: :class:`float` - :type gamma: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if one of the *chain_indices* is - invalid or the SEQRES set in *env* for specified chain is - inconsistent with SEQRES you initialized the DiscoContainer with +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Backbone Score Environment +================================================================================ + +.. currentmodule:: promod3.scoring + +BackboneScoreEnv class +-------------------------------------------------------------------------------- + +.. class:: BackboneScoreEnv(seqres) + + The backbone score environment contains and handles all model-specific data + used by the scorers. It is linked to a (list of) seqres (one per chain) at + construction. The idea is to initialize it at the beginning of the modelling + process with all known data (positions extracted from template, psipred + prediction, etc). All scorers attached to that environment will see that data + and can calculate scores accordingly. + Scoring with this setup is a two step process: + + * Set the positions you want to score in the environment to make it available + to all attached scorers + * Call the scorers to get the desired scores + + One problem that might occur is that you mess around with the environment and + at some point you want to restore the original state. The + :class:`BackboneScoreEnv` provides a Stash / Pop mechanism to perform this + task. + + :param seqres: Internal SEQRES to be set (single chain or list with one per + chain). Whenever setting structural data, consistency with this SEQRES is enforced. + :type seqres: :class:`str` / :class:`ost.seq.SequenceHandle` / + :class:`list` of :class:`str` / :class:`ost.seq.SequenceList` + + To access parts of the environment there are two key arguments to consider: + + * *chain_idx*: Index of chain as it occurs in *seqres* (0 for single sequence) + * *start_resnum*: Residue number defining the position in the SEQRES of chain + with index *chain_idx*. **The numbering starts for every chain with the + value 1**. + + .. method:: Copy() + + :returns: A copy of the current :class:`BackboneScoreEnv` without any scorers + attached + :rtype: :class:`BackboneScoreEnv` + + .. method:: SetInitialEnvironment(env_structure) + + Sets structural environment with which loops to be scored interact. If + structural data was already set, all the existing data gets cleared first. + + :param env_structure: Structral data to be set as environment. The chains + in *env_structure* are expected to be in the same + order as the SEQRES items provided in constructor. + :type env_structure: :class:`ost.mol.EntityHandle` + + :raises: :exc:`~exceptions.RuntimeError` if *env* is inconsistent with + SEQRES set in constructor. This can be because of corrupt residue + numbers or sequence mismatches. + + .. method:: SetEnvironment(bb_list, start_resnum, chain_idx=0) + + Add/update structural information in environment. 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. + :type bb_list: :class:`~promod3.loop.BackboneList` + :param start_resnum: Res. number defining the position in the SEQRES. + :type start_resnum: :class:`int` / :class:`ost.mol.ResNum` + :param chain_idx: Index of chain the structural data belongs to. + :type chain_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if sequence of *bb_list* is + inconsistent with previously SEQRES set in constructor or when + either *start_resnum* or *chain_idx* point to invalid positions in + the SEQRES. + + .. method:: ClearEnvironment(start_resnum, num_residues, chain_idx=0) + + Clears a stretch of length *num_residues* in the environment in chain + with idx *chain_idx* starting from residue number *start_resnum* + + :param start_resnum: Start of stretch to clear + :type start_resnum: :class:`int` + :param num_residues: Length of stretch to clear + :type num_residues: :class:`int` + :param chain_idx: Chain the stretch belongs to + :type chain_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` when either *start_resnum* or + *chain_idx* point to invalid positions in the SEQRES. + + .. method:: SetPsipredPrediction(pred) + + Set the psipred prediction, which is necessary to calculate some scores. + + :param pred: Psipred prediction to set (one per chain). + :type pred: :class:`PsipredPrediction` / :class:`list` of + :class:`PsipredPrediction` + + :raises: :exc:`~exceptions.RuntimeError` if the number of predictions is + inconsistent with the number of internal chains or when one of the + predictions' sizes is inconsistent with the internal SEQRES size. + + .. method:: AddPairwiseFunction(function, function_type) + + Adds a pairwise function that can be used in :meth:`ApplyPairwiseFunction`. + + :param function: Pairwise function to be added. + :type function: :class:`PairwiseFunction` + :param function_type: What distances should be looked at for this function. + :type function_type: :class:`PairwiseFunctionType` + :return: Function index to be used in :meth:`ApplyPairwiseFunction`. + :rtype: :class:`int` + + .. method:: ApplyPairwiseFunction(chain_idx_one, resnum_one, chain_idx_two,\ + resnum_two, f_idx) + + Define two residues to be evaluated with a given pairwise function. This + data can then be used by scorers. Note that the pairs are symmetric and so + there is no need to add them twice with switched residues. + + :param chain_idx_one: Chain index of first residue + :type chain_idx_one: :class:`int` + :param resnum_one: Res. number of first residue + :type resnum_one: :class:`int` + :param chain_idx_two: Chain index of second residue + :type chain_idx_two: :class:`int` + :param resnum_two: Res. number of second residue + :type resnum_two: :class:`int` + :param f_idx: Index of pairwise function (as returned by + :meth:`AddPairwiseFunction`) + :type f_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if any of the chain indices or + res. numbers is invalid, the interaction partners are the same + residue or when *f_idx* is an invalid index. + + .. method:: Stash(start_rnum, num_residues, chain_idx) + + FILO style stashing. You can perform up to 100 stash operations to save + the current state of certain stretches in the environment. This state can + be restored by calling :func:`Pop`. In one stash operation you can either + stash one stretch by providing integers as input or several stretches by + providing lists of integers. + + :param start_rnum: start rnum of stretch to stash + :param num_residues: length of stretch to stash + :param chain_idx: chain idx of stretch to stash + + :type start_rnum: :class:`int` / :class:`list` of :class:`int` + :type num_residues: :class:`int` / :class:`list` of :class:`int` + :type chain_idx: :class:`int` / :class:`list` of :class:`int` + + .. method:: Pop() + + Remove and apply the the last stash operation. + + .. method:: GetSeqres() + + :return: SEQRES that was set in constructor (one sequence per chain). + :rtype: :class:`ost.seq.SequenceList` + + +Pairwise function classes +-------------------------------------------------------------------------------- + +.. class:: PairwiseFunctionType + + Enumerates the pairwise function types. Possible values: + + * *CA_PAIRWISE_FUNCTION* - Evaluate CA atoms distances. + * *CB_PAIRWISE_FUNCTION* - Evaluate CB atoms distances. + +.. class:: PairwiseFunction + + Base class for any pairwise function. + + .. method:: Score(distance) + + :return: Score for a given pairwise distance + :rtype: :class:`float` + :param distance: Pairwise distance + :type distance: :class:`float` + +.. class:: ConstraintFunction(min_dist, max_dist, values) + + Inherits all functionality of :class:`PairwiseFunction`. + Defines a constraint function. The score for a distance between *min_dist* and + *max_dist* is determined by linear interpolation assuming the first and last + value exactly lying on *min_dist* and *max_dist*. For distances outside the + range defined by *min_dist* and *max_dist*, the returned score is 0.0. + + :param min_dist: Minimal distance to be considered + :param max_dist: Maximal distance to be considered + :param values: The possible values that get returned when the distance is + between *min_dist* and *max_dist* + + :type min_dist: :class:`float` + :type max_dist: :class:`float` + :type values: :class:`list` of :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if *min_dist* >= *max_dist* or when + *min_dist* or *max_dist* are negative or when *values* contains no + elements + +.. class:: ContactFunction(max_dist, score) + + Inherits all functionality of :class:`PairwiseFunction`. + Defines a simple contact function. The score value is *score* if + distance < *max_dist* and 0.0 otherwise. + + :param max_dist: Maximal distance to be in contact + :param score: Value that gets returned if in contact + + :type max_dist: :class:`float` + :type score: :class:`float` + + +Convenient construction of pairwise functions +-------------------------------------------------------------------------------- + +.. class:: DiscoContainer(seqres, [function_type = CA_PAIRWISE_FUNCTION]) + + A container collecting structural information until it can be added in form + of :class:`ConstraintFunction` to a :class:`BackboneScoreEnv` . + The constraint functions are built after the principle of QMEANDisCo. + + :param seqres: The sequence with which all added structures must match + :param function_type: Whether you want to assess pairwise distances between CA + or CB atoms + + :type seqres: :class:`ost.seq.SequenceHandle` + :type function_type: :class:`PairwiseFunctionType` + + .. function:: AddStructuralInfo(aln) + + :param aln: Alignment, where first sequence represent the initial + SEQRES and the second sequence the actual structural + info. The second sequence must have a view attached. + + :type aln: :class:`ost.seq.AlignmentHandle` + + :raises: :exc:`~exceptions.RuntimeError` if number of sequences in *aln* is + not two, the SEQRES does not match or when the second sequence in + *aln* has no view attached. + + .. function:: AttachConstraints(env, chain_indices, [cluster_thresh = 0.5, gamma = 70.0]) + + Generates distance constraints and adds it to *env*. + It first clusters the added sequences with a pairwise normalised sequence + similarity based on BLOSUM62. It's a hierarchical clustering with with an + average distance metric and *cluster_thresh* as threshold to merge two + clusters. Constraint functions are built for every cluster and finally + merged. The influence of the per cluster constraint functions to the overall + function depends on the clusters average sequence similarity to the + target SEQRES. How fast this influence vanishes gets controlled by gamma. + The higher it is, the faster vanishes the influence of structural info + from distant clusters. The final pairwise cluster functions get then + directly added to the scoring *env*. + + :param env: The scoring env to which the constraint + should be added + :param chain_indices: Indices of chains for which the constraints should + be added + :param cluster_thresh: Controls the clustering behaviour at the initial + stage of constraint construction + :param gamma: Controls how fast the influence of constraint + functions of distant clusters vanishes + + :type env: :class:`BackboneScoreEnv` + :type chain_indices: :class:`list` of :class:`int` + :type cluster_thresh: :class:`float` + :type gamma: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if one of the *chain_indices* is + invalid or the SEQRES set in *env* for specified chain is + inconsistent with SEQRES you initialized the DiscoContainer with \ No newline at end of file diff --git a/doc/html/_sources/scoring/backbone_scorers.rst.txt b/doc/html/_sources/scoring/backbone_scorers.txt similarity index 97% rename from doc/html/_sources/scoring/backbone_scorers.rst.txt rename to doc/html/_sources/scoring/backbone_scorers.txt index ec6de8d36adf5d8b4055da5ab803248e91490148..35c3573d8363f771faca08a6fa8e563a5b67a0c1 100644 --- a/doc/html/_sources/scoring/backbone_scorers.rst.txt +++ b/doc/html/_sources/scoring/backbone_scorers.txt @@ -1,835 +1,835 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Backbone Scorers -================================================================================ - -.. currentmodule:: promod3.scoring - - -BackboneOverallScorer class --------------------------------------------------------------------------------- - -.. class:: BackboneOverallScorer - - Container that allows for the storage of multiple scorers identified by a key - (:class:`str`) and the computation of combined scores. - - Scorers need to be individually set or loaded by - :func:`LoadDefaultBackboneOverallScorer()` - - .. method:: Contains(key) - - :return: True, if a scorer object for this key was already added. - :rtype: :class:`bool` - :param key: Key for desired scorer. - :type key: :class:`str` - - .. method:: Get(key) - - :return: Scorer with the given *key* (read-only access). - :rtype: :class:`BackboneScorer` - :param key: Key for desired scorer. - :type key: :class:`str` - :raises: :exc:`~exceptions.RuntimeError` if there is no scorer with that - *key*. - - .. method:: AttachEnvironment(env) - - :param env: Link all scorers to this score environment. - :type env: :class:`BackboneScoreEnv` - - .. method:: Calculate(key, start_resnum, num_residues, chain_idx=0) - - Calculate score for one or several stretches of amino acids given the - current scoring environment. - - :param key: Key for desired scorer. - :type key: :class:`str` - :param start_resnum: Res. number defining the position in the SEQRES - (see :class:`BackboneScoreEnv` for indexing) - :type start_resnum: :class:`int` / :class:`list` of :class:`int` - :param num_residues: Number of residues in the stretch(es) to score - :type num_residues: :class:`int` / :class:`list` of :class:`int` - :param chain_idx: Index of chain the stretch(es) belongs to - (see :class:`BackboneScoreEnv` for indexing) - :type chain_idx: :class:`int` / :class:`list` of :class:`int` - - :return: Score calculated with the desired scorer for the given stretch(es). - :rtype: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if there is no scorer with that - *key* or anything raised in :meth:`BackboneScorer.CalculateScore`. - - .. method:: CalculateLinearCombination(linear_weights, start_resnum,\ - num_residues, chain_idx=0) - - Calculate linear combination of scores for one or several stretches of - amino acids given the current scoring environment. - - :param linear_weights: Weights for each desired scorer. You can add a - constant value to each score by defining a weight - with key "intercept". - :type linear_weights: :class:`dict` (keys: :class:`str`, - values: :class:`float`) - :param start_resnum: Res. number defining the position in the SEQRES - (see :class:`BackboneScoreEnv` for indexing) - :type start_resnum: :class:`int` / :class:`list` of :class:`int` - :param num_residues: Number of residues in the stretch(es) to score - :type num_residues: :class:`int` / :class:`list` of :class:`int` - :param chain_idx: Index of chain the stretch(es) belongs to - (see :class:`BackboneScoreEnv` for indexing) - :type chain_idx: :class:`int` / :class:`list` of :class:`int` - - :return: Linear combination of the scores calculated with the desired - scorers for the given stretch(es) - :rtype: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if *linear_weights* has a *key* for - which no scorer exists or anything raised in - :meth:`BackboneScorer.CalculateScore` for any of the used scorers. - - .. method:: __getitem__(key) - __setitem__(key) - - Allow read/write access (with [*key*]) to scorer object with given key. - - :param key: Key for desired scorer. - :type key: :class:`str` - -.. function:: LoadDefaultBackboneOverallScorer() - - :returns: Loads or creates the default scorers accessible through - following keys: - "cb_packing", "cbeta", "reduced", "clash", "hbond", "ss_agreement",\ - "torsion", "pairwise" - :rtype: :class:`BackboneOverallScorer` - - -BackboneScorer base class --------------------------------------------------------------------------------- - -.. class:: BackboneScorer - - Base class for all the backbone scorers listed below. - - .. method:: AttachEnvironment(env) - - :param env: Link scorer to this score environment. - :type env: :class:`BackboneScoreEnv` - - .. method:: CalculateScore(start_resnum, num_residues, chain_idx=0) - - Calculates score for one or several stretches given the structural - information in the attached environment. Unless otherwise noted in the - scorer, a lower "score" is better! - - :param start_resnum: Res. number defining the position in the SEQRES - (see :class:`BackboneScoreEnv` for indexing) - :type start_resnum: :class:`int` / :class:`list` of :class:`int` - :param num_residues: Number of residues in the stretch(es) to score - :type num_residues: :class:`int` / :class:`list` of :class:`int` - :param chain_idx: Index of chain the stretch(es) belongs to - (see :class:`BackboneScoreEnv` for indexing) - :type chain_idx: :class:`int` / :class:`list` of :class:`int` - - :return: Score for the given stretch(es). - :rtype: :class:`float` - - :raises: (for most scorers) :exc:`~exceptions.RuntimeError` if scorer was - never attached to a score environment, if scorer has never been - properly initialized or if *start_resnum* / *num_residues* / - *chain_idx* lead to invalid positions. - - .. method:: CalculateScoreProfile(start_resnum, num_residues, chain_idx=0) - - Calculates per residue scores for one or several stretches given the - structural information in the attached environment. - - :param start_resnum: Res. number defining the position in the SEQRES - (see :class:`BackboneScoreEnv` for indexing) - :type start_resnum: :class:`int` / :class:`list` of :class:`int` - :param num_residues: Number of residues in the stretch(es) to score - :type num_residues: :class:`int` / :class:`list` of :class:`int` - :param chain_idx: Index of chain the stretch(es) belongs to - (see :class:`BackboneScoreEnv` for indexing) - :type chain_idx: :class:`int` / :class:`list` of :class:`int` - - :return: Scores for the given stretch(es), one for each residue. - :rtype: :class:`list` of :class:`float` or :class:`list` of :class:`list` - of :class:`float` - - :raises: same :exc:`~exceptions.RuntimeError` as :meth:`CalculateScore`. - - -CBPackingScorer class --------------------------------------------------------------------------------- - -.. class:: CBPackingScorer(cutoff, max_count) - - Inherits all functionality of :class:`BackboneScorer`. Evaluates pseudo - energies by counting the number of other CB positions within a certain - *cutoff* radius of the CB position of the residue to be evaluated. - - The scorer needs to be initialized either by loading a predefined scorer (e.g. - :func:`LoadCBPackingScorer`) or by setting all energies (see - :meth:`SetEnergy`). - - :param cutoff: Radius in which other cbeta atoms are counted. - :type cutoff: :class:`float` - :param max_count: If number of other cbeta atoms exceeds *max_count*, it will - be set to this number. - :type max_count: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *cutoff* < 0 or *max_count* < 1. - - .. staticmethod:: Load(filename) - LoadPortable(filename) - - Loads raw binary file generated with :meth:`Save` (optimized for fast - reading) / portable file generated with :meth:`SavePortable` (slower but - less machine-dependent). - - :param filename: Path to the file from which to load. - :type filename: :class:`str` - - :returns: The loaded scorer - :rtype: :class:`CBPackingScorer` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if - file cannot be parsed (see :ref:`here <portableIO>` for details). - - .. method:: Save(filename) - SavePortable(filename) - - Saves a raw / portable binary representation. Use portable files for - distribution and convert locally to raw files. See :ref:`here <portableIO>` - for details. - - :param filename: Path to the file where it will be saved. - :type filename: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. - - .. method:: SetEnergy(aa, count, energy) - - Setup one energy value. Unless a predefined scorer is loaded, this must be - called for every type of amino acids and for every *count* <= *max_count*. - - :param aa: Amino acid for which to set energy. - :type aa: :class:`ost.conop.AminoAcid` - :param count: Number of surrounding CB positions for which to set energy. - :type count: :class:`int` - :param energy: Energy to set for those parameters. - :type energy: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if inputs are invalid - - .. method:: DoNormalize(do_it) - - :param do_it: Whether to normalize the calculated scores by the number - of residues to be scored. True by default. - :type do_it: :class:`bool` - - -.. function:: LoadCBPackingScorer() - - :returns: The default predefined CBPackingScorer (loaded from disk) - :rtype: :class:`CBPackingScorer` - - -CBetaScorer class --------------------------------------------------------------------------------- - -.. class:: CBetaScorer(cutoff, bins, seq_sep) - - Inherits all functionality of :class:`BackboneScorer`. Evaluates a pairwise - pseudo interaction energy between CB atoms which are located within a *cutoff* - and which are at least *seq_sep* residues apart. An energy is assigned to each - distance using equally sized bins and distinguishing all possible pairs - of amino acids. - - The scorer needs to be initialized either by loading a predefined scorer (e.g. - :func:`LoadCBetaScorer`) or by setting all energies (see :meth:`SetEnergy`). - - :param cutoff: Radius in which other cbeta atoms are considered. - :type cutoff: :class:`float` - :param bins: Number of equally sized bins to discretize distances (range - of [0, *cutoff*]). - :type bins: :class:`int` - :param seq_sep: Minimal separation in sequence two cbeta atoms must have to - be considered. - :type seq_sep: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *cutoff* < 0, *bins* < 1 or - *seq_sep* < 1. - - .. staticmethod:: Load(filename) - LoadPortable(filename) - - Loads raw binary file generated with :meth:`Save` (optimized for fast - reading) / portable file generated with :meth:`SavePortable` (slower but - less machine-dependent). - - :param filename: Path to the file from which to load. - :type filename: :class:`str` - - :returns: The loaded scorer - :rtype: :class:`CBetaScorer` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if - file cannot be parsed (see :ref:`here <portableIO>` for details). - - .. method:: Save(filename) - SavePortable(filename) - - Saves a raw / portable binary representation. Use portable files for - distribution and convert locally to raw files. See :ref:`here <portableIO>` - for details. - - :param filename: Path to the file where it will be saved. - :type filename: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. - - .. method:: SetEnergy(aa1, aa2, bin, energy) - - Setup one energy value. Unless a predefined scorer is loaded, this must be - called for every pair of amino acids and for every *bin* < *bins*. - Internal symmetry is enforced => Calling SetEnergy(aa1, aa2, bin, energy) is - equivalent to calling SetEnergy(aa1, aa2, bin, energy) AND - SetEnergy(aa2, aa1, bin, energy). - - :param aa1: Amino acid for first interaction partner. - :type aa1: :class:`ost.conop.AminoAcid` - :param aa2: Amino acid for second interaction partner. - :type aa2: :class:`ost.conop.AminoAcid` - :param bin: Discrete bin describing the interaction distance. - :type bin: :class:`int` - :param energy: Energy to set for those parameters. - :type energy: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if inputs are invalid - - .. method:: DoInternalScores(do_it) - - :param do_it: Whether to include pairwise interactions between - the scored residues. True by default. - :type do_it: :class:`bool` - - .. method:: DoExternalScores(do_it) - - :param do_it: Whether to include pairwise interactions of the scored - residues towards the surrounding environment. - True by default. - :type do_it: :class:`bool` - - .. method:: DoNormalize(do_it) - - :param do_it: Whether to normalize the calculated scores by the number - of residues to be scored. True by default. - :type do_it: :class:`bool` - - -.. function:: LoadCBetaScorer() - - :returns: The default predefined CBetaScorer (loaded from disk) - :rtype: :class:`CBetaScorer` - - -ReducedScorer class --------------------------------------------------------------------------------- - -.. class:: ReducedScorer(cutoff, dist_bins, angle_bins, dihedral_bins, seq_sep) - - Inherits all functionality of :class:`BackboneScorer`. Evaluates a pairwise - pseudo interaction energy between the reduced representation of residues. - Every residue gets represented by its CA position p and a directional - component ``v = norm(p-n_pos) + norm(p-c_pos)``. Residues with CA - distance < *cutoff* and which are at least *seq_sep* residues apart are - considered to be interacting. For interacting residues r1 and r2, we can - define a line l between p1 and p2. The potential then considers: - - * dist => distance between p1 and p2 - * alpha => angle between v1 and l - * beta => angle between v2 and l - * gamma => dihedral between (p1+v1,p1,p2,p2+v2) - - The scorer needs to be initialized either by loading a predefined scorer (e.g. - :func:`LoadReducedScorer`) or by setting all energies (see :meth:`SetEnergy`). - - :param cutoff: Radius in which other CA atoms are searched. - :type cutoff: :class:`float` - :param dist_bins: Number of equally sized bins to discretize distances (range - of [0, *cutoff*]). - :type dist_bins: :class:`int` - :param angle_bins: Number of equally sized bins to discretize angles (range - of [0, pi]). - :type angle_bins: :class:`int` - :param dihedral_bins: Number of equally sized bins to discretize dihedrals - (range of [-pi, pi]). - :type dihedral_bins: :class:`int` - :param seq_sep: Minimal separation in sequence two residues must have to - be considered. - :type seq_sep: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *cutoff* < 0, *dist_bins* < 1, - *angle_bins* < 1, *dihedral_bins* < 1 or *seq_sep* < 1. - - .. staticmethod:: Load(filename) - LoadPortable(filename) - - Loads raw binary file generated with :meth:`Save` (optimized for fast - reading) / portable file generated with :meth:`SavePortable` (slower but - less machine-dependent). - - :param filename: Path to the file from which to load. - :type filename: :class:`str` - - :returns: The loaded scorer - :rtype: :class:`ReducedScorer` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if - file cannot be parsed (see :ref:`here <portableIO>` for details). - - .. method:: Save(filename) - SavePortable(filename) - - Saves a raw / portable binary representation. Use portable files for - distribution and convert locally to raw files. See :ref:`here <portableIO>` - for details. - - :param filename: Path to the file where it will be saved. - :type filename: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. - - .. method:: SetEnergy(aa1, aa2, dist_bin, alpha_bin, beta_bin, gamma_bin,\ - energy) - - Setup one energy value. Unless a predefined scorer is loaded, this must be - called for every pair of amino acids, every *dist_bin* < *dist_bins*, every - *alpha_bin* < *angle_bins*, every *beta_bin* < *angle_bins* and every - *gamma_bin* < *dihedral_bins*. - Internal symmetry is enforced => Calling - SetEnergy(aa1, aa2, dist_bin, alpha_bin, beta_bin, energy) is - equivalent to calling - SetEnergy(aa1, aa2, dist_bin, alpha_bin, beta_bin, energy) AND - SetEnergy(aa2, aa1, dist_bin, beta_bin, alpha_bin, energy). - - :param aa1: Amino acid for first interaction partner. - :type aa1: :class:`ost.conop.AminoAcid` - :param aa2: Amino acid for second interaction partner. - :type aa2: :class:`ost.conop.AminoAcid` - :param dist_bin: Discrete bin describing the interaction distance. - :type dist_bin: :class:`int` - :param alpha_bin: Discrete bin describing the alpha angle. - :type alpha_bin: :class:`int` - :param beta_bin: Discrete bin describing the beta angle. - :type beta_bin: :class:`int` - :param gamma_bin: Discrete bin describing the gamma dihedral. - :type gamma_bin: :class:`int` - :param energy: Energy to set for those parameters. - :type energy: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if inputs are invalid - - .. method:: DoInternalScores(do_it) - - :param do_it: Whether to include pairwise interactions between - the scored residues. True by default. - :type do_it: :class:`bool` - - .. method:: DoExternalScores(do_it) - - :param do_it: Whether to include pairwise interactions of the scored - residues towards the surrounding environment. - True by default. - :type do_it: :class:`bool` - - .. method:: DoNormalize(do_it) - - :param do_it: Whether to normalize the calculated scores by the number - of residues to be scored. True by default. - :type do_it: :class:`bool` - -.. function:: LoadReducedScorer() - - :returns: The default predefined ReducedScorer (loaded from disk) - :rtype: :class:`ReducedScorer` - - -ClashScorer class --------------------------------------------------------------------------------- - -.. class:: ClashScorer - - Inherits all functionality of :class:`BackboneScorer`. Calculates a simple - clash score of a loop itself and with the set environment. There is no need to - define any parameters here as all interaction energies are fixed (see Eq. (11) - in [canutescu2003b]_). - - .. method:: DoInternalScores(do_it) - - :param do_it: Whether to include pairwise interactions between - the scored residues. True by default. - :type do_it: :class:`bool` - - .. method:: DoExternalScores(do_it) - - :param do_it: Whether to include pairwise interactions of the scored - residues towards the surrounding environment. - True by default. - :type do_it: :class:`bool` - - .. method:: DoNormalize(do_it) - - :param do_it: Whether to normalize the calculated scores by the number - of residues to be scored. True by default. - :type do_it: :class:`bool` - - -HBondScorer class --------------------------------------------------------------------------------- - -.. class:: HBondScorer(min_d, max_d, min_alpha, max_alpha, min_beta, max_beta,\ - min_gamma, max_gamma, d_bins, alpha_bins, beta_bins,\ - gamma_bins) - - Inherits all functionality of :class:`BackboneScorer`. Evaluates pairwise - HBond pseudo energies similar to the one defined in the Rosetta energy - function. It considers the CA, C and O positions from backbone hbond acceptors - in interaction with the N and H positions from the backbone hbond donors. 4 - Parameters describe their relative orientation. - - * dist => H-O distance - * alpha => O-H-N angle - * beta => C-N-H angle - * gamma => CA-C-O-H dihedral angle - - A pseudo energy function for these parameters is evaluated 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. - - The scorer needs to be initialized either by loading a predefined scorer (e.g. - :func:`LoadHBondScorer`) or by setting all energies (see :meth:`SetEnergy`). - - :param min_d: Minimal H-O distance to consider interaction - :type min_d: :class:`float` - :param max_d: Maximal H-O distance to consider interaction - :type max_d: :class:`float` - :param min_alpha: Minimal O-H-N angle to consider interaction - :type min_alpha: :class:`float` - :param max_alpha: Maximal O-H-N angle to consider interaction - :type max_alpha: :class:`float` - :param min_beta: Minimal C-N-H angle to consider interaction - :type min_beta: :class:`float` - :param max_beta: Maximal C-N-H angle to consider interaction - :type max_beta: :class:`float` - :param min_gamma: Minimal CA-C-O-H dihedral to consider interaction - :type min_gamma: :class:`float` - :param max_gamma: Maximal CA-C-O-H dihedral to consider interaction - :type max_gamma: :class:`float` - :param d_bins: Number of equally sized bins to discretize H-O distances - (range of [*min_d*, *max_d*]). - :type d_bins: :class:`int` - :param alpha_bins: Number of equally sized bins to discretize O-H-N angles - (range of [*min_alpha*, *max_alpha*]). - :type alpha_bins: :class:`int` - :param beta_bins: Number of equally sized bins to discretize C-N-H angles - (range of [*min_beta*, *max_beta*]). - :type beta_bins: :class:`int` - :param gamma_bins: Number of equally sized bins to discretize CA-C-O-H angles - (range of [*min_gamma*, *max_gamma*]). - :type gamma_bins: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if one of the bin parameters is - < 1 or a max parameter is smaller than its min counterpart. - - .. staticmethod:: Load(filename) - LoadPortable(filename) - - Loads raw binary file generated with :meth:`Save` (optimized for fast - reading) / portable file generated with :meth:`SavePortable` (slower but - less machine-dependent). - - :param filename: Path to the file from which to load. - :type filename: :class:`str` - - :returns: The loaded scorer - :rtype: :class:`HBondScorer` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if - file cannot be parsed (see :ref:`here <portableIO>` for details). - - .. method:: Save(filename) - SavePortable(filename) - - Saves a raw / portable binary representation. Use portable files for - distribution and convert locally to raw files. See :ref:`here <portableIO>` - for details. - - :param filename: Path to the file where it will be saved. - :type filename: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. - - .. method:: SetEnergy(state, d_bin, alpha_bin, beta_bin, gamma_bin, energy) - - Setup one energy value. Unless a predefined scorer is loaded, this must be - called for every state ([0, 1, 2]), every *d_bin* < *d_bins*, every - *alpha_bin* < *alpha_bins*, every *beta_bin* < *beta_bins* and every - *gamma_bin* < *gamma_bins*. - - :param state: State describing the actual secondary structure - (1: helical, 2: extended, 0: other) - :type state: :class:`int` - :param d_bin: Discrete bin describing the H-O distance. - :type d_bin: :class:`int` - :param alpha_bin: Discrete bin describing the O-H-N angle. - :type alpha_bin: :class:`int` - :param beta_bin: Discrete bin describing the C-N-H angle. - :type beta_bin: :class:`int` - :param gamma_bin: Discrete bin describing the CA-C-O-H dihedral. - :type gamma_bin: :class:`int` - :param energy: Energy to set for those parameters. - :type energy: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if inputs are invalid - - .. method:: DoInternalScores(do_it) - - :param do_it: Whether to include pairwise interactions between - the scored residues. True by default. - :type do_it: :class:`bool` - - .. method:: DoExternalScores(do_it) - - :param do_it: Whether to include pairwise interactions of the scored - residues towards the surrounding environment. - True by default. - :type do_it: :class:`bool` - - .. method:: DoNormalize(do_it) - - :param do_it: Whether to normalize the calculated scores by the number - of residues to be scored. True by default. - :type do_it: :class:`bool` - - -.. function:: LoadHBondScorer() - - :returns: The default predefined HBondScorer (loaded from disk) - :rtype: :class:`HBondScorer` - - -SSAgreementScorer class --------------------------------------------------------------------------------- - -.. class:: SSAgreementScorer - - Inherits all functionality of :class:`BackboneScorer`. Evaluates a secondary - structure agreement score. The scorer has a score for each combination of - psipred prediction, its confidence and the actually occurring secondary - structure in the model. In every score evaluation, the secondary structure of - the loop is estimated by searching for hydrogen bonds leading to a secondary - structure as defined by dssp. The hbonds are searched internally in the loop - as well as in the environment. - - The scorer needs to be initialized either by loading a predefined scorer (e.g. - :func:`LoadSSAgreementScorer`) or by setting scores for all possible states - (see :meth:`SetScore`). - - This scorer assumes that the attached environment has a psipred prediction - defined (see :meth:`BackboneScoreEnv.SetPsipredPrediction`) as soon as a score - is to be calculated. - - Note that for this scorer a higher "score" is better! So take care when - combining this to other scores, where it is commonly the other way around. - - .. staticmethod:: Load(filename) - LoadPortable(filename) - - Loads raw binary file generated with :meth:`Save` (optimized for fast - reading) / portable file generated with :meth:`SavePortable` (slower but - less machine-dependent). - - :param filename: Path to the file from which to load. - :type filename: :class:`str` - - :returns: The loaded scorer - :rtype: :class:`SSAgreementScorer` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if - file cannot be parsed (see :ref:`here <portableIO>` for details). - - .. method:: Save(filename) - SavePortable(filename) - - Saves a raw / portable binary representation. Use portable files for - distribution and convert locally to raw files. See :ref:`here <portableIO>` - for details. - - :param filename: Path to the file where it will be saved. - :type filename: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. - - .. method:: SetScore(psipred_state, psipred_confidence, dssp_state, score) - - Setup a single score for a combination of states. Unless a predefined scorer - is loaded, this must be called for every combination of states. - - :param psipred_state: must be one of ['H', 'E', 'C'] - :type psipred_state: :class:`str` - :param psipred_confidence: must be in range [0, 9] - :type psipred_confidence: :class:`int` - :param dssp_state: must be one of ['H', 'E', 'C', 'G', 'B', 'S', 'T', 'I'] - :type dssp_state: :class:`str` - :param score: score to be set - :type score: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if inputs are invalid - - .. method:: DoNormalize(do_it) - - :param do_it: Whether to normalize the calculated scores by the number - of residues to be scored. True by default. - :type do_it: :class:`bool` - -.. function:: LoadSSAgreementScorer() - - :returns: The default predefined structure agreement scorer (loaded from disk) - :rtype: :class:`SSAgreementScorer` - - -TorsionScorer class --------------------------------------------------------------------------------- - -.. class:: TorsionScorer(group_definitions, torsion_bins) - - Inherits all functionality of :class:`BackboneScorer`. Evaluates pseudo - energies based on the identity of three consecutive residues and the phi/psi - dihedral angles of the central residue. The first phi and last psi angle get - determined with the help of the environment if set. - - The scorer needs to be initialized either by loading a predefined scorer (e.g. - :func:`LoadTorsionScorer`) or by setting all energies (see :meth:`SetEnergy`) - for each group definition. - - :param group_definitions: List of group definitions defining amino acid - triplets (same style as used in the - :class:`~promod3.loop.TorsionSampler` class). - :type group_definitions: :class:`list` of :class:`str` - :param torsion_bins: Number of equally sized bins to discretize the torsion - angles (range of [0, 2*pi]). - :type torsion_bins: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *torsion_bins* < 1 or if there is - a possible combination of the 20 standard amino acids not matching - any entry of *group_definitions* - - .. staticmethod:: Load(filename) - LoadPortable(filename) - - Loads raw binary file generated with :meth:`Save` (optimized for fast - reading) / portable file generated with :meth:`SavePortable` (slower but - less machine-dependent). - - :param filename: Path to the file from which to load. - :type filename: :class:`str` - - :returns: The loaded scorer - :rtype: :class:`TorsionScorer` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if - file cannot be parsed (see :ref:`here <portableIO>` for details). - - .. method:: Save(filename) - SavePortable(filename) - - Saves a raw / portable binary representation. Use portable files for - distribution and convert locally to raw files. See :ref:`here <portableIO>` - for details. - - :param filename: Path to the file where it will be saved. - :type filename: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. - - .. method:: SetEnergy(group_idx, phi_bin, psi_bin, energy) - - Setup one energy value. Unless a predefined scorer is loaded, this must be - called for every *group_idx* < len(*group_definitions*), every *phi_bin* < - *torsion_bins* and every *psi_bin* < *torsion_bins*. - - :param group_idx: Index of group definition as set in constructor with - numbering starting at 0. - :type group_idx: :class:`int` - :param phi_bin: Discrete bin describing the phi angle. - :type phi_bin: :class:`int` - :param psi_bin: Discrete bin describing the psi angle. - :type psi_bin: :class:`int` - :param energy: Energy to set for those parameters. - :type energy: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if inputs are invalid - - .. method:: DoNormalize(do_it) - - :param do_it: Whether to normalize the calculated scores by the number - of residues to be scored. True by default. - :type do_it: :class:`bool` - -.. function:: LoadTorsionScorer() - - :returns: The default predefined TorsionScorer (loaded from disk) - :rtype: :class:`TorsionScorer` - - -PairwiseScorer class --------------------------------------------------------------------------------- - -.. class:: PairwiseScorer - - Inherits all functionality of :class:`BackboneScorer`. Evaluates a list of - generic pairwise functions (see :class:`PairwiseFunction`). - That are set in the attached scoring environment - (see :meth:`BackboneScoreEnv.ApplyPairwiseFunction`). - - Note that for this scorer a higher "score" is better! So take care when - combining this to other scores, where it is commonly the other way around. - - .. method:: DoInternalScores(do_it) - - :param do_it: Whether to include pairwise interactions between - the scored residues. True by default. - :type do_it: :class:`bool` - - .. method:: DoExternalScores(do_it) - - :param do_it: Whether to include pairwise interactions of the scored - residues towards the surrounding environment. - True by default. - :type do_it: :class:`bool`, true by default. - - .. method:: DoNormalize(do_it) - - :param do_it: Whether to normalize the calculated scores by the number - of residues to be scored. True by default. - :type do_it: :class:`bool` +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Backbone Scorers +================================================================================ + +.. currentmodule:: promod3.scoring + + +BackboneOverallScorer class +-------------------------------------------------------------------------------- + +.. class:: BackboneOverallScorer + + Container that allows for the storage of multiple scorers identified by a key + (:class:`str`) and the computation of combined scores. + + Scorers need to be individually set or loaded by + :func:`LoadDefaultBackboneOverallScorer()` + + .. method:: Contains(key) + + :return: True, if a scorer object for this key was already added. + :rtype: :class:`bool` + :param key: Key for desired scorer. + :type key: :class:`str` + + .. method:: Get(key) + + :return: Scorer with the given *key* (read-only access). + :rtype: :class:`BackboneScorer` + :param key: Key for desired scorer. + :type key: :class:`str` + :raises: :exc:`~exceptions.RuntimeError` if there is no scorer with that + *key*. + + .. method:: AttachEnvironment(env) + + :param env: Link all scorers to this score environment. + :type env: :class:`BackboneScoreEnv` + + .. method:: Calculate(key, start_resnum, num_residues, chain_idx=0) + + Calculate score for one or several stretches of amino acids given the + current scoring environment. + + :param key: Key for desired scorer. + :type key: :class:`str` + :param start_resnum: Res. number defining the position in the SEQRES + (see :class:`BackboneScoreEnv` for indexing) + :type start_resnum: :class:`int` / :class:`list` of :class:`int` + :param num_residues: Number of residues in the stretch(es) to score + :type num_residues: :class:`int` / :class:`list` of :class:`int` + :param chain_idx: Index of chain the stretch(es) belongs to + (see :class:`BackboneScoreEnv` for indexing) + :type chain_idx: :class:`int` / :class:`list` of :class:`int` + + :return: Score calculated with the desired scorer for the given stretch(es). + :rtype: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if there is no scorer with that + *key* or anything raised in :meth:`BackboneScorer.CalculateScore`. + + .. method:: CalculateLinearCombination(linear_weights, start_resnum,\ + num_residues, chain_idx=0) + + Calculate linear combination of scores for one or several stretches of + amino acids given the current scoring environment. + + :param linear_weights: Weights for each desired scorer. You can add a + constant value to each score by defining a weight + with key "intercept". + :type linear_weights: :class:`dict` (keys: :class:`str`, + values: :class:`float`) + :param start_resnum: Res. number defining the position in the SEQRES + (see :class:`BackboneScoreEnv` for indexing) + :type start_resnum: :class:`int` / :class:`list` of :class:`int` + :param num_residues: Number of residues in the stretch(es) to score + :type num_residues: :class:`int` / :class:`list` of :class:`int` + :param chain_idx: Index of chain the stretch(es) belongs to + (see :class:`BackboneScoreEnv` for indexing) + :type chain_idx: :class:`int` / :class:`list` of :class:`int` + + :return: Linear combination of the scores calculated with the desired + scorers for the given stretch(es) + :rtype: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if *linear_weights* has a *key* for + which no scorer exists or anything raised in + :meth:`BackboneScorer.CalculateScore` for any of the used scorers. + + .. method:: __getitem__(key) + __setitem__(key) + + Allow read/write access (with [*key*]) to scorer object with given key. + + :param key: Key for desired scorer. + :type key: :class:`str` + +.. function:: LoadDefaultBackboneOverallScorer() + + :returns: Loads or creates the default scorers accessible through + following keys: + "cb_packing", "cbeta", "reduced", "clash", "hbond", "ss_agreement",\ + "torsion", "pairwise" + :rtype: :class:`BackboneOverallScorer` + + +BackboneScorer base class +-------------------------------------------------------------------------------- + +.. class:: BackboneScorer + + Base class for all the backbone scorers listed below. + + .. method:: AttachEnvironment(env) + + :param env: Link scorer to this score environment. + :type env: :class:`BackboneScoreEnv` + + .. method:: CalculateScore(start_resnum, num_residues, chain_idx=0) + + Calculates score for one or several stretches given the structural + information in the attached environment. Unless otherwise noted in the + scorer, a lower "score" is better! + + :param start_resnum: Res. number defining the position in the SEQRES + (see :class:`BackboneScoreEnv` for indexing) + :type start_resnum: :class:`int` / :class:`list` of :class:`int` + :param num_residues: Number of residues in the stretch(es) to score + :type num_residues: :class:`int` / :class:`list` of :class:`int` + :param chain_idx: Index of chain the stretch(es) belongs to + (see :class:`BackboneScoreEnv` for indexing) + :type chain_idx: :class:`int` / :class:`list` of :class:`int` + + :return: Score for the given stretch(es). + :rtype: :class:`float` + + :raises: (for most scorers) :exc:`~exceptions.RuntimeError` if scorer was + never attached to a score environment, if scorer has never been + properly initialized or if *start_resnum* / *num_residues* / + *chain_idx* lead to invalid positions. + + .. method:: CalculateScoreProfile(start_resnum, num_residues, chain_idx=0) + + Calculates per residue scores for one or several stretches given the + structural information in the attached environment. + + :param start_resnum: Res. number defining the position in the SEQRES + (see :class:`BackboneScoreEnv` for indexing) + :type start_resnum: :class:`int` / :class:`list` of :class:`int` + :param num_residues: Number of residues in the stretch(es) to score + :type num_residues: :class:`int` / :class:`list` of :class:`int` + :param chain_idx: Index of chain the stretch(es) belongs to + (see :class:`BackboneScoreEnv` for indexing) + :type chain_idx: :class:`int` / :class:`list` of :class:`int` + + :return: Scores for the given stretch(es), one for each residue. + :rtype: :class:`list` of :class:`float` or :class:`list` of :class:`list` + of :class:`float` + + :raises: same :exc:`~exceptions.RuntimeError` as :meth:`CalculateScore`. + + +CBPackingScorer class +-------------------------------------------------------------------------------- + +.. class:: CBPackingScorer(cutoff, max_count) + + Inherits all functionality of :class:`BackboneScorer`. Evaluates pseudo + energies by counting the number of other CB positions within a certain + *cutoff* radius of the CB position of the residue to be evaluated. + + The scorer needs to be initialized either by loading a predefined scorer (e.g. + :func:`LoadCBPackingScorer`) or by setting all energies (see + :meth:`SetEnergy`). + + :param cutoff: Radius in which other cbeta atoms are counted. + :type cutoff: :class:`float` + :param max_count: If number of other cbeta atoms exceeds *max_count*, it will + be set to this number. + :type max_count: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *cutoff* < 0 or *max_count* < 1. + + .. staticmethod:: Load(filename) + LoadPortable(filename) + + Loads raw binary file generated with :meth:`Save` (optimized for fast + reading) / portable file generated with :meth:`SavePortable` (slower but + less machine-dependent). + + :param filename: Path to the file from which to load. + :type filename: :class:`str` + + :returns: The loaded scorer + :rtype: :class:`CBPackingScorer` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if + file cannot be parsed (see :ref:`here <portableIO>` for details). + + .. method:: Save(filename) + SavePortable(filename) + + Saves a raw / portable binary representation. Use portable files for + distribution and convert locally to raw files. See :ref:`here <portableIO>` + for details. + + :param filename: Path to the file where it will be saved. + :type filename: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. + + .. method:: SetEnergy(aa, count, energy) + + Setup one energy value. Unless a predefined scorer is loaded, this must be + called for every type of amino acids and for every *count* <= *max_count*. + + :param aa: Amino acid for which to set energy. + :type aa: :class:`ost.conop.AminoAcid` + :param count: Number of surrounding CB positions for which to set energy. + :type count: :class:`int` + :param energy: Energy to set for those parameters. + :type energy: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if inputs are invalid + + .. method:: DoNormalize(do_it) + + :param do_it: Whether to normalize the calculated scores by the number + of residues to be scored. True by default. + :type do_it: :class:`bool` + + +.. function:: LoadCBPackingScorer() + + :returns: The default predefined CBPackingScorer (loaded from disk) + :rtype: :class:`CBPackingScorer` + + +CBetaScorer class +-------------------------------------------------------------------------------- + +.. class:: CBetaScorer(cutoff, bins, seq_sep) + + Inherits all functionality of :class:`BackboneScorer`. Evaluates a pairwise + pseudo interaction energy between CB atoms which are located within a *cutoff* + and which are at least *seq_sep* residues apart. An energy is assigned to each + distance using equally sized bins and distinguishing all possible pairs + of amino acids. + + The scorer needs to be initialized either by loading a predefined scorer (e.g. + :func:`LoadCBetaScorer`) or by setting all energies (see :meth:`SetEnergy`). + + :param cutoff: Radius in which other cbeta atoms are considered. + :type cutoff: :class:`float` + :param bins: Number of equally sized bins to discretize distances (range + of [0, *cutoff*]). + :type bins: :class:`int` + :param seq_sep: Minimal separation in sequence two cbeta atoms must have to + be considered. + :type seq_sep: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *cutoff* < 0, *bins* < 1 or + *seq_sep* < 1. + + .. staticmethod:: Load(filename) + LoadPortable(filename) + + Loads raw binary file generated with :meth:`Save` (optimized for fast + reading) / portable file generated with :meth:`SavePortable` (slower but + less machine-dependent). + + :param filename: Path to the file from which to load. + :type filename: :class:`str` + + :returns: The loaded scorer + :rtype: :class:`CBetaScorer` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if + file cannot be parsed (see :ref:`here <portableIO>` for details). + + .. method:: Save(filename) + SavePortable(filename) + + Saves a raw / portable binary representation. Use portable files for + distribution and convert locally to raw files. See :ref:`here <portableIO>` + for details. + + :param filename: Path to the file where it will be saved. + :type filename: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. + + .. method:: SetEnergy(aa1, aa2, bin, energy) + + Setup one energy value. Unless a predefined scorer is loaded, this must be + called for every pair of amino acids and for every *bin* < *bins*. + Internal symmetry is enforced => Calling SetEnergy(aa1, aa2, bin, energy) is + equivalent to calling SetEnergy(aa1, aa2, bin, energy) AND + SetEnergy(aa2, aa1, bin, energy). + + :param aa1: Amino acid for first interaction partner. + :type aa1: :class:`ost.conop.AminoAcid` + :param aa2: Amino acid for second interaction partner. + :type aa2: :class:`ost.conop.AminoAcid` + :param bin: Discrete bin describing the interaction distance. + :type bin: :class:`int` + :param energy: Energy to set for those parameters. + :type energy: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if inputs are invalid + + .. method:: DoInternalScores(do_it) + + :param do_it: Whether to include pairwise interactions between + the scored residues. True by default. + :type do_it: :class:`bool` + + .. method:: DoExternalScores(do_it) + + :param do_it: Whether to include pairwise interactions of the scored + residues towards the surrounding environment. + True by default. + :type do_it: :class:`bool` + + .. method:: DoNormalize(do_it) + + :param do_it: Whether to normalize the calculated scores by the number + of residues to be scored. True by default. + :type do_it: :class:`bool` + + +.. function:: LoadCBetaScorer() + + :returns: The default predefined CBetaScorer (loaded from disk) + :rtype: :class:`CBetaScorer` + + +ReducedScorer class +-------------------------------------------------------------------------------- + +.. class:: ReducedScorer(cutoff, dist_bins, angle_bins, dihedral_bins, seq_sep) + + Inherits all functionality of :class:`BackboneScorer`. Evaluates a pairwise + pseudo interaction energy between the reduced representation of residues. + Every residue gets represented by its CA position p and a directional + component ``v = norm(p-n_pos) + norm(p-c_pos)``. Residues with CA + distance < *cutoff* and which are at least *seq_sep* residues apart are + considered to be interacting. For interacting residues r1 and r2, we can + define a line l between p1 and p2. The potential then considers: + + * dist => distance between p1 and p2 + * alpha => angle between v1 and l + * beta => angle between v2 and l + * gamma => dihedral between (p1+v1,p1,p2,p2+v2) + + The scorer needs to be initialized either by loading a predefined scorer (e.g. + :func:`LoadReducedScorer`) or by setting all energies (see :meth:`SetEnergy`). + + :param cutoff: Radius in which other CA atoms are searched. + :type cutoff: :class:`float` + :param dist_bins: Number of equally sized bins to discretize distances (range + of [0, *cutoff*]). + :type dist_bins: :class:`int` + :param angle_bins: Number of equally sized bins to discretize angles (range + of [0, pi]). + :type angle_bins: :class:`int` + :param dihedral_bins: Number of equally sized bins to discretize dihedrals + (range of [-pi, pi]). + :type dihedral_bins: :class:`int` + :param seq_sep: Minimal separation in sequence two residues must have to + be considered. + :type seq_sep: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *cutoff* < 0, *dist_bins* < 1, + *angle_bins* < 1, *dihedral_bins* < 1 or *seq_sep* < 1. + + .. staticmethod:: Load(filename) + LoadPortable(filename) + + Loads raw binary file generated with :meth:`Save` (optimized for fast + reading) / portable file generated with :meth:`SavePortable` (slower but + less machine-dependent). + + :param filename: Path to the file from which to load. + :type filename: :class:`str` + + :returns: The loaded scorer + :rtype: :class:`ReducedScorer` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if + file cannot be parsed (see :ref:`here <portableIO>` for details). + + .. method:: Save(filename) + SavePortable(filename) + + Saves a raw / portable binary representation. Use portable files for + distribution and convert locally to raw files. See :ref:`here <portableIO>` + for details. + + :param filename: Path to the file where it will be saved. + :type filename: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. + + .. method:: SetEnergy(aa1, aa2, dist_bin, alpha_bin, beta_bin, gamma_bin,\ + energy) + + Setup one energy value. Unless a predefined scorer is loaded, this must be + called for every pair of amino acids, every *dist_bin* < *dist_bins*, every + *alpha_bin* < *angle_bins*, every *beta_bin* < *angle_bins* and every + *gamma_bin* < *dihedral_bins*. + Internal symmetry is enforced => Calling + SetEnergy(aa1, aa2, dist_bin, alpha_bin, beta_bin, energy) is + equivalent to calling + SetEnergy(aa1, aa2, dist_bin, alpha_bin, beta_bin, energy) AND + SetEnergy(aa2, aa1, dist_bin, beta_bin, alpha_bin, energy). + + :param aa1: Amino acid for first interaction partner. + :type aa1: :class:`ost.conop.AminoAcid` + :param aa2: Amino acid for second interaction partner. + :type aa2: :class:`ost.conop.AminoAcid` + :param dist_bin: Discrete bin describing the interaction distance. + :type dist_bin: :class:`int` + :param alpha_bin: Discrete bin describing the alpha angle. + :type alpha_bin: :class:`int` + :param beta_bin: Discrete bin describing the beta angle. + :type beta_bin: :class:`int` + :param gamma_bin: Discrete bin describing the gamma dihedral. + :type gamma_bin: :class:`int` + :param energy: Energy to set for those parameters. + :type energy: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if inputs are invalid + + .. method:: DoInternalScores(do_it) + + :param do_it: Whether to include pairwise interactions between + the scored residues. True by default. + :type do_it: :class:`bool` + + .. method:: DoExternalScores(do_it) + + :param do_it: Whether to include pairwise interactions of the scored + residues towards the surrounding environment. + True by default. + :type do_it: :class:`bool` + + .. method:: DoNormalize(do_it) + + :param do_it: Whether to normalize the calculated scores by the number + of residues to be scored. True by default. + :type do_it: :class:`bool` + +.. function:: LoadReducedScorer() + + :returns: The default predefined ReducedScorer (loaded from disk) + :rtype: :class:`ReducedScorer` + + +ClashScorer class +-------------------------------------------------------------------------------- + +.. class:: ClashScorer + + Inherits all functionality of :class:`BackboneScorer`. Calculates a simple + clash score of a loop itself and with the set environment. There is no need to + define any parameters here as all interaction energies are fixed (see Eq. (11) + in [canutescu2003b]_). + + .. method:: DoInternalScores(do_it) + + :param do_it: Whether to include pairwise interactions between + the scored residues. True by default. + :type do_it: :class:`bool` + + .. method:: DoExternalScores(do_it) + + :param do_it: Whether to include pairwise interactions of the scored + residues towards the surrounding environment. + True by default. + :type do_it: :class:`bool` + + .. method:: DoNormalize(do_it) + + :param do_it: Whether to normalize the calculated scores by the number + of residues to be scored. True by default. + :type do_it: :class:`bool` + + +HBondScorer class +-------------------------------------------------------------------------------- + +.. class:: HBondScorer(min_d, max_d, min_alpha, max_alpha, min_beta, max_beta,\ + min_gamma, max_gamma, d_bins, alpha_bins, beta_bins,\ + gamma_bins) + + Inherits all functionality of :class:`BackboneScorer`. Evaluates pairwise + HBond pseudo energies similar to the one defined in the Rosetta energy + function. It considers the CA, C and O positions from backbone hbond acceptors + in interaction with the N and H positions from the backbone hbond donors. 4 + Parameters describe their relative orientation. + + * dist => H-O distance + * alpha => O-H-N angle + * beta => C-N-H angle + * gamma => CA-C-O-H dihedral angle + + A pseudo energy function for these parameters is evaluated 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. + + The scorer needs to be initialized either by loading a predefined scorer (e.g. + :func:`LoadHBondScorer`) or by setting all energies (see :meth:`SetEnergy`). + + :param min_d: Minimal H-O distance to consider interaction + :type min_d: :class:`float` + :param max_d: Maximal H-O distance to consider interaction + :type max_d: :class:`float` + :param min_alpha: Minimal O-H-N angle to consider interaction + :type min_alpha: :class:`float` + :param max_alpha: Maximal O-H-N angle to consider interaction + :type max_alpha: :class:`float` + :param min_beta: Minimal C-N-H angle to consider interaction + :type min_beta: :class:`float` + :param max_beta: Maximal C-N-H angle to consider interaction + :type max_beta: :class:`float` + :param min_gamma: Minimal CA-C-O-H dihedral to consider interaction + :type min_gamma: :class:`float` + :param max_gamma: Maximal CA-C-O-H dihedral to consider interaction + :type max_gamma: :class:`float` + :param d_bins: Number of equally sized bins to discretize H-O distances + (range of [*min_d*, *max_d*]). + :type d_bins: :class:`int` + :param alpha_bins: Number of equally sized bins to discretize O-H-N angles + (range of [*min_alpha*, *max_alpha*]). + :type alpha_bins: :class:`int` + :param beta_bins: Number of equally sized bins to discretize C-N-H angles + (range of [*min_beta*, *max_beta*]). + :type beta_bins: :class:`int` + :param gamma_bins: Number of equally sized bins to discretize CA-C-O-H angles + (range of [*min_gamma*, *max_gamma*]). + :type gamma_bins: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if one of the bin parameters is + < 1 or a max parameter is smaller than its min counterpart. + + .. staticmethod:: Load(filename) + LoadPortable(filename) + + Loads raw binary file generated with :meth:`Save` (optimized for fast + reading) / portable file generated with :meth:`SavePortable` (slower but + less machine-dependent). + + :param filename: Path to the file from which to load. + :type filename: :class:`str` + + :returns: The loaded scorer + :rtype: :class:`HBondScorer` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if + file cannot be parsed (see :ref:`here <portableIO>` for details). + + .. method:: Save(filename) + SavePortable(filename) + + Saves a raw / portable binary representation. Use portable files for + distribution and convert locally to raw files. See :ref:`here <portableIO>` + for details. + + :param filename: Path to the file where it will be saved. + :type filename: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. + + .. method:: SetEnergy(state, d_bin, alpha_bin, beta_bin, gamma_bin, energy) + + Setup one energy value. Unless a predefined scorer is loaded, this must be + called for every state ([0, 1, 2]), every *d_bin* < *d_bins*, every + *alpha_bin* < *alpha_bins*, every *beta_bin* < *beta_bins* and every + *gamma_bin* < *gamma_bins*. + + :param state: State describing the actual secondary structure + (1: helical, 2: extended, 0: other) + :type state: :class:`int` + :param d_bin: Discrete bin describing the H-O distance. + :type d_bin: :class:`int` + :param alpha_bin: Discrete bin describing the O-H-N angle. + :type alpha_bin: :class:`int` + :param beta_bin: Discrete bin describing the C-N-H angle. + :type beta_bin: :class:`int` + :param gamma_bin: Discrete bin describing the CA-C-O-H dihedral. + :type gamma_bin: :class:`int` + :param energy: Energy to set for those parameters. + :type energy: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if inputs are invalid + + .. method:: DoInternalScores(do_it) + + :param do_it: Whether to include pairwise interactions between + the scored residues. True by default. + :type do_it: :class:`bool` + + .. method:: DoExternalScores(do_it) + + :param do_it: Whether to include pairwise interactions of the scored + residues towards the surrounding environment. + True by default. + :type do_it: :class:`bool` + + .. method:: DoNormalize(do_it) + + :param do_it: Whether to normalize the calculated scores by the number + of residues to be scored. True by default. + :type do_it: :class:`bool` + + +.. function:: LoadHBondScorer() + + :returns: The default predefined HBondScorer (loaded from disk) + :rtype: :class:`HBondScorer` + + +SSAgreementScorer class +-------------------------------------------------------------------------------- + +.. class:: SSAgreementScorer + + Inherits all functionality of :class:`BackboneScorer`. Evaluates a secondary + structure agreement score. The scorer has a score for each combination of + psipred prediction, its confidence and the actually occurring secondary + structure in the model. In every score evaluation, the secondary structure of + the loop is estimated by searching for hydrogen bonds leading to a secondary + structure as defined by dssp. The hbonds are searched internally in the loop + as well as in the environment. + + The scorer needs to be initialized either by loading a predefined scorer (e.g. + :func:`LoadSSAgreementScorer`) or by setting scores for all possible states + (see :meth:`SetScore`). + + This scorer assumes that the attached environment has a psipred prediction + defined (see :meth:`BackboneScoreEnv.SetPsipredPrediction`) as soon as a score + is to be calculated. + + Note that for this scorer a higher "score" is better! So take care when + combining this to other scores, where it is commonly the other way around. + + .. staticmethod:: Load(filename) + LoadPortable(filename) + + Loads raw binary file generated with :meth:`Save` (optimized for fast + reading) / portable file generated with :meth:`SavePortable` (slower but + less machine-dependent). + + :param filename: Path to the file from which to load. + :type filename: :class:`str` + + :returns: The loaded scorer + :rtype: :class:`SSAgreementScorer` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if + file cannot be parsed (see :ref:`here <portableIO>` for details). + + .. method:: Save(filename) + SavePortable(filename) + + Saves a raw / portable binary representation. Use portable files for + distribution and convert locally to raw files. See :ref:`here <portableIO>` + for details. + + :param filename: Path to the file where it will be saved. + :type filename: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. + + .. method:: SetScore(psipred_state, psipred_confidence, dssp_state, score) + + Setup a single score for a combination of states. Unless a predefined scorer + is loaded, this must be called for every combination of states. + + :param psipred_state: must be one of ['H', 'E', 'C'] + :type psipred_state: :class:`str` + :param psipred_confidence: must be in range [0, 9] + :type psipred_confidence: :class:`int` + :param dssp_state: must be one of ['H', 'E', 'C', 'G', 'B', 'S', 'T', 'I'] + :type dssp_state: :class:`str` + :param score: score to be set + :type score: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if inputs are invalid + + .. method:: DoNormalize(do_it) + + :param do_it: Whether to normalize the calculated scores by the number + of residues to be scored. True by default. + :type do_it: :class:`bool` + +.. function:: LoadSSAgreementScorer() + + :returns: The default predefined structure agreement scorer (loaded from disk) + :rtype: :class:`SSAgreementScorer` + + +TorsionScorer class +-------------------------------------------------------------------------------- + +.. class:: TorsionScorer(group_definitions, torsion_bins) + + Inherits all functionality of :class:`BackboneScorer`. Evaluates pseudo + energies based on the identity of three consecutive residues and the phi/psi + dihedral angles of the central residue. The first phi and last psi angle get + determined with the help of the environment if set. + + The scorer needs to be initialized either by loading a predefined scorer (e.g. + :func:`LoadTorsionScorer`) or by setting all energies (see :meth:`SetEnergy`) + for each group definition. + + :param group_definitions: List of group definitions defining amino acid + triplets (same style as used in the + :class:`~promod3.loop.TorsionSampler` class). + :type group_definitions: :class:`list` of :class:`str` + :param torsion_bins: Number of equally sized bins to discretize the torsion + angles (range of [0, 2*pi]). + :type torsion_bins: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *torsion_bins* < 1 or if there is + a possible combination of the 20 standard amino acids not matching + any entry of *group_definitions* + + .. staticmethod:: Load(filename) + LoadPortable(filename) + + Loads raw binary file generated with :meth:`Save` (optimized for fast + reading) / portable file generated with :meth:`SavePortable` (slower but + less machine-dependent). + + :param filename: Path to the file from which to load. + :type filename: :class:`str` + + :returns: The loaded scorer + :rtype: :class:`TorsionScorer` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if + file cannot be parsed (see :ref:`here <portableIO>` for details). + + .. method:: Save(filename) + SavePortable(filename) + + Saves a raw / portable binary representation. Use portable files for + distribution and convert locally to raw files. See :ref:`here <portableIO>` + for details. + + :param filename: Path to the file where it will be saved. + :type filename: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. + + .. method:: SetEnergy(group_idx, phi_bin, psi_bin, energy) + + Setup one energy value. Unless a predefined scorer is loaded, this must be + called for every *group_idx* < len(*group_definitions*), every *phi_bin* < + *torsion_bins* and every *psi_bin* < *torsion_bins*. + + :param group_idx: Index of group definition as set in constructor with + numbering starting at 0. + :type group_idx: :class:`int` + :param phi_bin: Discrete bin describing the phi angle. + :type phi_bin: :class:`int` + :param psi_bin: Discrete bin describing the psi angle. + :type psi_bin: :class:`int` + :param energy: Energy to set for those parameters. + :type energy: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if inputs are invalid + + .. method:: DoNormalize(do_it) + + :param do_it: Whether to normalize the calculated scores by the number + of residues to be scored. True by default. + :type do_it: :class:`bool` + +.. function:: LoadTorsionScorer() + + :returns: The default predefined TorsionScorer (loaded from disk) + :rtype: :class:`TorsionScorer` + + +PairwiseScorer class +-------------------------------------------------------------------------------- + +.. class:: PairwiseScorer + + Inherits all functionality of :class:`BackboneScorer`. Evaluates a list of + generic pairwise functions (see :class:`PairwiseFunction`). + That are set in the attached scoring environment + (see :meth:`BackboneScoreEnv.ApplyPairwiseFunction`). + + Note that for this scorer a higher "score" is better! So take care when + combining this to other scores, where it is commonly the other way around. + + .. method:: DoInternalScores(do_it) + + :param do_it: Whether to include pairwise interactions between + the scored residues. True by default. + :type do_it: :class:`bool` + + .. method:: DoExternalScores(do_it) + + :param do_it: Whether to include pairwise interactions of the scored + residues towards the surrounding environment. + True by default. + :type do_it: :class:`bool`, true by default. + + .. method:: DoNormalize(do_it) + + :param do_it: Whether to normalize the calculated scores by the number + of residues to be scored. True by default. + :type do_it: :class:`bool` diff --git a/doc/html/_sources/scoring/index.rst.txt b/doc/html/_sources/scoring/index.txt similarity index 97% rename from doc/html/_sources/scoring/index.rst.txt rename to doc/html/_sources/scoring/index.txt index d05d49391869751dca1f7d6915849bec2bf26c9c..f8210f7a2d02b400d22db2281f7d995140179799 100644 --- a/doc/html/_sources/scoring/index.rst.txt +++ b/doc/html/_sources/scoring/index.txt @@ -1,45 +1,45 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -:mod:`~promod3.scoring` - Loop Scoring -================================================================================ - -.. module:: promod3.scoring - :synopsis: Loop Scoring - -.. currentmodule:: promod3.scoring - -Tools and algorithms to score loops. The scoring system is split between an -environment and scorers. -Several scorers can be attached to the same environment containing the -actual structural data of the current modelling problem. -The environment is updated as the modelling proceeds and manages efficient -spatial lookups to be used by the attached scorers. - -In this example, we load a structure, setup a score environment, link a few -scorers to it and finally score some loops: - -.. literalinclude:: ../../../tests/doc/scripts/scoring_main.py - -Contents: - -.. toctree:: - :maxdepth: 2 - - backbone_score_env - backbone_scorers - all_atom_scorers - other_scoring_functions +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +:mod:`~promod3.scoring` - Loop Scoring +================================================================================ + +.. module:: promod3.scoring + :synopsis: Loop Scoring + +.. currentmodule:: promod3.scoring + +Tools and algorithms to score loops. The scoring system is split between an +environment and scorers. +Several scorers can be attached to the same environment containing the +actual structural data of the current modelling problem. +The environment is updated as the modelling proceeds and manages efficient +spatial lookups to be used by the attached scorers. + +In this example, we load a structure, setup a score environment, link a few +scorers to it and finally score some loops: + +.. literalinclude:: ../../../tests/doc/scripts/scoring_main.py + +Contents: + +.. toctree:: + :maxdepth: 2 + + backbone_score_env + backbone_scorers + all_atom_scorers + other_scoring_functions diff --git a/doc/html/_sources/scoring/other_scoring_functions.rst.txt b/doc/html/_sources/scoring/other_scoring_functions.txt similarity index 97% rename from doc/html/_sources/scoring/other_scoring_functions.rst.txt rename to doc/html/_sources/scoring/other_scoring_functions.txt index 25716e1c798b530c0fb8e8a558613700f98b8496..5db6fa73c23f7d687195e5975d9c6bec8f068c51 100644 --- a/doc/html/_sources/scoring/other_scoring_functions.rst.txt +++ b/doc/html/_sources/scoring/other_scoring_functions.txt @@ -1,71 +1,71 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Other Scoring Functions -================================================================================ - -.. currentmodule:: promod3.scoring - - -Scoring Functions from SCWRL3 --------------------------------------------------------------------------------- - -.. method:: SCWRL3PairwiseScore(d, Rij) - - Pairwise score from the SCWRL3 sidechain construction algorithm - [canutescu2003b]_. - - :param d: Distance between the two interacting particles - :param Rij: Summed hard-sphere radii of the interacting particles. - Suggestions from the paper: - - - carbon: 1.6 - - oxygen: 1.3 - - nitrogen: 1.3 - - sulfur: 1.7 - - :type d: :class:`float` - :type Rij: :class:`float` - - :returns: The score - :rtype: :class:`float` - - -.. method:: SCWRL3DisulfidScore(ca_pos_one, cb_pos_one, sg_pos_one\ - ca_pos_two, cb_pos_two, sg_pos_two) - - Implements the empirically derived disulfid score from the SCWRL3 sidechain - construction algorithm [canutescu2003b]_. - - :param ca_pos_one: CA carbon position of first amino acid - :param cb_pos_one: CB carbon position of first amino acid - :param sg_pos_one: SG sulfur position of first amino acid - :param ca_pos_two: CA carbon position of second amino acid - :param cb_pos_two: CB carbon position of second amino acid - :param sg_pos_two: SG sulfur position of second amino acid - - :type ca_pos_one: :class:`ost.geoom.Vec3` - :type cb_pos_one: :class:`ost.geoom.Vec3` - :type sg_pos_one: :class:`ost.geoom.Vec3` - :type ca_pos_two: :class:`ost.geoom.Vec3` - :type cb_pos_two: :class:`ost.geoom.Vec3` - :type sg_pos_two: :class:`ost.geoom.Vec3` - - :returns: The score - :rtype: :class:`float` - - - +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Other Scoring Functions +================================================================================ + +.. currentmodule:: promod3.scoring + + +Scoring Functions from SCWRL3 +-------------------------------------------------------------------------------- + +.. method:: SCWRL3PairwiseScore(d, Rij) + + Pairwise score from the SCWRL3 sidechain construction algorithm + [canutescu2003b]_. + + :param d: Distance between the two interacting particles + :param Rij: Summed hard-sphere radii of the interacting particles. + Suggestions from the paper: + + - carbon: 1.6 + - oxygen: 1.3 + - nitrogen: 1.3 + - sulfur: 1.7 + + :type d: :class:`float` + :type Rij: :class:`float` + + :returns: The score + :rtype: :class:`float` + + +.. method:: SCWRL3DisulfidScore(ca_pos_one, cb_pos_one, sg_pos_one\ + ca_pos_two, cb_pos_two, sg_pos_two) + + Implements the empirically derived disulfid score from the SCWRL3 sidechain + construction algorithm [canutescu2003b]_. + + :param ca_pos_one: CA carbon position of first amino acid + :param cb_pos_one: CB carbon position of first amino acid + :param sg_pos_one: SG sulfur position of first amino acid + :param ca_pos_two: CA carbon position of second amino acid + :param cb_pos_two: CB carbon position of second amino acid + :param sg_pos_two: SG sulfur position of second amino acid + + :type ca_pos_one: :class:`ost.geoom.Vec3` + :type cb_pos_one: :class:`ost.geoom.Vec3` + :type sg_pos_one: :class:`ost.geoom.Vec3` + :type ca_pos_two: :class:`ost.geoom.Vec3` + :type cb_pos_two: :class:`ost.geoom.Vec3` + :type sg_pos_two: :class:`ost.geoom.Vec3` + + :returns: The score + :rtype: :class:`float` + + + diff --git a/doc/html/_sources/sidechain/disulfid.rst.txt b/doc/html/_sources/sidechain/disulfid.txt similarity index 98% rename from doc/html/_sources/sidechain/disulfid.rst.txt rename to doc/html/_sources/sidechain/disulfid.txt index e815df4f17911f74ad42fa1a5a367afd3039a5c2..62935426d3805580371bbc56b52dec2b690f64a4 100644 --- a/doc/html/_sources/sidechain/disulfid.rst.txt +++ b/doc/html/_sources/sidechain/disulfid.txt @@ -1,107 +1,107 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -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. The scoring module implements an empirically derived disulfid -score (:func:`promod3.scoring.SCWRL3DisulfidScore`) as defined in -[canutescu2003b]_. The paper proposes two rotamers to be in a disulfid -bonded state, if the resulting disulfid score plus the self energies of the -involved rotamers is below 45. If there are several cysteines close together, -this problem gets another layer of complexity. One has to assure, that -every cysteine only participates in one disulfid bond but the network -of disulfid bonds is geometrically optimal. SCWRL4 proposes an approach, -that has also been implemented here. - - -.. method:: DisulfidScore(rotamer_one, rotamer_two, ca_pos_one, cb_pos_one, \ - ca_pos_two, cb_pos_two) - - Directly extracts the positions of the gamma sulfurs from the rotamers by - searching for particles with the name "SG". - The found positions are then passed to - :func:`promod3.scoring.SCWRL3DisulfidScore`. - In case of :class:`RRMRotamer` it expects exactly one gamma sulfur per - rotamer. In case of :class:`FRMRotamer` there can be an arbitrary number - of gamma sulfurs per rotamer (at least one), it then evaluates the score - for all possible combinations of gamma sulfurs and takes the minimum score. - To get a final DisulfidScore, it finally adds the self energies of the - rotamers to the result of the geometric expression. - - :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` , :class:`FRMRotamer` - :type rotamer_two: :class:`RRMRotamer` , :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: :exc:`~exceptions.RuntimeError` if given rotamers do not contain - exactly (in case of :class:`RRMRotamer`) or at least (in case of - :class:`FRMRotamer`) one particle representing the gamma sulfur. - - :returns: The result of the raw score plus the average - self energies of the input rotamers - - -.. method:: ResolveCysteins(rotamer_groups, ca_positions, cb_positions,\ - [score_threshold=45.0, optimize_subrotamers=False]) - - Tries to optimize disulfid bond network. In a first step, all disulfid bonds - get detected using :func:`DisulfidScore`. If the value between two rotamers is - below **score_threshold**, they're assumed to be bonded. The function then - tries to detect the largest possible set of disulfide bonds, with no - cysteine being part of more than one bond. If several largest sets are - possible, the one with the optimal sum of scores gets estimated. - - :param rotamer_groups: Every group represents a cysteine - :param ca_positions: The CA positions of the according rotamers - :param cb_positions: The CB positions of the according rotamers - :param score_threshold: The score two rotamers must have to be considered - as a disulfid bond - :param optimize_subrotamers: If set to true and the input consists of flexible - rotamer groups, the active subrotamers get - optimized. For every pair of rotamers - participating in a disulfid bond, the subrotamers - with best :func:`DisulfidScore` get activated in - the input **rotamer_groups**. This has an effect - when the rotamers get applied on residues. - - :type rotamer_groups: :class:`list` of - :class:`FRMRotamerGroup`/:class:`RRMRotamerGroup` - :type ca_positions: :class:`list` of :class:`ost.geom.Vec3` - :type cb_positions: :class:`list` of :class:`ost.geom.Vec3` - :type score_threshold: :class:`float` - :type optimize_subrotamers: :class:`bool` - - :returns: A :class:`tuple` containing two :class:`list` objects with equal - length. Both lists contain :class:`tuple` objects with two elements. - The tuples in the first list describe the indices of cysteins - participating in disulfid bonds. The tuples in the second list - describe the optimal rotamers in the according rotamer groups. +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +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. The scoring module implements an empirically derived disulfid +score (:func:`promod3.scoring.SCWRL3DisulfidScore`) as defined in +[canutescu2003b]_. The paper proposes two rotamers to be in a disulfid +bonded state, if the resulting disulfid score plus the self energies of the +involved rotamers is below 45. If there are several cysteines close together, +this problem gets another layer of complexity. One has to assure, that +every cysteine only participates in one disulfid bond but the network +of disulfid bonds is geometrically optimal. SCWRL4 proposes an approach, +that has also been implemented here. + + +.. method:: DisulfidScore(rotamer_one, rotamer_two, ca_pos_one, cb_pos_one, \ + ca_pos_two, cb_pos_two) + + Directly extracts the positions of the gamma sulfurs from the rotamers by + searching for particles with the name "SG". + The found positions are then passed to + :func:`promod3.scoring.SCWRL3DisulfidScore`. + In case of :class:`RRMRotamer` it expects exactly one gamma sulfur per + rotamer. In case of :class:`FRMRotamer` there can be an arbitrary number + of gamma sulfurs per rotamer (at least one), it then evaluates the score + for all possible combinations of gamma sulfurs and takes the minimum score. + To get a final DisulfidScore, it finally adds the self energies of the + rotamers to the result of the geometric expression. + + :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` , :class:`FRMRotamer` + :type rotamer_two: :class:`RRMRotamer` , :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: :exc:`~exceptions.RuntimeError` if given rotamers do not contain + exactly (in case of :class:`RRMRotamer`) or at least (in case of + :class:`FRMRotamer`) one particle representing the gamma sulfur. + + :returns: The result of the raw score plus the average + self energies of the input rotamers + + +.. method:: ResolveCysteins(rotamer_groups, ca_positions, cb_positions,\ + [score_threshold=45.0, optimize_subrotamers=False]) + + Tries to optimize disulfid bond network. In a first step, all disulfid bonds + get detected using :func:`DisulfidScore`. If the value between two rotamers is + below **score_threshold**, they're assumed to be bonded. The function then + tries to detect the largest possible set of disulfide bonds, with no + cysteine being part of more than one bond. If several largest sets are + possible, the one with the optimal sum of scores gets estimated. + + :param rotamer_groups: Every group represents a cysteine + :param ca_positions: The CA positions of the according rotamers + :param cb_positions: The CB positions of the according rotamers + :param score_threshold: The score two rotamers must have to be considered + as a disulfid bond + :param optimize_subrotamers: If set to true and the input consists of flexible + rotamer groups, the active subrotamers get + optimized. For every pair of rotamers + participating in a disulfid bond, the subrotamers + with best :func:`DisulfidScore` get activated in + the input **rotamer_groups**. This has an effect + when the rotamers get applied on residues. + + :type rotamer_groups: :class:`list` of + :class:`FRMRotamerGroup`/:class:`RRMRotamerGroup` + :type ca_positions: :class:`list` of :class:`ost.geom.Vec3` + :type cb_positions: :class:`list` of :class:`ost.geom.Vec3` + :type score_threshold: :class:`float` + :type optimize_subrotamers: :class:`bool` + + :returns: A :class:`tuple` containing two :class:`list` objects with equal + length. Both lists contain :class:`tuple` objects with two elements. + The tuples in the first list describe the indices of cysteins + participating in disulfid bonds. The tuples in the second list + describe the optimal rotamers in the according rotamer groups. diff --git a/doc/html/_sources/sidechain/frame.rst.txt b/doc/html/_sources/sidechain/frame.txt similarity index 97% rename from doc/html/_sources/sidechain/frame.rst.txt rename to doc/html/_sources/sidechain/frame.txt index 7e0942f2bdd9508ca6d9225e7e9e1b14f58c5be0..c15265d4b1a240a518a33b5b619538c463b716ba 100644 --- a/doc/html/_sources/sidechain/frame.rst.txt +++ b/doc/html/_sources/sidechain/frame.txt @@ -1,68 +1,68 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Frame - The Rigid Part -================================================================================ - -.. 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. - - -The Frame Objects --------------------------------------------------------------------------------- - -.. class:: FrameResidue(particles, residue_index) - - :param particles: particles building frame residue - :param residue_index: Interaction energies between the constructed frame - residue and any rotamer associated to the same - residue index are neglected - - :type particles: :class:`list` of :class:`Particle` - :type residue_index: :class:`int` - - .. method:: __len__() - - :returns: Number of particles in :class:`FrameResidue` - - - .. method:: __getitem__(index) - - :param index: :class:`Particle` index - :type index: :class:`int` - - :returns: :class:`Particle` at position **index** - - :raises: :exc:`~exceptions.RuntimeError` if index is invalid - - - -.. class:: Frame(frame_residues) - - The :class:`Frame` object is used as a container for rigid particles, that - can be passed to rotamer groups for calculating frame energies. - - :param frame_residues: residues building the frame. - :type frame_residues: :class:`list` of :class:`FrameResidue` - +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Frame - The Rigid Part +================================================================================ + +.. 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. + + +The Frame Objects +-------------------------------------------------------------------------------- + +.. class:: FrameResidue(particles, residue_index) + + :param particles: particles building frame residue + :param residue_index: Interaction energies between the constructed frame + residue and any rotamer associated to the same + residue index are neglected + + :type particles: :class:`list` of :class:`Particle` + :type residue_index: :class:`int` + + .. method:: __len__() + + :returns: Number of particles in :class:`FrameResidue` + + + .. method:: __getitem__(index) + + :param index: :class:`Particle` index + :type index: :class:`int` + + :returns: :class:`Particle` at position **index** + + :raises: :exc:`~exceptions.RuntimeError` if index is invalid + + + +.. class:: Frame(frame_residues) + + The :class:`Frame` object is used as a container for rigid particles, that + can be passed to rotamer groups for calculating frame energies. + + :param frame_residues: residues building the frame. + :type frame_residues: :class:`list` of :class:`FrameResidue` + diff --git a/doc/html/_sources/sidechain/graph.rst.txt b/doc/html/_sources/sidechain/graph.txt similarity index 97% rename from doc/html/_sources/sidechain/graph.rst.txt rename to doc/html/_sources/sidechain/graph.txt index 249724b6d2a6edd2d834dc406d9ade930f7b639a..5ac809fbc077156ab70a668e877073bfd8200765 100644 --- a/doc/html/_sources/sidechain/graph.rst.txt +++ b/doc/html/_sources/sidechain/graph.txt @@ -1,45 +1,45 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Rotamer Graph -================================================================================ - -.. 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. |project| implements a -:class:`promod3.core.GraphMinimizer` that allows to find solutions using -tree decomposition, A* and Monte Carlo algorithms. - -.. class:: RotamerGraph - - The :class:`RotamerGraph` objects inherits from - :class:`promod3.core.GraphMinimizer` and extends the minimizer by static - initialization functions. - - .. staticmethod:: CreateFromRRMList(rotamer_groups) - - .. staticmethod:: CreateFromFRMList(rotamer_groups) - - :param rotamer_groups: :class:`RRMRotamerGroup` or :class:`FRMRotamerGroup` - objects representing the possible sidechain - conformations for every amino acid position. - - :type rotamer_groups: :class:`list` - - +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Rotamer Graph +================================================================================ + +.. 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. |project| implements a +:class:`promod3.core.GraphMinimizer` that allows to find solutions using +tree decomposition, A* and Monte Carlo algorithms. + +.. class:: RotamerGraph + + The :class:`RotamerGraph` objects inherits from + :class:`promod3.core.GraphMinimizer` and extends the minimizer by static + initialization functions. + + .. staticmethod:: CreateFromRRMList(rotamer_groups) + + .. staticmethod:: CreateFromFRMList(rotamer_groups) + + :param rotamer_groups: :class:`RRMRotamerGroup` or :class:`FRMRotamerGroup` + objects representing the possible sidechain + conformations for every amino acid position. + + :type rotamer_groups: :class:`list` + + diff --git a/doc/html/_sources/sidechain/index.rst.txt b/doc/html/_sources/sidechain/index.txt similarity index 97% rename from doc/html/_sources/sidechain/index.rst.txt rename to doc/html/_sources/sidechain/index.txt index 8ff7c3006fe28f0f176fb835df4c7d0333440ffa..cb13f38a7a610c1e11deb9e6b917fba4a858652e 100644 --- a/doc/html/_sources/sidechain/index.rst.txt +++ b/doc/html/_sources/sidechain/index.txt @@ -1,54 +1,54 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -: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 [krivov2009]_ . The according 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 |project| and can be -applied in flexible ways. - -The 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 full fletched sidechain reconstruction -pipelines available in the modelling module. - - -.. literalinclude:: ../../../tests/doc/scripts/sidechain_steps.py - -Contents: - -.. toctree:: - :maxdepth: 2 - - rotamer - frame - rotamer_constructor - rotamer_lib - graph - disulfid - loading - subrotamer_optimizer - - +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +: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 [krivov2009]_ . The according 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 |project| and can be +applied in flexible ways. + +The 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 full fletched sidechain reconstruction +pipelines available in the modelling module. + + +.. literalinclude:: ../../../tests/doc/scripts/sidechain_steps.py + +Contents: + +.. toctree:: + :maxdepth: 2 + + rotamer + frame + rotamer_constructor + rotamer_lib + graph + disulfid + loading + subrotamer_optimizer + + diff --git a/doc/html/_sources/sidechain/loading.rst.txt b/doc/html/_sources/sidechain/loading.txt similarity index 97% rename from doc/html/_sources/sidechain/loading.rst.txt rename to doc/html/_sources/sidechain/loading.txt index f76d11ed8a80fbd990de8dbba2469c73d746b170..e6f482432af0b56d3ca6123c2718820e28a34247 100644 --- a/doc/html/_sources/sidechain/loading.rst.txt +++ b/doc/html/_sources/sidechain/loading.txt @@ -1,70 +1,70 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Loading Rotamer Libraries -================================================================================ - -.. currentmodule:: promod3.sidechain - -There are several rotamer libraries that can be used in |project| . |project| -is optimized for the use with backbone dependent rotamer libraries such -as the 2010 library provided by the Dunbrack lab [shapovalov2011]_. -You can request a licence `here <http://dunbrack.fccc.edu/bbdep2010/>`_ -and generate such a library as described in -extras/data_generation/rotamer_library/README. Alternatively, |project| -provides its own backbone dependent or backbone independent libraries -that can be loaded with :meth:`LoadBBDepLib` / :meth:`LoadLib`. - -.. method:: LoadBBDepLib() - - A backbone dependent rotamer library shipped with |project|. You can find - details on how it is created in extras/data_generation/rotamer_library/README. - All scripts to build it are in the same directory as the README file and - build the basis for custom versions. - - :returns: The requested Library - :rtype: :class:`BBDepRotamerLib` - - -.. method:: LoadLib() - - A backbone independent rotamer library shipped with |project|. You can find - details on how it is created in extras/data_generation/rotamer_library/README. - All scripts to build it are in the same directory as the README file and - build the basis for custom versions. - - :returns: The requested library - :rtype: :class:`RotamerLib` - - -.. method:: ReadDunbrackFile(filename) - - Reads a file as it is provided when you get a licence for the 2010 library of - the Dunbrack lab. It can only read the classic version, where all rotamers - are in a single file. Specific distributions of non-rotameric sidechains - cannot be read. You can find an example described in - extras/data_generation/rotamer_library/README - - :param filename: Name of the file - :type param: :class:`str` - - :throws: :exc:`~exceptions.RuntimeError` if file does not exist, the format - is not valid or when the library is incomplete leading to problems - to make the library static. Most likely your input file is - incomplete if the last problem gets triggered. - - :returns: The read library - :rtype: :class:`BBDepRotamerLib` +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Loading Rotamer Libraries +================================================================================ + +.. currentmodule:: promod3.sidechain + +There are several rotamer libraries that can be used in |project| . |project| +is optimized for the use with backbone dependent rotamer libraries such +as the 2010 library provided by the Dunbrack lab [shapovalov2011]_. +You can request a licence `here <http://dunbrack.fccc.edu/bbdep2010/>`_ +and generate such a library as described in +extras/data_generation/rotamer_library/README. Alternatively, |project| +provides its own backbone dependent or backbone independent libraries +that can be loaded with :meth:`LoadBBDepLib` / :meth:`LoadLib`. + +.. method:: LoadBBDepLib() + + A backbone dependent rotamer library shipped with |project|. You can find + details on how it is created in extras/data_generation/rotamer_library/README. + All scripts to build it are in the same directory as the README file and + build the basis for custom versions. + + :returns: The requested Library + :rtype: :class:`BBDepRotamerLib` + + +.. method:: LoadLib() + + A backbone independent rotamer library shipped with |project|. You can find + details on how it is created in extras/data_generation/rotamer_library/README. + All scripts to build it are in the same directory as the README file and + build the basis for custom versions. + + :returns: The requested library + :rtype: :class:`RotamerLib` + + +.. method:: ReadDunbrackFile(filename) + + Reads a file as it is provided when you get a licence for the 2010 library of + the Dunbrack lab. It can only read the classic version, where all rotamers + are in a single file. Specific distributions of non-rotameric sidechains + cannot be read. You can find an example described in + extras/data_generation/rotamer_library/README + + :param filename: Name of the file + :type param: :class:`str` + + :throws: :exc:`~exceptions.RuntimeError` if file does not exist, the format + is not valid or when the library is incomplete leading to problems + to make the library static. Most likely your input file is + incomplete if the last problem gets triggered. + + :returns: The read library + :rtype: :class:`BBDepRotamerLib` diff --git a/doc/html/_sources/sidechain/rotamer.rst.txt b/doc/html/_sources/sidechain/rotamer.txt similarity index 97% rename from doc/html/_sources/sidechain/rotamer.rst.txt rename to doc/html/_sources/sidechain/rotamer.txt index ddad795d41085768c713bbfabd3000580adb867e..7e87093f6e637bc336cd96a4f5c10d44c883914b 100644 --- a/doc/html/_sources/sidechain/rotamer.rst.txt +++ b/doc/html/_sources/sidechain/rotamer.txt @@ -1,861 +1,861 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Representing Sidechains - Rotamers & Co. -================================================================================ - -.. currentmodule:: promod3.sidechain - -A rotamer represents an amino acid sidechain identified by a :class:`RotamerID` -and is a set of :class:`Particle` objects. -Two types of rotamers exist. The :class:`RRMRotamer` and :class:`FRMRotamer`. -To gather all possible rotamers for one location, -|project| offers the :class:`RRMRotamerGroup` and :class:`FRMRotamerGroup`. -All parts of the structure that are kept rigid can be represented by -a :class:`Frame` object. - - -RotamerID --------------------------------------------------------------------------------- - -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. - -.. class:: RotamerID - - Enumerates the amino acids. Possible values: - - .. hlist:: - :columns: 2 - - * 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 - - The RotamerID enum can be accessed either directly as ``promod3.sidechain.ARG`` - or as ``promod3.sidechain.RotamerID.ARG``. - - -How can I get an ID? -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The RotamerID enum can directly be accessed from Python. Two convenient -functions exist to get RotamerIDs from the :class:`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. - - -The Smallest Building Block - The Particle --------------------------------------------------------------------------------- - -Particles give raise to more complex objects such as rotamers and frame -residues. They contain all data required to calculate pairwise energies. -For every energy function available in |project|, there's a particle creation -function. - -.. class:: PScoringFunction - - The available scoring functions between :class:`Particle` objects - - * SCWRL4 - :ref:`scwrl4-scoring-function` - * SCWRL3 - :ref:`scwrl3-scoring-function` - * VINA - :ref:`vina-scoring-function` - -.. class:: Particle - - The particle class. There's no constructor. You can either use the - :class:`RotamerConstructor` to create full :class:`RotamerGroup` objects - with all underlying particles or the energy function specific creation - functions. - - .. method:: PairwiseScore(other_particle) - - Calculates score between the two particles - - :param other_particle: The interacting particle - :type other_particle: :class:`Particle` - - :returns: The score - :rtype: :class:`float` - - :raises: :exc:`~exceptions.RuntimeError` if the scoring function - parametrization of the two particles is inconsistent - - .. method:: GetName() - - :returns: The name of the particle, which corresponds to the - atom name - :rtype: :class:`str` - - .. method:: GetCollisionDistance() - - :returns: The "collision distance" all pairs of particles with - their distance below the sum of their collision - distances are considered as interacting and thus - evaluated by the underlying scoring function. - - :rtype: :class:`float` - - .. method:: GetPos() - - :returns: The position of the particle - :rtype: :class:`ost.geom.Vec3` - - .. method:: GetScoringFunction() - - :returns: The underlying scoring function - :rtype: :class:`PScoringFunction` - - - -.. _scwrl4-scoring-function: - -The SCWRL4 scoring function -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The SCWRL4 scoring function combines a Lennard-Jones style term with -a hydrogen bond term. Details can be found in the relevant publication -[krivov2009]_. - -.. class:: SCWRL4ParticleType - - The SCWRL4 energy function differentiates between following particle types - that define the behaviour of the Lennard-Jones style term: - - * HParticle - represents hydrogen - * CParticle - default representation of a carbon - * CH1Particle - represents carbon bound to 1 hydrogen - * CH2Particle - represents carbon bound to 2 hydrogen - * CH3Particle - represents carbon bound to 3 hydrogen - * NParticle - represents nitrogen - * OParticle - default representation of oxygen - * OCParticle - represents carbonyl-oxygen for ASP/GLU - * SParticle - represents sulfur - -.. method:: CreateSCWRL4Particle(name, particle_type, pos, [charge, \ - lone_pairs=None, polar_direction=None]) - - Creates and returns a :class:`Particle` that can evaluate the SCWRL4 scoring - function - - :param name: The name of the particle - :param particle_type: The type of the particle - :param pos: The position of the particle - :param charge: The charge of the particle, relevant for the hydrogen - bond term - :param lone_pairs: Direction of all possible lone pairs of the particle, - relevant for the hydrogen bond term. If set, the - particle is a potential hydrogen bond acceptor. - An example would be the Serine OG atom, where you can - represent the two lone pairs with vectors pointing - from the OG position towards the lone pair centers. - :param polar_direction: The polar direction of the particle, - relevant for the hydrogen bond term. If set, the - particle is a potential hydrogen bond donor. An - example would be the Serine HG hydrogen. The - *polar_direction* would be a vector - estimated as follows: hg_pos-og_pos. - - :type name: :class:`str` - :type particle_type: :class:`SCWRL4ParticleType` - :type pos: :class:`ost.geom.Vec3` - :type charge: :class:`float` - :type lone_pairs: :class:`ost.geom.Vec3List` - :type polar_direction: :class:`ost.geom.Vec3` - - -.. _scwrl3-scoring-function: - -The SCWRL3 scoring function -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The SCWRL3 scoring function implements a simple repulsion term that depends on -the hard-sphere radius of the involved particles. -Details can be found in the relevant publication [canutescu2003]_. - -.. method:: CreateSCWRL3Particle(name, radius, pos) - - Creates and returns a :class:`Particle` that can evaluate the SCWRL3 scoring - function - - :param name: The name of the particle - :param radius: The hard-sphere radius of the particle, relevant for the - repulsion term. - :param pos: The position of the particle - - :type name: :class:`str` - :type radius: :class:`float` - :type pos: :class:`ost.geom.Vec3` - - -.. _vina-scoring-function: - -The VINA scoring function -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The VINA scoring function is a combination of scores that are named -gaussian1, gaussian2, repulsion, hydrophobic and hbond in the Autodock Vina -software [trott2010]_. VINA only evaluates heavy atoms. Gaussian1, gaussian2 -and repulsion are evaluated for all pairs of particles. Hydrophobic is only -evaluated between C_VINAParticle :class:`VINAParticleType` and hbond is -evaluated between hydrogen bond donor/acceptor pairs. While SCWRL3 and SCWRL4 -are intended to evaluate sidechain-sidechain interactions in proteins, -VINA is mainly targeted at interactions between sidechains and ligands. - -The VINA scoring function differentiates between the following particle types: - -.. class:: VINAParticleType - - * O_D_VINAParticle - Oxygen that can be a hydrogen bond donor - * N_D_VINAParticle - Nitrogen that can be a hydrogen bond donor - * O_A_VINAParticle - Oxygen that can be a hydrogen bond acceptor - * N_A_VINAParticle - Nitrogen that can be a hydrogen bond acceptor - * O_AD_VINAParticle - Oxygen that can be a hydrogen bond donor and acceptor - * N_AD_VINAParticle - Nitrogen that can be a hydrogen bond donor and acceptor - * O_VINAParticle - Oxygen - * N_VINAParticle - Nitrogen - * S_VINAParticle - Sulfur - * P_VINAParticle - Phosphorus - * C_P_VINAParticle - Polar carbon that is covalently bound to a charged atom - * C_VINAParticle - Hydrophobic carbon that is only bound to other carbons or hydrogens - * F_VINAParticle - Fluorine - * Cl_VINAParticle - Chlorine - * Br_VINAParticle - Bromine - * I_VINAParticle - Iodine - * M_VINAParticle - Metals - * INVALID_VINAParticle - Invalid particle... - - -.. method:: CreateVINAParticle(name, particle_type, pos) - - Creates and returns a :class:`Particle` that can evaluate the VINA scoring - function - - :param name: The name of the particle - :param radius: The type of the particle - :param pos: The position of the particle - - :type name: :class:`str` - :type radius: :class:`VINAParticleType` - :type pos: :class:`ost.geom.Vec3` - - -Rotamers --------------------------------------------------------------------------------- - - -.. class:: RRMRotamer(particles, probability, internal_e_prefactor) - - The RRMRotamer represents a rotamer of the so called rigid rotamer model. - - :param particles: List of :class:`Particle` objects - :param probability: Probability of rotamers. In case of the SCWRL4 - energy calculation, this directly controls the - internal energy of that rotamer. - :param internal_e_prefactor: Factor applied to the internal energy calculated - as -log(**probability**/max_probability), - where max_probability is the maximum - rotamer probability of any rotamer in a - particular :class:`RRMRotamerGroup`. - - :type particles: :class:`list` - :type probability: :class:`float` - :type internal_e_prefactor: :class:`float` - - - .. 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: :exc:`~exceptions.RuntimeError` if index is invalid - - - .. method:: __len__() - - :returns: Number of particles the rotamer contains - - .. method:: ApplyOnResidue(res, consider_hydrogens=False, new_res_name="") - - Iterates over every particle and searches for the according atom in - **res**. If it's present, the position gets reset to the particle position. - If not, a new atom gets added to **res**. No atoms are removed from **res** - in this process. - - :param res: Residue to be reconstructed - :param consider_hydrogens: Flag, whether polar hydrogens should be added to - **res** - :param new_res_name: New name of **res**. 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: :exc:`~exceptions.RuntimeError` if not all required backbone atoms - are present in *res* - - .. method:: ApplyOnResidue(all_atom, res_idx) - - Set all sidechain atom positions for given residue to the positions of the - particles in the rotamer. - - :param all_atom: Container to which to apply rotamer - :param res_idx: Residue index into *all_atom* - - :type all_atom: :class:`~promod3.loop.AllAtomPositions` - :type res_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *res_idx* is invalid - - .. method:: ToFrameResidue(res_idx) - - Generates and returns a :class:`FrameResidue` based on the internal - particles. - - :param res_idx: Idx passed over to :class:`FrameResidue` constructor - :type res_idx: :class:`int` - - :returns: The constructed :class:`FrameResidue` - - .. method:: GetInternalEnergyPrefactor() - - :returns: Prefactor used in internal energy calculation - - - .. method:: GetInternalEnergy() - - :returns: Internal Energy if calculated, 0.0 otherwise - - - .. method:: GetFrameEnergy() - - Returns frame energy. This energy can either be manually set or calculated - using a :class:`Frame` and the :class:`RRMRotamerGroup` this rotamer - belongs to. - - :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:: SetInternalEnergyPrefactor(prefactor) - - :param energy: Internal energy prefactor to be set - - :type energy: :class:`float` - - - .. method:: SetInternalEnergy(energy) - - :param energy: Internal energy to be set - - :type energy: :class:`float` - - - .. method:: SetFrameEnergy(energy) - - :param energy: Frame energy to be set - - :type energy: :class:`float` - - - .. method:: AddFrameEnergy(energy) - - :param energy: Frame energy to be added - - :type energy: :class:`float` - - - .. method:: SetProbability(probability) - - :param energy: Internal probability to be set - - :type energy: :class:`float` - - - -.. class:: FRMRotamer(particles, T, probability, internal_e_prefactor) - - The FRMRotamer represents a rotamer of the so called flexible rotamer model, - where one rotamer gets represented by several subrotamers. - The idea is that all particles of all subrotamers are given at - initialization. Subrotamers are then defined by providing lists of indices. - One particle can be part of several subrotamers. - - :param particles: List of :class:`Particle` objects - :param probability: Probability of rotamers. In case of the SCWRL4 - energy calculation, this directly controls the - internal energy of that rotamer. - :param T: Temperature factor, that is used to generate a final - energy given the subrotamers according to the formalism - described in the SCWRL4 paper. - :param internal_e_prefactor: Factor applied to the internal energy calculated - as -log(**probability**/max_probability), - where max_probability is the maximum - rotamer probability of any rotamer in a - particular :class:`FRMRotamerGroup`. - - :type particles: :class:`list` - :type probability: :class:`float` - :type T: :class:`float` - :type internal_e_prefactor: :class:`float` - - - .. 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: :exc:`~exceptions.RuntimeError` if index is invalid - - - .. method:: __len__() - - :returns: Number of particles the rotamer contains - - - .. method:: GetNumSubrotamers() - - :returns: Number of subrotamers - - .. method:: ApplyOnResidue(res, consider_hydrogens=False, new_res_name="") - - Iterates over every particle of the active subrotamer and searches for the - according atom in **res**. If it's present, the position gets reset to the - particle position. If not, a new atom gets added to **res**. - No atoms are removed from **res** in this process. - - :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: :exc:`~exceptions.RuntimeError` if not all required backbone atoms - are present in *res* - - .. method:: ApplyOnResidue(all_atom, res_idx) - - Set all sidechain atom positions for given residue to the positions of the - particles in the active surotamer. - - :param all_atom: Container to which to apply rotamer - :param res_idx: Residue index into *all_atom* - - :type all_atom: :class:`~promod3.loop.AllAtomPositions` - :type res_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if *res_idx* is invalid - - .. method:: ToFrameResidue(res_idx) - - Generates and returns a :class:`FrameResidue` based on the internal - particles of the active subrotamer. - - :param res_idx: Idx passed over to :class:`FrameResidue` constructor - :type res_idx: :class:`int` - - :returns: The constructed :class:`FrameResidue` - - .. method:: ToRRMRotamer() - - Generates and returns a :class:`RRMRotamer` based on the internal - particles of the active subrotamer. Following parameters of the - returned rotamer get set: probability (probability of the whole FRMRotamer), - internal_e_prefactor (prefactor of the whole FRMRotamer), - frame_energy (The frame energy of that particular subrotamer if already - calculated), internal_energy (the internal energy of the whole FRMRotamer) - - .. method:: GetSubrotamerDefinition(index) - - :param index: Index of subrotamer - - :type index: :class:`int` - - :returns: :class:`list` of particle indices belonging to this - particular subrotamer - - :raises: :exc:`~exceptions.RuntimeError` if index is invalid - - - .. method:: GetInternalEnergyPrefactor() - - :returns: Prefactor used in internal energy calculation - - .. method:: GetInternalEnergy() - - :returns: Internal Energy if calculated, 0.0 otherwise - - .. method:: GetFrameEnergy() - - Returns frame energy. This energy can either be manually set or calculated - using a :class:`Frame` and the :class:`FRMRotamerGroup` this rotamer - belongs to. - - :returns: Frame energy if calculated, 0.0 otherwise - - .. method:: GetFrameEnergy(index) - - Returns frame energy of specified **index**. - - :param index: Index of subrotamer you want the frame energy from - - :type index: :class:`int` - - :returns: Frame energy if calculated, 0.0 otherwise - - :raises: :exc:`~exceptions.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:: SetInternalEnergyPrefactor(prefactor) - - :param energy: Internal energy prefactor to be set - - :type energy: :class:`float` - - - .. method:: SetInternalEnergy(energy) - - :param energy: Internal energy to be set - - :type energy: :class:`float` - - - .. method:: SetFrameEnergy(energy) - - :param energy: Frame energy for full rotamer to be set - - :type energy: :class:`float` - - - .. method:: SetFrameEnergy(energy, index) - - :param energy: Frame energy for single subrotamer to be set - :param index: Index of subrotamer - - :type energy: :class:`float` - :type index: :class: - - .. method:: AddFrameEnergy(energy) - - :param energy: Frame energy for full rotamer to be added - - :type energy: :class:`float` - - - .. method:: AddFrameEnergy(energy, index) - - :param energy: Frame energy for single subrotamer to be added - :param index: Index of subrotamer - - :type energy: :class:`float` - :type index: :class: - - .. method:: AddSubrotamerDefinition(indices) - - :param indices: List of indices defining a subrotamer - - :type indices: :class:`list` - - .. method:: SetActiveSubrotamer(idx) - - The provided **idx** relates to the subrotamer definitions added at the - rotamer buildup. This idx controls which subrotamer is used when - :func:`ApplyOnResidue`, :func:`ToFrameResidue` or :func:`ToRRMRotamer` - gets called. By default, the value is 0 => first added subrotamer - definition gets used. - - :param idx: Index of subrotamer definition applied on residues - - :type idx: :class:`int` - - .. method:: GetActiveSubrotamer() - - Get the index of the active subrotamer - - .. 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, residue_index) - - The RRMRotamerGroup groups several :class:`RRMRotamer` objects for the same - residue position. - - :param rotamers: A list of :class:`RRMRotamer` objects - :param residue_index: Location of residue this :class:`FRMRotamerGroup` - represents. This index is important when calculating - frame energies to neglect the interactions to frame - particles of the same residue. - - :type rotamers: :class:`list` - :type residue_index: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if provided *rotamers* is empty - - - .. method:: __len__() - - :returns: Number of rotamers in group - - - .. method:: __getitem__(index) - - :returns: :class:`RRMRotamer` at given *index* - - :raises: :exc:`~exceptions.RuntimeError` if *index* is invalid - - - .. method:: ApplyOnResidue(index, res, consider_hydrogens=False,\ - new_res_name="") - ApplyOnResidue(index, all_atom, res_idx) - - 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 ("") - :param all_atom: Container to which to apply rotamer - :param res_idx: Residue index into *all_atom* - - :type index: :class:`int` - :type res: :class:`ost.mol.ResidueHandle` - :type consider_hydrogens: :class:`bool` - :type new_res_name: :class:`str` - :type all_atom: :class:`~promod3.loop.AllAtomPositions` - :type res_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if not all required backbone atoms - are present in *res* or when *index* or *res_idx* are invalid - - - .. method:: Merge(other) - - Adds all rotamers in *other* to current :class:`RRMRotamerGroup` - - :param other: RotamerGroup to be merged in - - :type other: :class:`RRMRotamerGroup` - - .. method:: SetFrameEnergy(frame) - - Calculates sets the energy of all rotamers in the group towards the - given **frame**. - - :param frame: Frame containing rigid particles - :type frame: :class:`Frame` - - .. method:: AddFrameEnergy(frame) - - Calculates adds the energy of all rotamers in the group towards the - given **frame**. - - :param frame: Frame containing rigid particles - :type frame: :class:`Frame` - - .. method:: ApplySelfEnergyThresh(thresh=30) - - Searches rotamer with lowest self energy *l_e* and deletes all - rotamers with *self_energy* > *l_e* + *thresh* - - -.. class:: FRMRotamerGroup(rotamers, residue_index) - - The FRMRotamerGroup groups several :class:`FRMRotamer` objects for the same - residue position. - - :param rotamers: A list of :class:`FRMRotamer` objects - :param residue_index: Location of residue this :class:`FRMRotamerGroup` - represents. This index is important when calculating - frame energies to neglect the interactions to frame - particles of the same residue. - - :type rotamers: :class:`list` - :type residue_index: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if provided *rotamers* is empty - - - .. method:: __len__() - - :returns: Number of rotamers in group - - - .. method:: __getitem__(index) - - :returns: :class:`FRMRotamer` at given *index* - - :raises: :exc:`~exceptions.RuntimeError` if *index* is invalid - - - .. method:: ApplyOnResidue(index, res, consider_hydrogens=False,\ - new_res_name="") - ApplyOnResidue(index, all_atom, res_idx) - - 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 ("") - :param all_atom: Container to which to apply rotamer - :param res_idx: Residue index into *all_atom* - - :type index: :class:`int` - :type res: :class:`ost.mol.ResidueHandle` - :type consider_hydrogens: :class:`bool` - :type new_res_name: :class:`str` - :type all_atom: :class:`~promod3.loop.AllAtomPositions` - :type res_idx: :class:`int` - - :raises: :exc:`~exceptions.RuntimeError` if not all required backbone atoms - are present in *res* or when *index* or *res_idx* are 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:: SetFrameEnergy(frame) - - Calculates sets the energy of all rotamers in the group towards the - given **frame**. - - :param frame: Frame containing rigid particles - :type frame: :class:`Frame` - - .. method:: AddFrameEnergy(frame) - - Calculates adds the energy of all rotamers in the group towards the - given **frame**. - - :param frame: Frame containing rigid particles - :type frame: :class:`Frame` - - .. method:: ApplySelfEnergyThresh(thresh=30) - - Searches rotamer with lowest self energy *l_e* and deletes all - rotamers with *self_energy* > *l_e* + *thresh* - +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Representing Sidechains - Rotamers & Co. +================================================================================ + +.. currentmodule:: promod3.sidechain + +A rotamer represents an amino acid sidechain identified by a :class:`RotamerID` +and is a set of :class:`Particle` objects. +Two types of rotamers exist. The :class:`RRMRotamer` and :class:`FRMRotamer`. +To gather all possible rotamers for one location, +|project| offers the :class:`RRMRotamerGroup` and :class:`FRMRotamerGroup`. +All parts of the structure that are kept rigid can be represented by +a :class:`Frame` object. + + +RotamerID +-------------------------------------------------------------------------------- + +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. + +.. class:: RotamerID + + Enumerates the amino acids. Possible values: + + .. hlist:: + :columns: 2 + + * 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 + + The RotamerID enum can be accessed either directly as ``promod3.sidechain.ARG`` + or as ``promod3.sidechain.RotamerID.ARG``. + + +How can I get an ID? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The RotamerID enum can directly be accessed from Python. Two convenient +functions exist to get RotamerIDs from the :class:`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. + + +The Smallest Building Block - The Particle +-------------------------------------------------------------------------------- + +Particles give raise to more complex objects such as rotamers and frame +residues. They contain all data required to calculate pairwise energies. +For every energy function available in |project|, there's a particle creation +function. + +.. class:: PScoringFunction + + The available scoring functions between :class:`Particle` objects + + * SCWRL4 - :ref:`scwrl4-scoring-function` + * SCWRL3 - :ref:`scwrl3-scoring-function` + * VINA - :ref:`vina-scoring-function` + +.. class:: Particle + + The particle class. There's no constructor. You can either use the + :class:`RotamerConstructor` to create full :class:`RotamerGroup` objects + with all underlying particles or the energy function specific creation + functions. + + .. method:: PairwiseScore(other_particle) + + Calculates score between the two particles + + :param other_particle: The interacting particle + :type other_particle: :class:`Particle` + + :returns: The score + :rtype: :class:`float` + + :raises: :exc:`~exceptions.RuntimeError` if the scoring function + parametrization of the two particles is inconsistent + + .. method:: GetName() + + :returns: The name of the particle, which corresponds to the + atom name + :rtype: :class:`str` + + .. method:: GetCollisionDistance() + + :returns: The "collision distance" all pairs of particles with + their distance below the sum of their collision + distances are considered as interacting and thus + evaluated by the underlying scoring function. + + :rtype: :class:`float` + + .. method:: GetPos() + + :returns: The position of the particle + :rtype: :class:`ost.geom.Vec3` + + .. method:: GetScoringFunction() + + :returns: The underlying scoring function + :rtype: :class:`PScoringFunction` + + + +.. _scwrl4-scoring-function: + +The SCWRL4 scoring function +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The SCWRL4 scoring function combines a Lennard-Jones style term with +a hydrogen bond term. Details can be found in the relevant publication +[krivov2009]_. + +.. class:: SCWRL4ParticleType + + The SCWRL4 energy function differentiates between following particle types + that define the behaviour of the Lennard-Jones style term: + + * HParticle - represents hydrogen + * CParticle - default representation of a carbon + * CH1Particle - represents carbon bound to 1 hydrogen + * CH2Particle - represents carbon bound to 2 hydrogen + * CH3Particle - represents carbon bound to 3 hydrogen + * NParticle - represents nitrogen + * OParticle - default representation of oxygen + * OCParticle - represents carbonyl-oxygen for ASP/GLU + * SParticle - represents sulfur + +.. method:: CreateSCWRL4Particle(name, particle_type, pos, [charge, \ + lone_pairs=None, polar_direction=None]) + + Creates and returns a :class:`Particle` that can evaluate the SCWRL4 scoring + function + + :param name: The name of the particle + :param particle_type: The type of the particle + :param pos: The position of the particle + :param charge: The charge of the particle, relevant for the hydrogen + bond term + :param lone_pairs: Direction of all possible lone pairs of the particle, + relevant for the hydrogen bond term. If set, the + particle is a potential hydrogen bond acceptor. + An example would be the Serine OG atom, where you can + represent the two lone pairs with vectors pointing + from the OG position towards the lone pair centers. + :param polar_direction: The polar direction of the particle, + relevant for the hydrogen bond term. If set, the + particle is a potential hydrogen bond donor. An + example would be the Serine HG hydrogen. The + *polar_direction* would be a vector + estimated as follows: hg_pos-og_pos. + + :type name: :class:`str` + :type particle_type: :class:`SCWRL4ParticleType` + :type pos: :class:`ost.geom.Vec3` + :type charge: :class:`float` + :type lone_pairs: :class:`ost.geom.Vec3List` + :type polar_direction: :class:`ost.geom.Vec3` + + +.. _scwrl3-scoring-function: + +The SCWRL3 scoring function +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The SCWRL3 scoring function implements a simple repulsion term that depends on +the hard-sphere radius of the involved particles. +Details can be found in the relevant publication [canutescu2003]_. + +.. method:: CreateSCWRL3Particle(name, radius, pos) + + Creates and returns a :class:`Particle` that can evaluate the SCWRL3 scoring + function + + :param name: The name of the particle + :param radius: The hard-sphere radius of the particle, relevant for the + repulsion term. + :param pos: The position of the particle + + :type name: :class:`str` + :type radius: :class:`float` + :type pos: :class:`ost.geom.Vec3` + + +.. _vina-scoring-function: + +The VINA scoring function +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The VINA scoring function is a combination of scores that are named +gaussian1, gaussian2, repulsion, hydrophobic and hbond in the Autodock Vina +software [trott2010]_. VINA only evaluates heavy atoms. Gaussian1, gaussian2 +and repulsion are evaluated for all pairs of particles. Hydrophobic is only +evaluated between C_VINAParticle :class:`VINAParticleType` and hbond is +evaluated between hydrogen bond donor/acceptor pairs. While SCWRL3 and SCWRL4 +are intended to evaluate sidechain-sidechain interactions in proteins, +VINA is mainly targeted at interactions between sidechains and ligands. + +The VINA scoring function differentiates between the following particle types: + +.. class:: VINAParticleType + + * O_D_VINAParticle - Oxygen that can be a hydrogen bond donor + * N_D_VINAParticle - Nitrogen that can be a hydrogen bond donor + * O_A_VINAParticle - Oxygen that can be a hydrogen bond acceptor + * N_A_VINAParticle - Nitrogen that can be a hydrogen bond acceptor + * O_AD_VINAParticle - Oxygen that can be a hydrogen bond donor and acceptor + * N_AD_VINAParticle - Nitrogen that can be a hydrogen bond donor and acceptor + * O_VINAParticle - Oxygen + * N_VINAParticle - Nitrogen + * S_VINAParticle - Sulfur + * P_VINAParticle - Phosphorus + * C_P_VINAParticle - Polar carbon that is covalently bound to a charged atom + * C_VINAParticle - Hydrophobic carbon that is only bound to other carbons or hydrogens + * F_VINAParticle - Fluorine + * Cl_VINAParticle - Chlorine + * Br_VINAParticle - Bromine + * I_VINAParticle - Iodine + * M_VINAParticle - Metals + * INVALID_VINAParticle - Invalid particle... + + +.. method:: CreateVINAParticle(name, particle_type, pos) + + Creates and returns a :class:`Particle` that can evaluate the VINA scoring + function + + :param name: The name of the particle + :param radius: The type of the particle + :param pos: The position of the particle + + :type name: :class:`str` + :type radius: :class:`VINAParticleType` + :type pos: :class:`ost.geom.Vec3` + + +Rotamers +-------------------------------------------------------------------------------- + + +.. class:: RRMRotamer(particles, probability, internal_e_prefactor) + + The RRMRotamer represents a rotamer of the so called rigid rotamer model. + + :param particles: List of :class:`Particle` objects + :param probability: Probability of rotamers. In case of the SCWRL4 + energy calculation, this directly controls the + internal energy of that rotamer. + :param internal_e_prefactor: Factor applied to the internal energy calculated + as -log(**probability**/max_probability), + where max_probability is the maximum + rotamer probability of any rotamer in a + particular :class:`RRMRotamerGroup`. + + :type particles: :class:`list` + :type probability: :class:`float` + :type internal_e_prefactor: :class:`float` + + + .. 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: :exc:`~exceptions.RuntimeError` if index is invalid + + + .. method:: __len__() + + :returns: Number of particles the rotamer contains + + .. method:: ApplyOnResidue(res, consider_hydrogens=False, new_res_name="") + + Iterates over every particle and searches for the according atom in + **res**. If it's present, the position gets reset to the particle position. + If not, a new atom gets added to **res**. No atoms are removed from **res** + in this process. + + :param res: Residue to be reconstructed + :param consider_hydrogens: Flag, whether polar hydrogens should be added to + **res** + :param new_res_name: New name of **res**. 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: :exc:`~exceptions.RuntimeError` if not all required backbone atoms + are present in *res* + + .. method:: ApplyOnResidue(all_atom, res_idx) + + Set all sidechain atom positions for given residue to the positions of the + particles in the rotamer. + + :param all_atom: Container to which to apply rotamer + :param res_idx: Residue index into *all_atom* + + :type all_atom: :class:`~promod3.loop.AllAtomPositions` + :type res_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *res_idx* is invalid + + .. method:: ToFrameResidue(res_idx) + + Generates and returns a :class:`FrameResidue` based on the internal + particles. + + :param res_idx: Idx passed over to :class:`FrameResidue` constructor + :type res_idx: :class:`int` + + :returns: The constructed :class:`FrameResidue` + + .. method:: GetInternalEnergyPrefactor() + + :returns: Prefactor used in internal energy calculation + + + .. method:: GetInternalEnergy() + + :returns: Internal Energy if calculated, 0.0 otherwise + + + .. method:: GetFrameEnergy() + + Returns frame energy. This energy can either be manually set or calculated + using a :class:`Frame` and the :class:`RRMRotamerGroup` this rotamer + belongs to. + + :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:: SetInternalEnergyPrefactor(prefactor) + + :param energy: Internal energy prefactor to be set + + :type energy: :class:`float` + + + .. method:: SetInternalEnergy(energy) + + :param energy: Internal energy to be set + + :type energy: :class:`float` + + + .. method:: SetFrameEnergy(energy) + + :param energy: Frame energy to be set + + :type energy: :class:`float` + + + .. method:: AddFrameEnergy(energy) + + :param energy: Frame energy to be added + + :type energy: :class:`float` + + + .. method:: SetProbability(probability) + + :param energy: Internal probability to be set + + :type energy: :class:`float` + + + +.. class:: FRMRotamer(particles, T, probability, internal_e_prefactor) + + The FRMRotamer represents a rotamer of the so called flexible rotamer model, + where one rotamer gets represented by several subrotamers. + The idea is that all particles of all subrotamers are given at + initialization. Subrotamers are then defined by providing lists of indices. + One particle can be part of several subrotamers. + + :param particles: List of :class:`Particle` objects + :param probability: Probability of rotamers. In case of the SCWRL4 + energy calculation, this directly controls the + internal energy of that rotamer. + :param T: Temperature factor, that is used to generate a final + energy given the subrotamers according to the formalism + described in the SCWRL4 paper. + :param internal_e_prefactor: Factor applied to the internal energy calculated + as -log(**probability**/max_probability), + where max_probability is the maximum + rotamer probability of any rotamer in a + particular :class:`FRMRotamerGroup`. + + :type particles: :class:`list` + :type probability: :class:`float` + :type T: :class:`float` + :type internal_e_prefactor: :class:`float` + + + .. 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: :exc:`~exceptions.RuntimeError` if index is invalid + + + .. method:: __len__() + + :returns: Number of particles the rotamer contains + + + .. method:: GetNumSubrotamers() + + :returns: Number of subrotamers + + .. method:: ApplyOnResidue(res, consider_hydrogens=False, new_res_name="") + + Iterates over every particle of the active subrotamer and searches for the + according atom in **res**. If it's present, the position gets reset to the + particle position. If not, a new atom gets added to **res**. + No atoms are removed from **res** in this process. + + :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: :exc:`~exceptions.RuntimeError` if not all required backbone atoms + are present in *res* + + .. method:: ApplyOnResidue(all_atom, res_idx) + + Set all sidechain atom positions for given residue to the positions of the + particles in the active surotamer. + + :param all_atom: Container to which to apply rotamer + :param res_idx: Residue index into *all_atom* + + :type all_atom: :class:`~promod3.loop.AllAtomPositions` + :type res_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if *res_idx* is invalid + + .. method:: ToFrameResidue(res_idx) + + Generates and returns a :class:`FrameResidue` based on the internal + particles of the active subrotamer. + + :param res_idx: Idx passed over to :class:`FrameResidue` constructor + :type res_idx: :class:`int` + + :returns: The constructed :class:`FrameResidue` + + .. method:: ToRRMRotamer() + + Generates and returns a :class:`RRMRotamer` based on the internal + particles of the active subrotamer. Following parameters of the + returned rotamer get set: probability (probability of the whole FRMRotamer), + internal_e_prefactor (prefactor of the whole FRMRotamer), + frame_energy (The frame energy of that particular subrotamer if already + calculated), internal_energy (the internal energy of the whole FRMRotamer) + + .. method:: GetSubrotamerDefinition(index) + + :param index: Index of subrotamer + + :type index: :class:`int` + + :returns: :class:`list` of particle indices belonging to this + particular subrotamer + + :raises: :exc:`~exceptions.RuntimeError` if index is invalid + + + .. method:: GetInternalEnergyPrefactor() + + :returns: Prefactor used in internal energy calculation + + .. method:: GetInternalEnergy() + + :returns: Internal Energy if calculated, 0.0 otherwise + + .. method:: GetFrameEnergy() + + Returns frame energy. This energy can either be manually set or calculated + using a :class:`Frame` and the :class:`FRMRotamerGroup` this rotamer + belongs to. + + :returns: Frame energy if calculated, 0.0 otherwise + + .. method:: GetFrameEnergy(index) + + Returns frame energy of specified **index**. + + :param index: Index of subrotamer you want the frame energy from + + :type index: :class:`int` + + :returns: Frame energy if calculated, 0.0 otherwise + + :raises: :exc:`~exceptions.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:: SetInternalEnergyPrefactor(prefactor) + + :param energy: Internal energy prefactor to be set + + :type energy: :class:`float` + + + .. method:: SetInternalEnergy(energy) + + :param energy: Internal energy to be set + + :type energy: :class:`float` + + + .. method:: SetFrameEnergy(energy) + + :param energy: Frame energy for full rotamer to be set + + :type energy: :class:`float` + + + .. method:: SetFrameEnergy(energy, index) + + :param energy: Frame energy for single subrotamer to be set + :param index: Index of subrotamer + + :type energy: :class:`float` + :type index: :class: + + .. method:: AddFrameEnergy(energy) + + :param energy: Frame energy for full rotamer to be added + + :type energy: :class:`float` + + + .. method:: AddFrameEnergy(energy, index) + + :param energy: Frame energy for single subrotamer to be added + :param index: Index of subrotamer + + :type energy: :class:`float` + :type index: :class: + + .. method:: AddSubrotamerDefinition(indices) + + :param indices: List of indices defining a subrotamer + + :type indices: :class:`list` + + .. method:: SetActiveSubrotamer(idx) + + The provided **idx** relates to the subrotamer definitions added at the + rotamer buildup. This idx controls which subrotamer is used when + :func:`ApplyOnResidue`, :func:`ToFrameResidue` or :func:`ToRRMRotamer` + gets called. By default, the value is 0 => first added subrotamer + definition gets used. + + :param idx: Index of subrotamer definition applied on residues + + :type idx: :class:`int` + + .. method:: GetActiveSubrotamer() + + Get the index of the active subrotamer + + .. 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, residue_index) + + The RRMRotamerGroup groups several :class:`RRMRotamer` objects for the same + residue position. + + :param rotamers: A list of :class:`RRMRotamer` objects + :param residue_index: Location of residue this :class:`FRMRotamerGroup` + represents. This index is important when calculating + frame energies to neglect the interactions to frame + particles of the same residue. + + :type rotamers: :class:`list` + :type residue_index: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if provided *rotamers* is empty + + + .. method:: __len__() + + :returns: Number of rotamers in group + + + .. method:: __getitem__(index) + + :returns: :class:`RRMRotamer` at given *index* + + :raises: :exc:`~exceptions.RuntimeError` if *index* is invalid + + + .. method:: ApplyOnResidue(index, res, consider_hydrogens=False,\ + new_res_name="") + ApplyOnResidue(index, all_atom, res_idx) + + 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 ("") + :param all_atom: Container to which to apply rotamer + :param res_idx: Residue index into *all_atom* + + :type index: :class:`int` + :type res: :class:`ost.mol.ResidueHandle` + :type consider_hydrogens: :class:`bool` + :type new_res_name: :class:`str` + :type all_atom: :class:`~promod3.loop.AllAtomPositions` + :type res_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if not all required backbone atoms + are present in *res* or when *index* or *res_idx* are invalid + + + .. method:: Merge(other) + + Adds all rotamers in *other* to current :class:`RRMRotamerGroup` + + :param other: RotamerGroup to be merged in + + :type other: :class:`RRMRotamerGroup` + + .. method:: SetFrameEnergy(frame) + + Calculates sets the energy of all rotamers in the group towards the + given **frame**. + + :param frame: Frame containing rigid particles + :type frame: :class:`Frame` + + .. method:: AddFrameEnergy(frame) + + Calculates adds the energy of all rotamers in the group towards the + given **frame**. + + :param frame: Frame containing rigid particles + :type frame: :class:`Frame` + + .. method:: ApplySelfEnergyThresh(thresh=30) + + Searches rotamer with lowest self energy *l_e* and deletes all + rotamers with *self_energy* > *l_e* + *thresh* + + +.. class:: FRMRotamerGroup(rotamers, residue_index) + + The FRMRotamerGroup groups several :class:`FRMRotamer` objects for the same + residue position. + + :param rotamers: A list of :class:`FRMRotamer` objects + :param residue_index: Location of residue this :class:`FRMRotamerGroup` + represents. This index is important when calculating + frame energies to neglect the interactions to frame + particles of the same residue. + + :type rotamers: :class:`list` + :type residue_index: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if provided *rotamers* is empty + + + .. method:: __len__() + + :returns: Number of rotamers in group + + + .. method:: __getitem__(index) + + :returns: :class:`FRMRotamer` at given *index* + + :raises: :exc:`~exceptions.RuntimeError` if *index* is invalid + + + .. method:: ApplyOnResidue(index, res, consider_hydrogens=False,\ + new_res_name="") + ApplyOnResidue(index, all_atom, res_idx) + + 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 ("") + :param all_atom: Container to which to apply rotamer + :param res_idx: Residue index into *all_atom* + + :type index: :class:`int` + :type res: :class:`ost.mol.ResidueHandle` + :type consider_hydrogens: :class:`bool` + :type new_res_name: :class:`str` + :type all_atom: :class:`~promod3.loop.AllAtomPositions` + :type res_idx: :class:`int` + + :raises: :exc:`~exceptions.RuntimeError` if not all required backbone atoms + are present in *res* or when *index* or *res_idx* are 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:: SetFrameEnergy(frame) + + Calculates sets the energy of all rotamers in the group towards the + given **frame**. + + :param frame: Frame containing rigid particles + :type frame: :class:`Frame` + + .. method:: AddFrameEnergy(frame) + + Calculates adds the energy of all rotamers in the group towards the + given **frame**. + + :param frame: Frame containing rigid particles + :type frame: :class:`Frame` + + .. method:: ApplySelfEnergyThresh(thresh=30) + + Searches rotamer with lowest self energy *l_e* and deletes all + rotamers with *self_energy* > *l_e* + *thresh* + diff --git a/doc/html/_sources/sidechain/rotamer_constructor.rst.txt b/doc/html/_sources/sidechain/rotamer_constructor.txt similarity index 98% rename from doc/html/_sources/sidechain/rotamer_constructor.rst.txt rename to doc/html/_sources/sidechain/rotamer_constructor.txt index 734e9c78f86bb6ee760eb896c187780319336f41..0691cf8b13c9db1750cf77bfad92b661353bef36 100644 --- a/doc/html/_sources/sidechain/rotamer_constructor.rst.txt +++ b/doc/html/_sources/sidechain/rotamer_constructor.txt @@ -1,489 +1,489 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Rotamer Constructor -================================================================================ - -.. currentmodule:: promod3.sidechain - -Instead of creating rotamers or frame residues by yourself, you can use the -convenient functionality provided by |project|. - - -The RotamerConstructor Baseclass --------------------------------------------------------------------------------- - - -.. class:: RotamerConstructor - - Abstract base class that cannot be initialized from Python. It builds - an interface implemented by scoring function specific constructors - (e.g. :class:`SCWRL4RotamerConstructor`). - - .. method:: ConstructRRMRotamerGroup(res, id, residue_index, rot_lib,\ - [phi = -1.0472, psi = -0.7854, \ - n_ter = False, c_ter = False, \ - probability_cutoff = 0.98]) - .. method:: ConstructRRMRotamerGroup(all_atom_pos, aa_res_idx, id,\ - residue_index, rot_lib,\ - [phi = -1.0472, psi = -0.7854, \ - n_ter = False, c_ter = False, \ - probability_cutoff = 0.98]) - .. method:: ConstructRRMRotamerGroup(res, id, residue_index, rot_lib_entries,\ - [phi = -1.0472, psi = -0.7854, \ - n_ter = False, c_ter = False, \ - probability_cutoff = 0.98]) - .. method:: ConstructRRMRotamerGroup(all_atom_pos, aa_res_idx, id,\ - residue_index, rot_lib_entries,\ - [phi = -1.0472, psi = -0.7854, \ - n_ter = False, c_ter = False, \ - probability_cutoff = 0.98]) - - All functions are also avaible for their flexible rotamer model counterpart. - =>ConstructFRMRotamerGroup(...) with the same parameters. - - :param res: To extract the required backbone atoms - :param all_atom_pos: To extract the required backbone atoms - :param aa_res_idx: Index of residue in **all_atom_pos** from which to - extract the required backbone atoms - :param id: Identifies the sidechain. - :param residue_index: Important for the energy calculations towards the - :class:`Frame` you don't want to calculate a pairwise - energy of the sidechain particles towards particles - representing the own backbone... - :param rot_lib: To search for rotamers - :param rot_lib_entries: :class:`RotamerLibEntry` objects to circumvent the - direct use of a rotamer library - :param phi: Phi dihedral angle - :param psi: Psi dihedral angle - :param n_ter: Whether the residue is n-terminal - :param c_ter: Whether the residue is c-terminal - :param probability_cutoff: For some rotamers, there might be many low - probability entries in the library. - The function adds single rotamers to the group until - the cumulative probability of the added rotamers is - larger or equal **probability_cutoff**. - - :returns: The rotamer group containing all constructed rotamers - with internal energies assigned. - - :type res: :class:`ost.mol.ResidueHandle` - :type all_atom_pos: :class:`promod3.loop.AllAtomPositions` - :type aa_res_idx: :class:`int` - :type id: :class:`RotamerID` - :type residue_index: :class:`int` - :type rot_lib: :class:`RotamerLib` / :class:`BBDepRotamerLib` - :type rot_lib_entries: :class:`list` - :type phi: :class:`float` - :type psi: :class:`float` - :type n_ter: :class:`bool` - :type c_ter: :class:`bool` - :type probability_cutoff: :class:`float` - :rtype: :class:`RRMRotamerGroup` - - :raises: :exc:`~exceptions.RuntimeError` when not all required backbone - atoms are present in **residue** or not all required atom - positions are set in **all_atom_pos** - - - .. method:: ConstructBackboneFrameResidue(res, id, residue_index, \ - [phi = -1.0472, psi = -0.7854, \ - n_ter = False, c_ter = False]) - - .. method:: ConstructBackboneFrameResidue(all_atom_pos, aa_res_idx, id,\ - residue_index, \ - [phi = -1.0472, psi = -0.7854\ - n_ter = False, c_ter = False]) - - Constructs frame residues only containing backbone atoms (the ones that - don't show up in a rotamer). - - :param res: Residue from which to extract the backbone positions - :param all_atom_pos: To extract the backbone positions - :param aa_res_idx: Index of residue in **all_atom_pos** from which to - extract the backbone positions - :param id: Identifies the sidechain - :param residue_index: Important for the energy calculations towards the - :class:`Frame` you don't want to calculate a pairwise - energy of the sidechain particles towards particles - representing the own backbone... - :param phi: The dihedral angle of the current residue - :param psi: The dihedral angle of the current residue - :param n_ter: Whether the residue is n-terminal - :param c_ter: Whether the residue is c-terminal - :type res: :class:`ost.mol.ResidueHandle` - :type all_atom_pos: :class:`promod3.loop.AllAtomPositions` - :type aa_res_idx: :class:`int` - :type id: :class:`RotamerID` - :type residue_index: :class:`int` - :type phi: :class:`float` - :type psi: :class:`float` - :type n_ter: :class:`bool` - :type c_ter: :class:`bool` - - :rtype: :class:`FrameResidue` - - - :raises: :exc:`~exceptions.RuntimeError` when not all required backbone - atoms are present in **residue** or not all required atom - positions are set in **all_atom_pos**. - - - .. method:: ConstructSidechainFrameResidue(res, id, residue_index, \ - [phi = -1.0472, psi = -0.7854, \ - n_ter = False, c_ter = False]) - - .. method:: ConstructSidechainFrameResidue(all_atom_pos, aa_res_idx, id,\ - residue_index, \ - [phi = -1.0472, psi = -0.7854\ - n_ter = False, c_ter = False]) - - Constructs frame residues only containing sidechain atoms (the ones that - you observe in a rotamer). - - :param res: Residue from which to extract the backbone positions - :param all_atom_pos: To extract the backbone positions - :param aa_res_idx: Index of residue in **all_atom_pos** from which to - extract the backbone positions - :param id: Identifies the sidechain - :param residue_index: Important for the energy calculations towards the - :class:`Frame` you don't want to calculate a pairwise - energy of the sidechain particles towards particles - representing the own backbone... - :param phi: The dihedral angle of the current residue - :param psi: The dihedral angle of the current residue - :param n_ter: Whether the residue is n-terminal - :param c_ter: Whether the residue is c-terminal - :type res: :class:`ost.mol.ResidueHandle` - :type all_atom_pos: :class:`promod3.loop.AllAtomPositions` - :type aa_res_idx: :class:`int` - :type id: :class:`RotamerID` - :type residue_index: :class:`int` - :type phi: :class:`float` - :type psi: :class:`float` - :type n_ter: :class:`bool` - :type c_ter: :class:`bool` - - :rtype: :class:`FrameResidue` - - - :raises: :exc:`~exceptions.RuntimeError` when not all required sidechain - atoms are present in **residue** or not all required sidechain - atom positions are set in **all_atom_pos**. - - .. method:: AssignInternalEnergies(rot_group, id, residue_index, \ - [phi = -1.0472, psi = -0.7854, \ - n_ter = False, c_ter = False]) - - Assigns an internal energy to every rotamer in *rot_group*, i.e. an energy - value before looking at any structural component of the energy function. - The default implementation simply assigns 0.0 to every rotamer, it's up - to the energy function specific constructors to override that behaviour. - - :param rot_group: containing all rotamers for which internal energies have - to be assigned - :param id: Identifies the sidechain - :param residue_index: The index of the residue which is represented by - *rot_group* - :param phi: The dihedral angle of the current residue - :param psi: The dihedral angle of the current residue - :param n_ter: Whether the residue is n-terminal - :param c_ter: Whether the residue is c-terminal - - :type rot_group: :class:`RRMRotamerGroup` / :class:`FRMRotamerGroup` - :type id: :class:`RotamerID` - :type residue_index: :class:`int` - :type phi: :class:`float` - :type psi: :class:`float` - :type n_ter: :class:`bool` - :type c_ter: :class:`bool` - - - -Scoring Function Specific RotamerConstructors --------------------------------------------------------------------------------- - - -.. class:: SCWRL4RotamerConstructor(cb_in_sidechain) - - This object implements the full interface defined in - :class:`RotamerConstructor` and constructs rotamers and frame residues that - are parametrized according to the SCWRL4 method. They contain all heavy atoms, - but also the polar hydrogens. - - :param cb_in_sidechain: If set to true, all constructed rotamers will contain - the cb atom. This flag also affects the construction - of frame residues and controls whether the cb atom - shows up in the backbone frame residues or sidechain - frame residues. - This is useful when you want to represent ALA or - GLY with actual rotamers, but be aware of increased - runtime. This flag can be set to False for most - modeling applications and you just don't generate - any rotamers for ALA and GLY. - - :type cb_in_sidechain: :class:`bool` - - .. method:: ConstructFrameResidue(residue, residue_index) - - 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. All heavy - atoms of the residue will be represented as carbons and hydrogens are - skipped. - - :param residue: Residue from which all atoms will be taken to - construct a :class:`FrameResidue`. - :param residue_index: Index this :class:`FrameResidue` belongs to. - - :type residue: :class:`ost.mol.ResidueHandle` - :type residue_index: :class:`int` - - :returns: :class:`FrameResidue` - - .. method:: ConstructFrameResidueHeuristic(residue, residue_index, comp_lib) - - Constructs a :class:`FrameResidue` from a :class:`ost.mol.ResidueHandle` using - a heuristic treatment of the atoms based on the passed compounds library. - This is meant to be used as an alternative to :func:`ConstructFrameResidue`, - which will be called by this function if the residue is not known by the given - compounds library. - Only non-hydrogen atoms are considered and by default added as uncharged - carbons. Special treatment is used for atoms known by the compounds library - in the following cases: - - - carbons, nitrogens, oxygens and sulfur particles use an appropriate type - as in the :class:`SidechainParticle` enumeration - - carbonyls are added as charged oxygen particles as hbond acceptors - - :param residue: Residue from which all atoms will be taken to - construct a :class:`FrameResidue`. - :param residue_index: Index this :class:`FrameResidue` belongs to. - :param comp_lib: OST compound library to use - - :type residue: :class:`ost.mol.ResidueHandle` - :type residue_index: :class:`int` - :type comp_lib: :class:`ost.conop.CompoundLib` - - :returns: :class:`FrameResidue` - - .. method:: AssignInternalEnergies(rot_group, id, residue_index, \ - [phi = -1.0472, psi = -0.7854, \ - n_ter = False, c_ter = False]) - - Overrides the method defined in :class:`RotamerConstructor`. - Takes the rotamer group and assigns every single rotamer its internal - energy based on the probabilistic approach used by SCWRL4. - => -internal_e_prefac*log(p/max_p), where internal_e_prefac and p are - rotamer specific and max_p is the maximum probablity of any of the rotamers - in **rot_group**. If you construct a rotamer group by the - ConstructRRMRotamerGroup/ConstructFRMRotamerGroup functions, this function - is already called at construction and the energies are properly assigned. - - :param rot_group: containing all rotamers for which internal energies have - to be assigned - :param id: Identifies the sidechain - :param residue_index: The index of the residue which is represented by - *rot_group* - :param phi: The dihedral angle of the current residue - :param psi: The dihedral angle of the current residue - :param n_ter: Whether the residue is n-terminal - :param c_ter: Whether the residue is c-terminal - - :type rot_group: :class:`RRMRotamerGroup` / :class:`FRMRotamerGroup` - :type id: :class:`RotamerID` - :type residue_index: :class:`int` - :type phi: :class:`float` - :type psi: :class:`float` - :type n_ter: :class:`bool` - :type c_ter: :class:`bool` - - - - -.. class:: SCWRL3RotamerConstructor(cb_in_sidechain) - - This object implements the full interface defined in - :class:`RotamerConstructor` and constructs rotamers and frame residues that - are parametrized according to the SCWRL3 method. They contain only heavy atoms. - - :param cb_in_sidechain: If set to true, all constructed rotamers will contain - the cb atom. This flag also affects the construction - of frame residues and controls whether the cb atom - shows up in the backbone frame residues or sidechain - frame residues. - This is useful when you want to represent ALA or - GLY with actual rotamers, but be aware of increased - runtime. This flag can be set to False for most - modeling applications and you just don't generate - any rotamers for ALA and GLY. - - :type cb_in_sidechain: :class:`bool` - - - .. method:: AssignInternalEnergies(rot_group, id, residue_index, \ - [phi = -1.0472, psi = -0.7854, \ - n_ter = False, c_ter = False]) - - Overrides the method defined in :class:`RotamerConstructor`. - Takes the rotamer group and assigns every single rotamer its internal - energy based on the probabilistic approach used by SCWRL3. - => -internal_e_prefac*log(p/max_p), where internal_e_prefac and p are - rotamer specific and max_p is the maximum probablity of any of the rotamers - in **rot_group**. If you construct a rotamer group by the - ConstructRRMRotamerGroup/ConstructFRMRotamerGroup functions, this function - is already called at construction and the energies are properly assigned. - - :param rot_group: containing all rotamers for which internal energies have - to be assigned - :param id: Identifies the sidechain - :param residue_index: The index of the residue which is represented by - *rot_group* - :param phi: The dihedral angle of the current residue - :param psi: The dihedral angle of the current residue - :param n_ter: Whether the residue is n-terminal - :param c_ter: Whether the residue is c-terminal - - :type rot_group: :class:`RRMRotamerGroup` / :class:`FRMRotamerGroup` - :type id: :class:`RotamerID` - :type residue_index: :class:`int` - :type phi: :class:`float` - :type psi: :class:`float` - :type n_ter: :class:`bool` - :type c_ter: :class:`bool` - - -.. class:: VINARotamerConstructor(cb_in_sidechain) - - This object implements the full interface defined in - :class:`RotamerConstructor` and constructs rotamers and frame residues that - are parametrized according to the VINA method. They contain only heavy atoms. - - :param cb_in_sidechain: If set to true, all constructed rotamers will contain - the cb atom. This flag also affects the construction - of frame residues and controls whether the cb atom - shows up in the backbone frame residues or sidechain - frame residues. - This is useful when you want to represent ALA or - GLY with actual rotamers, but be aware of increased - runtime. This flag can be set to False for most - modeling applications and you just don't generate - any rotamers for ALA and GLY. - - :type cb_in_sidechain: :class:`bool` - - - .. method:: AssignInternalEnergies(rot_group, id, residue_index, \ - [phi = -1.0472, psi = -0.7854, \ - n_ter = False, c_ter = False]) - - Overrides the method defined in :class:`RotamerConstructor`. - Takes the rotamer group and assigns every single rotamer its internal - energy based on the probabilistic approach used by SCWRL3/SCWRL4. - => -internal_e_prefac*log(p/max_p), where internal_e_prefac and p are - rotamer specific and max_p is the maximum probablity of any of the rotamers - in **rot_group**. If you construct a rotamer group by the - ConstructRRMRotamerGroup/ConstructFRMRotamerGroup functions, this function - is already called at construction and the energies are properly assigned. - - :param rot_group: containing all rotamers for which internal energies have - to be assigned - :param id: Identifies the sidechain - :param residue_index: The index of the residue which is represented by - *rot_group* - :param phi: The dihedral angle of the current residue - :param psi: The dihedral angle of the current residue - :param n_ter: Whether the residue is n-terminal - :param c_ter: Whether the residue is c-terminal - - :type rot_group: :class:`RRMRotamerGroup` / :class:`FRMRotamerGroup` - :type id: :class:`RotamerID` - :type residue_index: :class:`int` - :type phi: :class:`float` - :type psi: :class:`float` - :type n_ter: :class:`bool` - :type c_ter: :class:`bool` - - - .. method:: ConstructFrameResidueHeuristic(res, res_idx) - - Constructs a :class:`FrameResidue` from a :class:`ost.mol.ResidueHandle` using - a heuristic treatment of the atoms. It is important that the residue has - proper bonds assigned, as they influence the atom typing procedure. - Furthermore, you need hydrogens to automatically estimate the correct - atom type for oxygens and nitrogens (hydrogen bond donor/acceptor). - Alternatively you can assign generic properties to oxygens and nitrogens - to circumvent the requirement of hydrogens. This is further described for - the case of oxygen. - - * Carbon is assigned C_VINAParticle :class:`VINAParticleType` if its only - bound to other carbons or hydrogens (and deuterium). All other carbons are - assigned C_P_VINAParticle :class:`VINAParticleType`. - * In case of oxygen, the heuristic first checks for set generic properties. - If the atom has the bool properties "is_hbond_acceptor" AND - "is_hbond_donor" set, it decides between the according oxygen types - in :class:`VINAParticleType`. If the generic properties are not set, - every oxygen is assumed to be an hbond acceptor. But only an hbond donor - if its bound to a hydrogen (or deuterium). You can set the generic - properties for an :class:`ost.mol.AtomHandle` by calling - at.SetBoolProp("is_hbond_donor", False) and - at.SetBoolProp("is_hbond_acceptor", True). An oxygen with those - generic properties is assigned O_A_VINAParticle :class:`VINAParticleType`. - * In case of nitrogen, the heuristic again first checks for set generic - properties. - If the atom has the bool properties "is_hbond_acceptor" AND - "is_hbond_donor" set, it decides between the according nitrogen types - in :class:`VINAParticleType`. If not, nitrogen is expected to be an - hbond donor if it is bound to a hydrogen (or deuterium) and - an hbond acceptor if it is bound to less than 3 other atoms (sounds - horrible but works surprisingly well). - * Atoms of elements ["MG", "MN", "ZN", "CA", "FE"] are assigned - M_VINAParticle :class:`VINAParticleType`. - * Atoms of elements ["S", "P", "F", "CL", "BR", "I"] are assigned their - corresponding :class:`VINAParticleType`. - * All other atoms are neglected and not added to the returned - :class:`FrameResidue`. - - :param res: Residue from which to create the - :class:`FrameResidue` - :param res_idx: Index that is set in :class:`FrameResidue` - :type res: :class:`ost.mol.ResidueHandle` - :type res_idx: :class:`int` - :rtype: :class:`FrameResidue` - - - .. method:: ConstructRRMRotamerHeuristic(res) - - Construct a :class:`RRMRotamer` with the atom typing heuristic - as in the :meth:`ConstructFrameResidueHeuristic` method. - - :param res: Residue from which to create the - :class:`RRMRotamer` - :type res: :class:`ost.mol.ResidueHandle` - :rtype: :class:`RRMRotamer` - - - .. method:: ConstructFRMRotamerHeuristic(res) - - Construct a :class:`FRMRotamer` with the atom typing heuristic - as in the :meth:`ConstructFrameResidueHeuristic` method. The - constructed :class:`FRMRotamer` only contains one subrotamer that - contains the atoms from *residue*. - - :param res: Residue from which to create the - :class:`FRMRotamer` - :type res: :class:`ost.mol.ResidueHandle` - :rtype: :class:`FRMRotamer` +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Rotamer Constructor +================================================================================ + +.. currentmodule:: promod3.sidechain + +Instead of creating rotamers or frame residues by yourself, you can use the +convenient functionality provided by |project|. + + +The RotamerConstructor Baseclass +-------------------------------------------------------------------------------- + + +.. class:: RotamerConstructor + + Abstract base class that cannot be initialized from Python. It builds + an interface implemented by scoring function specific constructors + (e.g. :class:`SCWRL4RotamerConstructor`). + + .. method:: ConstructRRMRotamerGroup(res, id, residue_index, rot_lib,\ + [phi = -1.0472, psi = -0.7854, \ + n_ter = False, c_ter = False, \ + probability_cutoff = 0.98]) + .. method:: ConstructRRMRotamerGroup(all_atom_pos, aa_res_idx, id,\ + residue_index, rot_lib,\ + [phi = -1.0472, psi = -0.7854, \ + n_ter = False, c_ter = False, \ + probability_cutoff = 0.98]) + .. method:: ConstructRRMRotamerGroup(res, id, residue_index, rot_lib_entries,\ + [phi = -1.0472, psi = -0.7854, \ + n_ter = False, c_ter = False, \ + probability_cutoff = 0.98]) + .. method:: ConstructRRMRotamerGroup(all_atom_pos, aa_res_idx, id,\ + residue_index, rot_lib_entries,\ + [phi = -1.0472, psi = -0.7854, \ + n_ter = False, c_ter = False, \ + probability_cutoff = 0.98]) + + All functions are also avaible for their flexible rotamer model counterpart. + =>ConstructFRMRotamerGroup(...) with the same parameters. + + :param res: To extract the required backbone atoms + :param all_atom_pos: To extract the required backbone atoms + :param aa_res_idx: Index of residue in **all_atom_pos** from which to + extract the required backbone atoms + :param id: Identifies the sidechain. + :param residue_index: Important for the energy calculations towards the + :class:`Frame` you don't want to calculate a pairwise + energy of the sidechain particles towards particles + representing the own backbone... + :param rot_lib: To search for rotamers + :param rot_lib_entries: :class:`RotamerLibEntry` objects to circumvent the + direct use of a rotamer library + :param phi: Phi dihedral angle + :param psi: Psi dihedral angle + :param n_ter: Whether the residue is n-terminal + :param c_ter: Whether the residue is c-terminal + :param probability_cutoff: For some rotamers, there might be many low + probability entries in the library. + The function adds single rotamers to the group until + the cumulative probability of the added rotamers is + larger or equal **probability_cutoff**. + + :returns: The rotamer group containing all constructed rotamers + with internal energies assigned. + + :type res: :class:`ost.mol.ResidueHandle` + :type all_atom_pos: :class:`promod3.loop.AllAtomPositions` + :type aa_res_idx: :class:`int` + :type id: :class:`RotamerID` + :type residue_index: :class:`int` + :type rot_lib: :class:`RotamerLib` / :class:`BBDepRotamerLib` + :type rot_lib_entries: :class:`list` + :type phi: :class:`float` + :type psi: :class:`float` + :type n_ter: :class:`bool` + :type c_ter: :class:`bool` + :type probability_cutoff: :class:`float` + :rtype: :class:`RRMRotamerGroup` + + :raises: :exc:`~exceptions.RuntimeError` when not all required backbone + atoms are present in **residue** or not all required atom + positions are set in **all_atom_pos** + + + .. method:: ConstructBackboneFrameResidue(res, id, residue_index, \ + [phi = -1.0472, psi = -0.7854, \ + n_ter = False, c_ter = False]) + + .. method:: ConstructBackboneFrameResidue(all_atom_pos, aa_res_idx, id,\ + residue_index, \ + [phi = -1.0472, psi = -0.7854\ + n_ter = False, c_ter = False]) + + Constructs frame residues only containing backbone atoms (the ones that + don't show up in a rotamer). + + :param res: Residue from which to extract the backbone positions + :param all_atom_pos: To extract the backbone positions + :param aa_res_idx: Index of residue in **all_atom_pos** from which to + extract the backbone positions + :param id: Identifies the sidechain + :param residue_index: Important for the energy calculations towards the + :class:`Frame` you don't want to calculate a pairwise + energy of the sidechain particles towards particles + representing the own backbone... + :param phi: The dihedral angle of the current residue + :param psi: The dihedral angle of the current residue + :param n_ter: Whether the residue is n-terminal + :param c_ter: Whether the residue is c-terminal + :type res: :class:`ost.mol.ResidueHandle` + :type all_atom_pos: :class:`promod3.loop.AllAtomPositions` + :type aa_res_idx: :class:`int` + :type id: :class:`RotamerID` + :type residue_index: :class:`int` + :type phi: :class:`float` + :type psi: :class:`float` + :type n_ter: :class:`bool` + :type c_ter: :class:`bool` + + :rtype: :class:`FrameResidue` + + + :raises: :exc:`~exceptions.RuntimeError` when not all required backbone + atoms are present in **residue** or not all required atom + positions are set in **all_atom_pos**. + + + .. method:: ConstructSidechainFrameResidue(res, id, residue_index, \ + [phi = -1.0472, psi = -0.7854, \ + n_ter = False, c_ter = False]) + + .. method:: ConstructSidechainFrameResidue(all_atom_pos, aa_res_idx, id,\ + residue_index, \ + [phi = -1.0472, psi = -0.7854\ + n_ter = False, c_ter = False]) + + Constructs frame residues only containing sidechain atoms (the ones that + you observe in a rotamer). + + :param res: Residue from which to extract the backbone positions + :param all_atom_pos: To extract the backbone positions + :param aa_res_idx: Index of residue in **all_atom_pos** from which to + extract the backbone positions + :param id: Identifies the sidechain + :param residue_index: Important for the energy calculations towards the + :class:`Frame` you don't want to calculate a pairwise + energy of the sidechain particles towards particles + representing the own backbone... + :param phi: The dihedral angle of the current residue + :param psi: The dihedral angle of the current residue + :param n_ter: Whether the residue is n-terminal + :param c_ter: Whether the residue is c-terminal + :type res: :class:`ost.mol.ResidueHandle` + :type all_atom_pos: :class:`promod3.loop.AllAtomPositions` + :type aa_res_idx: :class:`int` + :type id: :class:`RotamerID` + :type residue_index: :class:`int` + :type phi: :class:`float` + :type psi: :class:`float` + :type n_ter: :class:`bool` + :type c_ter: :class:`bool` + + :rtype: :class:`FrameResidue` + + + :raises: :exc:`~exceptions.RuntimeError` when not all required sidechain + atoms are present in **residue** or not all required sidechain + atom positions are set in **all_atom_pos**. + + .. method:: AssignInternalEnergies(rot_group, id, residue_index, \ + [phi = -1.0472, psi = -0.7854, \ + n_ter = False, c_ter = False]) + + Assigns an internal energy to every rotamer in *rot_group*, i.e. an energy + value before looking at any structural component of the energy function. + The default implementation simply assigns 0.0 to every rotamer, it's up + to the energy function specific constructors to override that behaviour. + + :param rot_group: containing all rotamers for which internal energies have + to be assigned + :param id: Identifies the sidechain + :param residue_index: The index of the residue which is represented by + *rot_group* + :param phi: The dihedral angle of the current residue + :param psi: The dihedral angle of the current residue + :param n_ter: Whether the residue is n-terminal + :param c_ter: Whether the residue is c-terminal + + :type rot_group: :class:`RRMRotamerGroup` / :class:`FRMRotamerGroup` + :type id: :class:`RotamerID` + :type residue_index: :class:`int` + :type phi: :class:`float` + :type psi: :class:`float` + :type n_ter: :class:`bool` + :type c_ter: :class:`bool` + + + +Scoring Function Specific RotamerConstructors +-------------------------------------------------------------------------------- + + +.. class:: SCWRL4RotamerConstructor(cb_in_sidechain) + + This object implements the full interface defined in + :class:`RotamerConstructor` and constructs rotamers and frame residues that + are parametrized according to the SCWRL4 method. They contain all heavy atoms, + but also the polar hydrogens. + + :param cb_in_sidechain: If set to true, all constructed rotamers will contain + the cb atom. This flag also affects the construction + of frame residues and controls whether the cb atom + shows up in the backbone frame residues or sidechain + frame residues. + This is useful when you want to represent ALA or + GLY with actual rotamers, but be aware of increased + runtime. This flag can be set to False for most + modeling applications and you just don't generate + any rotamers for ALA and GLY. + + :type cb_in_sidechain: :class:`bool` + + .. method:: ConstructFrameResidue(residue, residue_index) + + 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. All heavy + atoms of the residue will be represented as carbons and hydrogens are + skipped. + + :param residue: Residue from which all atoms will be taken to + construct a :class:`FrameResidue`. + :param residue_index: Index this :class:`FrameResidue` belongs to. + + :type residue: :class:`ost.mol.ResidueHandle` + :type residue_index: :class:`int` + + :returns: :class:`FrameResidue` + + .. method:: ConstructFrameResidueHeuristic(residue, residue_index, comp_lib) + + Constructs a :class:`FrameResidue` from a :class:`ost.mol.ResidueHandle` using + a heuristic treatment of the atoms based on the passed compounds library. + This is meant to be used as an alternative to :func:`ConstructFrameResidue`, + which will be called by this function if the residue is not known by the given + compounds library. + Only non-hydrogen atoms are considered and by default added as uncharged + carbons. Special treatment is used for atoms known by the compounds library + in the following cases: + + - carbons, nitrogens, oxygens and sulfur particles use an appropriate type + as in the :class:`SidechainParticle` enumeration + - carbonyls are added as charged oxygen particles as hbond acceptors + + :param residue: Residue from which all atoms will be taken to + construct a :class:`FrameResidue`. + :param residue_index: Index this :class:`FrameResidue` belongs to. + :param comp_lib: OST compound library to use + + :type residue: :class:`ost.mol.ResidueHandle` + :type residue_index: :class:`int` + :type comp_lib: :class:`ost.conop.CompoundLib` + + :returns: :class:`FrameResidue` + + .. method:: AssignInternalEnergies(rot_group, id, residue_index, \ + [phi = -1.0472, psi = -0.7854, \ + n_ter = False, c_ter = False]) + + Overrides the method defined in :class:`RotamerConstructor`. + Takes the rotamer group and assigns every single rotamer its internal + energy based on the probabilistic approach used by SCWRL4. + => -internal_e_prefac*log(p/max_p), where internal_e_prefac and p are + rotamer specific and max_p is the maximum probablity of any of the rotamers + in **rot_group**. If you construct a rotamer group by the + ConstructRRMRotamerGroup/ConstructFRMRotamerGroup functions, this function + is already called at construction and the energies are properly assigned. + + :param rot_group: containing all rotamers for which internal energies have + to be assigned + :param id: Identifies the sidechain + :param residue_index: The index of the residue which is represented by + *rot_group* + :param phi: The dihedral angle of the current residue + :param psi: The dihedral angle of the current residue + :param n_ter: Whether the residue is n-terminal + :param c_ter: Whether the residue is c-terminal + + :type rot_group: :class:`RRMRotamerGroup` / :class:`FRMRotamerGroup` + :type id: :class:`RotamerID` + :type residue_index: :class:`int` + :type phi: :class:`float` + :type psi: :class:`float` + :type n_ter: :class:`bool` + :type c_ter: :class:`bool` + + + + +.. class:: SCWRL3RotamerConstructor(cb_in_sidechain) + + This object implements the full interface defined in + :class:`RotamerConstructor` and constructs rotamers and frame residues that + are parametrized according to the SCWRL3 method. They contain only heavy atoms. + + :param cb_in_sidechain: If set to true, all constructed rotamers will contain + the cb atom. This flag also affects the construction + of frame residues and controls whether the cb atom + shows up in the backbone frame residues or sidechain + frame residues. + This is useful when you want to represent ALA or + GLY with actual rotamers, but be aware of increased + runtime. This flag can be set to False for most + modeling applications and you just don't generate + any rotamers for ALA and GLY. + + :type cb_in_sidechain: :class:`bool` + + + .. method:: AssignInternalEnergies(rot_group, id, residue_index, \ + [phi = -1.0472, psi = -0.7854, \ + n_ter = False, c_ter = False]) + + Overrides the method defined in :class:`RotamerConstructor`. + Takes the rotamer group and assigns every single rotamer its internal + energy based on the probabilistic approach used by SCWRL3. + => -internal_e_prefac*log(p/max_p), where internal_e_prefac and p are + rotamer specific and max_p is the maximum probablity of any of the rotamers + in **rot_group**. If you construct a rotamer group by the + ConstructRRMRotamerGroup/ConstructFRMRotamerGroup functions, this function + is already called at construction and the energies are properly assigned. + + :param rot_group: containing all rotamers for which internal energies have + to be assigned + :param id: Identifies the sidechain + :param residue_index: The index of the residue which is represented by + *rot_group* + :param phi: The dihedral angle of the current residue + :param psi: The dihedral angle of the current residue + :param n_ter: Whether the residue is n-terminal + :param c_ter: Whether the residue is c-terminal + + :type rot_group: :class:`RRMRotamerGroup` / :class:`FRMRotamerGroup` + :type id: :class:`RotamerID` + :type residue_index: :class:`int` + :type phi: :class:`float` + :type psi: :class:`float` + :type n_ter: :class:`bool` + :type c_ter: :class:`bool` + + +.. class:: VINARotamerConstructor(cb_in_sidechain) + + This object implements the full interface defined in + :class:`RotamerConstructor` and constructs rotamers and frame residues that + are parametrized according to the VINA method. They contain only heavy atoms. + + :param cb_in_sidechain: If set to true, all constructed rotamers will contain + the cb atom. This flag also affects the construction + of frame residues and controls whether the cb atom + shows up in the backbone frame residues or sidechain + frame residues. + This is useful when you want to represent ALA or + GLY with actual rotamers, but be aware of increased + runtime. This flag can be set to False for most + modeling applications and you just don't generate + any rotamers for ALA and GLY. + + :type cb_in_sidechain: :class:`bool` + + + .. method:: AssignInternalEnergies(rot_group, id, residue_index, \ + [phi = -1.0472, psi = -0.7854, \ + n_ter = False, c_ter = False]) + + Overrides the method defined in :class:`RotamerConstructor`. + Takes the rotamer group and assigns every single rotamer its internal + energy based on the probabilistic approach used by SCWRL3/SCWRL4. + => -internal_e_prefac*log(p/max_p), where internal_e_prefac and p are + rotamer specific and max_p is the maximum probablity of any of the rotamers + in **rot_group**. If you construct a rotamer group by the + ConstructRRMRotamerGroup/ConstructFRMRotamerGroup functions, this function + is already called at construction and the energies are properly assigned. + + :param rot_group: containing all rotamers for which internal energies have + to be assigned + :param id: Identifies the sidechain + :param residue_index: The index of the residue which is represented by + *rot_group* + :param phi: The dihedral angle of the current residue + :param psi: The dihedral angle of the current residue + :param n_ter: Whether the residue is n-terminal + :param c_ter: Whether the residue is c-terminal + + :type rot_group: :class:`RRMRotamerGroup` / :class:`FRMRotamerGroup` + :type id: :class:`RotamerID` + :type residue_index: :class:`int` + :type phi: :class:`float` + :type psi: :class:`float` + :type n_ter: :class:`bool` + :type c_ter: :class:`bool` + + + .. method:: ConstructFrameResidueHeuristic(res, res_idx) + + Constructs a :class:`FrameResidue` from a :class:`ost.mol.ResidueHandle` using + a heuristic treatment of the atoms. It is important that the residue has + proper bonds assigned, as they influence the atom typing procedure. + Furthermore, you need hydrogens to automatically estimate the correct + atom type for oxygens and nitrogens (hydrogen bond donor/acceptor). + Alternatively you can assign generic properties to oxygens and nitrogens + to circumvent the requirement of hydrogens. This is further described for + the case of oxygen. + + * Carbon is assigned C_VINAParticle :class:`VINAParticleType` if its only + bound to other carbons or hydrogens (and deuterium). All other carbons are + assigned C_P_VINAParticle :class:`VINAParticleType`. + * In case of oxygen, the heuristic first checks for set generic properties. + If the atom has the bool properties "is_hbond_acceptor" AND + "is_hbond_donor" set, it decides between the according oxygen types + in :class:`VINAParticleType`. If the generic properties are not set, + every oxygen is assumed to be an hbond acceptor. But only an hbond donor + if its bound to a hydrogen (or deuterium). You can set the generic + properties for an :class:`ost.mol.AtomHandle` by calling + at.SetBoolProp("is_hbond_donor", False) and + at.SetBoolProp("is_hbond_acceptor", True). An oxygen with those + generic properties is assigned O_A_VINAParticle :class:`VINAParticleType`. + * In case of nitrogen, the heuristic again first checks for set generic + properties. + If the atom has the bool properties "is_hbond_acceptor" AND + "is_hbond_donor" set, it decides between the according nitrogen types + in :class:`VINAParticleType`. If not, nitrogen is expected to be an + hbond donor if it is bound to a hydrogen (or deuterium) and + an hbond acceptor if it is bound to less than 3 other atoms (sounds + horrible but works surprisingly well). + * Atoms of elements ["MG", "MN", "ZN", "CA", "FE"] are assigned + M_VINAParticle :class:`VINAParticleType`. + * Atoms of elements ["S", "P", "F", "CL", "BR", "I"] are assigned their + corresponding :class:`VINAParticleType`. + * All other atoms are neglected and not added to the returned + :class:`FrameResidue`. + + :param res: Residue from which to create the + :class:`FrameResidue` + :param res_idx: Index that is set in :class:`FrameResidue` + :type res: :class:`ost.mol.ResidueHandle` + :type res_idx: :class:`int` + :rtype: :class:`FrameResidue` + + + .. method:: ConstructRRMRotamerHeuristic(res) + + Construct a :class:`RRMRotamer` with the atom typing heuristic + as in the :meth:`ConstructFrameResidueHeuristic` method. + + :param res: Residue from which to create the + :class:`RRMRotamer` + :type res: :class:`ost.mol.ResidueHandle` + :rtype: :class:`RRMRotamer` + + + .. method:: ConstructFRMRotamerHeuristic(res) + + Construct a :class:`FRMRotamer` with the atom typing heuristic + as in the :meth:`ConstructFrameResidueHeuristic` method. The + constructed :class:`FRMRotamer` only contains one subrotamer that + contains the atoms from *residue*. + + :param res: Residue from which to create the + :class:`FRMRotamer` + :type res: :class:`ost.mol.ResidueHandle` + :rtype: :class:`FRMRotamer` diff --git a/doc/html/_sources/sidechain/rotamer_lib.rst.txt b/doc/html/_sources/sidechain/rotamer_lib.txt similarity index 97% rename from doc/html/_sources/sidechain/rotamer_lib.rst.txt rename to doc/html/_sources/sidechain/rotamer_lib.txt index 847d1e78e13ef164449ef35d8bdccc84c698ba91..02bee83dd7be29979e7dc69a65a677da4a46d627 100644 --- a/doc/html/_sources/sidechain/rotamer_lib.rst.txt +++ b/doc/html/_sources/sidechain/rotamer_lib.txt @@ -1,491 +1,491 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -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. |project| provides you with a -:class:`BBDepRotamerLib` organizing rotamers for the different aminoacids -in equidistant phi/psi bins, as well as a simple :class:`RotamerLib`. -Both libraries are containers for :class:`RotamerLibEntry` and are 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. - - -The Non Backbone Dependent Rotamer Library --------------------------------------------------------------------------------- - - -.. class:: RotamerLib() - - Non backbone dependent rotamer library - - .. staticmethod:: Load(filename) - LoadPortable(filename) - - Loads raw binary file generated with :meth:`Save` (optimized for fast - reading) / portable file generated with :meth:`SavePortable` (slower but - less machine-dependent). - - :param filename: Path to the file from which to load. - :type filename: :class:`str` - - :returns: A rotamer library - :rtype: :class:`RotamerLib` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if - file cannot be parsed (see :ref:`here <portableIO>` for details). - - .. method:: Save(filename) - SavePortable(filename) - - Saves a raw / portable binary representation. Use portable files for - distribution and convert locally to raw files. See :ref:`here <portableIO>` - for details. - - :param filename: Path to the file where it will be saved. - :type filename: :class:`str` - - .. method:: AddRotamer(id, rotamer) - - :param id: Identity of rotamer to be added - :param rotamer: the rotamer to be added - - :type id: :class:`RotamerID` - :type rotamer: :class:`RotamerLibEntry` - - :raises: :exc:`~exceptions.RuntimeError` if the library is already static - - .. method:: QueryLib(id) - - 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 - - :type id: :class:`RotamerID` - - :returns: :class:`list` of :class:`RotamerLibEntry` of nonzero - probability sorted by their probability - - :raises: :exc:`~exceptions.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. - - -The Backbone Dependent Rotamer Library --------------------------------------------------------------------------------- - - -.. 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` - - .. staticmethod:: Load(filename) - LoadPortable(filename) - - Loads raw binary file generated with :meth:`Save` (optimized for fast - reading) / portable file generated with :meth:`SavePortable` (slower but - less machine-dependent). - - :param filename: Path to the file from which to load. - :type filename: :class:`str` - - :returns: A rotamer library - :rtype: :class:`BBDepRotamerLib` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if - file cannot be parsed (see :ref:`here <portableIO>` for details). - - .. method:: Save(filename) - SavePortable(filename) - - Saves a raw / portable binary representation. Use portable files for - distribution and convert locally to raw files. See :ref:`here <portableIO>` - for details. - - :param filename: Path to the file where it will be saved. - :type filename: :class:`str` - - :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. - - .. 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: :exc:`~exceptions.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 = round((angle + pi)/bin_size). - In case of interpolation, the chi angles of rotameric dihedral angles and the - according standard deviations of the rotamers get bilinearly interpolated - using the corresponding rotamers with same configuration from the - neighbouring bins. No interplation is applied to non-rotameric dihedral - angles (chi2 in ASP, ASN, HIS, PHE, TRP, TYR; chi3 in GLU, GLN). - This behaviour can be controlled with :meth:`SetInterpolate`. - 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 sorted by their probability - - :raises: :exc:`~exceptions.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: :exc:`~exceptions.RuntimeError` if one of the points above is - not fulfilled - - .. method:: SetInterpolate(interpolate) - - :param interpolate: Controls behaviour when :meth:`QueryLib` - 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 and standard deviations are set to 0.0, - all not required chi angles with their corresponding standard deviations to - NaN. - - :param res: Source of dihedral angles - - :type res: :class:`ost.mol.ResidueHandle` - - :returns: :class:`RotamerLibEntry` - - :raises: :exc:`~exceptions.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: :exc:`~exceptions.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 rotamers - (TYR,PHE,ASP,GLU) or rotamers with ambiguous naming in general. - - :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 that are symmetric - (TYR,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 rotamers - (TYR,PHE,ASP,GLU) or rotamers with ambiguous naming in general. - - :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. - Symmetric sidechains with ambigous naming (TYR,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 - -Rotamer Configurations --------------------------------------------------------------------------------- - -In rotamers, one distinguishes between rotameric and non-rotameric sidechain -dihedral angles. The rotameric ones are around SP3-SP3 hybridized bonds and -typically have three distinct configurations (trans, gauche-, gauche+). -The non-rotameric ones behave differently. |project| offers some functionality -to estimate those configurations. - -.. class:: DihedralConfiguration - - Enumerates the possible sidechain dihedral configurations - - .. hlist:: - :columns: 1 - - * TRANS - Trans configuration (120 < angle < -120) - * GAUCHE_PLUS - Gauche+ configuration (0 < angle < 120) - * GAUCHE_MINUS - Gauce- configuration (-120 < angle < 0) - * NON_ROTAMERIC - Dihedral without SP3-SP3 bond - * INVALID - Invalid configuration, e.g. chi3 of ALA (doesnt exist...) - -.. method:: GetRotamericConfiguration(angle) - - Evaluates the *angle* according to the ranges specified for - :class:`DihedralConfiguration`. - - :param angle: Angle to be evaluated - :type angle: :class:`float` - - :returns: TRANS, GAUCHE_PLUS or GAUCHE_MINUS. - INVALID if *angle* is NaN. - -.. method:: GetDihedralConfiguration(entry, id, dihedral_idx) - - Estimates configuration of a sidechain dihedral angle in a specific - :class:`RotamerLibEntry` with the knowledge of its identity. This allows - to also return NON_ROTAMERIC (e.g. chi2 for ASN). - - :param entry: Sidechain dihedral angle comes from here - :param id: Identity of rotamer - :param dihedral_idx: Specifies angle (0 => chi1, ..., 3 => chi4) - - :type entry: :class:`RotamerLibEntry` - :type id: :class:`RotamerID` - :type dihedral_idx: :class:`int` - - :returns: Result of :meth:`GetRotamericConfiguration` if specified - angle is Rotameric, NON_ROTAMERIC if specified angle is - valid and non rotameric, INVALID otherwise. - - +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +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. |project| provides you with a +:class:`BBDepRotamerLib` organizing rotamers for the different aminoacids +in equidistant phi/psi bins, as well as a simple :class:`RotamerLib`. +Both libraries are containers for :class:`RotamerLibEntry` and are 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. + + +The Non Backbone Dependent Rotamer Library +-------------------------------------------------------------------------------- + + +.. class:: RotamerLib() + + Non backbone dependent rotamer library + + .. staticmethod:: Load(filename) + LoadPortable(filename) + + Loads raw binary file generated with :meth:`Save` (optimized for fast + reading) / portable file generated with :meth:`SavePortable` (slower but + less machine-dependent). + + :param filename: Path to the file from which to load. + :type filename: :class:`str` + + :returns: A rotamer library + :rtype: :class:`RotamerLib` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if + file cannot be parsed (see :ref:`here <portableIO>` for details). + + .. method:: Save(filename) + SavePortable(filename) + + Saves a raw / portable binary representation. Use portable files for + distribution and convert locally to raw files. See :ref:`here <portableIO>` + for details. + + :param filename: Path to the file where it will be saved. + :type filename: :class:`str` + + .. method:: AddRotamer(id, rotamer) + + :param id: Identity of rotamer to be added + :param rotamer: the rotamer to be added + + :type id: :class:`RotamerID` + :type rotamer: :class:`RotamerLibEntry` + + :raises: :exc:`~exceptions.RuntimeError` if the library is already static + + .. method:: QueryLib(id) + + 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 + + :type id: :class:`RotamerID` + + :returns: :class:`list` of :class:`RotamerLibEntry` of nonzero + probability sorted by their probability + + :raises: :exc:`~exceptions.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. + + +The Backbone Dependent Rotamer Library +-------------------------------------------------------------------------------- + + +.. 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` + + .. staticmethod:: Load(filename) + LoadPortable(filename) + + Loads raw binary file generated with :meth:`Save` (optimized for fast + reading) / portable file generated with :meth:`SavePortable` (slower but + less machine-dependent). + + :param filename: Path to the file from which to load. + :type filename: :class:`str` + + :returns: A rotamer library + :rtype: :class:`BBDepRotamerLib` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened or if + file cannot be parsed (see :ref:`here <portableIO>` for details). + + .. method:: Save(filename) + SavePortable(filename) + + Saves a raw / portable binary representation. Use portable files for + distribution and convert locally to raw files. See :ref:`here <portableIO>` + for details. + + :param filename: Path to the file where it will be saved. + :type filename: :class:`str` + + :raises: :exc:`~exceptions.RuntimeError` if file cannot be opened. + + .. 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: :exc:`~exceptions.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 = round((angle + pi)/bin_size). + In case of interpolation, the chi angles of rotameric dihedral angles and the + according standard deviations of the rotamers get bilinearly interpolated + using the corresponding rotamers with same configuration from the + neighbouring bins. No interplation is applied to non-rotameric dihedral + angles (chi2 in ASP, ASN, HIS, PHE, TRP, TYR; chi3 in GLU, GLN). + This behaviour can be controlled with :meth:`SetInterpolate`. + 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 sorted by their probability + + :raises: :exc:`~exceptions.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: :exc:`~exceptions.RuntimeError` if one of the points above is + not fulfilled + + .. method:: SetInterpolate(interpolate) + + :param interpolate: Controls behaviour when :meth:`QueryLib` + 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 and standard deviations are set to 0.0, + all not required chi angles with their corresponding standard deviations to + NaN. + + :param res: Source of dihedral angles + + :type res: :class:`ost.mol.ResidueHandle` + + :returns: :class:`RotamerLibEntry` + + :raises: :exc:`~exceptions.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: :exc:`~exceptions.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 rotamers + (TYR,PHE,ASP,GLU) or rotamers with ambiguous naming in general. + + :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 that are symmetric + (TYR,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 rotamers + (TYR,PHE,ASP,GLU) or rotamers with ambiguous naming in general. + + :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. + Symmetric sidechains with ambigous naming (TYR,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 + +Rotamer Configurations +-------------------------------------------------------------------------------- + +In rotamers, one distinguishes between rotameric and non-rotameric sidechain +dihedral angles. The rotameric ones are around SP3-SP3 hybridized bonds and +typically have three distinct configurations (trans, gauche-, gauche+). +The non-rotameric ones behave differently. |project| offers some functionality +to estimate those configurations. + +.. class:: DihedralConfiguration + + Enumerates the possible sidechain dihedral configurations + + .. hlist:: + :columns: 1 + + * TRANS - Trans configuration (120 < angle < -120) + * GAUCHE_PLUS - Gauche+ configuration (0 < angle < 120) + * GAUCHE_MINUS - Gauce- configuration (-120 < angle < 0) + * NON_ROTAMERIC - Dihedral without SP3-SP3 bond + * INVALID - Invalid configuration, e.g. chi3 of ALA (doesnt exist...) + +.. method:: GetRotamericConfiguration(angle) + + Evaluates the *angle* according to the ranges specified for + :class:`DihedralConfiguration`. + + :param angle: Angle to be evaluated + :type angle: :class:`float` + + :returns: TRANS, GAUCHE_PLUS or GAUCHE_MINUS. + INVALID if *angle* is NaN. + +.. method:: GetDihedralConfiguration(entry, id, dihedral_idx) + + Estimates configuration of a sidechain dihedral angle in a specific + :class:`RotamerLibEntry` with the knowledge of its identity. This allows + to also return NON_ROTAMERIC (e.g. chi2 for ASN). + + :param entry: Sidechain dihedral angle comes from here + :param id: Identity of rotamer + :param dihedral_idx: Specifies angle (0 => chi1, ..., 3 => chi4) + + :type entry: :class:`RotamerLibEntry` + :type id: :class:`RotamerID` + :type dihedral_idx: :class:`int` + + :returns: Result of :meth:`GetRotamericConfiguration` if specified + angle is Rotameric, NON_ROTAMERIC if specified angle is + valid and non rotameric, INVALID otherwise. + + diff --git a/doc/html/_sources/sidechain/subrotamer_optimizer.rst.txt b/doc/html/_sources/sidechain/subrotamer_optimizer.txt similarity index 98% rename from doc/html/_sources/sidechain/subrotamer_optimizer.rst.txt rename to doc/html/_sources/sidechain/subrotamer_optimizer.txt index d2bdf91b30638ecfc632cb541fb8deec0d739219..44b7bb0edf5bb28f38c1396781c245dc0b2dc6f2 100644 --- a/doc/html/_sources/sidechain/subrotamer_optimizer.rst.txt +++ b/doc/html/_sources/sidechain/subrotamer_optimizer.txt @@ -1,61 +1,61 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Subrotamer Optimization -================================================================================ - -.. currentmodule:: promod3.sidechain - -The idea of the flexible rotamer model is to have several subrotamers -representing one single rotamer. -One subrotamer is the representative (the active subrotamer). -Thats the one that gets inserted in the structure once the reconstruction has -finished. This is not necessarily the optimal one. The SubrotamerOptimizer -takes a list of flexible rotamers, converts every single flexible rotamer -in a rotamer group of rigid rotamers, solves the sidechain reconstruction -problem and assigns the optimal subrotamers as active in the original -flexible rotamers. In terms of energies, the SubrotamerOptimizer expects -the energy of the flexible rotamers towards the rigid frame already to be set. -The internal energies can be controlled as parameters and a constant value is -set for rotamers that are currently active or not. The reason for that is -that you might want to prefer the currently active subrotamers if no -pairwise energies to other rotamers are observed. - -.. method:: SubrotamerOptimizer(rotamers, [active_internal_energy=-2.0, \ - inactive_internal_energy=0.0, \ - max_complexity=100000000, initial_epsilon=0.02) - - Takes the **rotamers** of type :class:`FRMRotamer`, converts all their - subrotamers into rigid rotamers, solves the sidechain reconstruction problem - and assigns the ideal subrotamers as active in the input **rotamers**. - - :param rotamers: The rotamers to be optimized - :type rotamers: :class:`list` of :class:`FRMRotamer` - - :param active_internal_energy: Internal energy that gets assigned to all - currently active subrotamers - :type active_internal_energy: :class:`float` - - :param inactive_internal_energy: Internal energy that gets assigned to all - currently inactive subrotamers - :type inactive_internal_energy: :class:`float` - - :param max_complexity: Max complexity of the internal :class:`RotamerGraph` - :type max_complexity: :class:`int` - - :param initial_epsilon: Epsilon value controlling the pruning of - internal :class:`RotamerGraph` - :type initial_epsilon: :class:`float` +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Subrotamer Optimization +================================================================================ + +.. currentmodule:: promod3.sidechain + +The idea of the flexible rotamer model is to have several subrotamers +representing one single rotamer. +One subrotamer is the representative (the active subrotamer). +Thats the one that gets inserted in the structure once the reconstruction has +finished. This is not necessarily the optimal one. The SubrotamerOptimizer +takes a list of flexible rotamers, converts every single flexible rotamer +in a rotamer group of rigid rotamers, solves the sidechain reconstruction +problem and assigns the optimal subrotamers as active in the original +flexible rotamers. In terms of energies, the SubrotamerOptimizer expects +the energy of the flexible rotamers towards the rigid frame already to be set. +The internal energies can be controlled as parameters and a constant value is +set for rotamers that are currently active or not. The reason for that is +that you might want to prefer the currently active subrotamers if no +pairwise energies to other rotamers are observed. + +.. method:: SubrotamerOptimizer(rotamers, [active_internal_energy=-2.0, \ + inactive_internal_energy=0.0, \ + max_complexity=100000000, initial_epsilon=0.02) + + Takes the **rotamers** of type :class:`FRMRotamer`, converts all their + subrotamers into rigid rotamers, solves the sidechain reconstruction problem + and assigns the ideal subrotamers as active in the input **rotamers**. + + :param rotamers: The rotamers to be optimized + :type rotamers: :class:`list` of :class:`FRMRotamer` + + :param active_internal_energy: Internal energy that gets assigned to all + currently active subrotamers + :type active_internal_energy: :class:`float` + + :param inactive_internal_energy: Internal energy that gets assigned to all + currently inactive subrotamers + :type inactive_internal_energy: :class:`float` + + :param max_complexity: Max complexity of the internal :class:`RotamerGraph` + :type max_complexity: :class:`int` + + :param initial_epsilon: Epsilon value controlling the pruning of + internal :class:`RotamerGraph` + :type initial_epsilon: :class:`float` diff --git a/doc/html/_sources/user_contributions.rst.txt b/doc/html/_sources/user_contributions.txt similarity index 98% rename from doc/html/_sources/user_contributions.rst.txt rename to doc/html/_sources/user_contributions.txt index 7cbdf6afa17d13c03780cb2781dca4f9b7377330..cbd88335d1181e784f390fba9116f9298321fe3b 100644 --- a/doc/html/_sources/user_contributions.rst.txt +++ b/doc/html/_sources/user_contributions.txt @@ -1,26 +1,26 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - -Contributing -================================================================================ - -Please contact the |project| developers if you implemented a modelling pipeline -that you believe is worth sharing with other users. -They can review the code and add it to the repository at: -https://git.scicore.unibas.ch/schwede/ProMod3. Consider -opening an account for the GitLab instance at sciCORE, University of Basel if -you directly want to contribute to |project|'s core features. You can find more -information on that matter in the developer section of the documentation -(:ref:`how-to-contribute`). +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + +Contributing +================================================================================ + +Please contact the |project| developers if you implemented a modelling pipeline +that you believe is worth sharing with other users. +They can review the code and add it to the repository at: +https://git.scicore.unibas.ch/schwede/ProMod3. Consider +opening an account for the GitLab instance at sciCORE, University of Basel if +you directly want to contribute to |project|'s core features. You can find more +information on that matter in the developer section of the documentation +(:ref:`how-to-contribute`). diff --git a/doc/html/_sources/users.rst.txt b/doc/html/_sources/users.txt similarity index 96% rename from doc/html/_sources/users.rst.txt rename to doc/html/_sources/users.txt index 7a0c400c902a776d8ce0446f022f6fe25406afcf..bb7841c14607de60c869bb26085f67a0cf714f42 100644 --- a/doc/html/_sources/users.rst.txt +++ b/doc/html/_sources/users.txt @@ -1,38 +1,38 @@ -.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and -.. Biozentrum - University of Basel -.. -.. Licensed under the Apache License, Version 2.0 (the "License"); -.. you may not use this file except in compliance with the License. -.. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - - -Documentation For Users -======================= - -This section is for users of |project|. It describes how to compile and run -scripts using the functionality of this library. - -Contents: - -.. toctree:: - :maxdepth: 2 - - gettingstarted - actions/index - buildsystem - container/index - modelling/index - sidechain/index - scoring/index - loop/index - core/index - core/setcompoundschemlib - user_contributions +.. Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +.. Biozentrum - University of Basel +.. +.. Licensed under the Apache License, Version 2.0 (the "License"); +.. you may not use this file except in compliance with the License. +.. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + + +Documentation For Users +======================= + +This section is for users of |project|. It describes how to compile and run +scripts using the functionality of this library. + +Contents: + +.. toctree:: + :maxdepth: 2 + + gettingstarted + actions/index + buildsystem + container/index + modelling/index + sidechain/index + scoring/index + loop/index + core/index + core/setcompoundschemlib + user_contributions diff --git a/doc/html/_static/basic.css b/doc/html/_static/basic.css index 104f076ae8ae5d6118dc13db6cb16e2ae9de1bda..0b79414a16adfcf062bf14fc3c040bc335eb79ad 100644 --- a/doc/html/_static/basic.css +++ b/doc/html/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -81,26 +81,10 @@ div.sphinxsidebar input { font-size: 1em; } -div.sphinxsidebar #searchbox form.search { - overflow: hidden; -} - div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; + width: 170px; } - img { border: 0; max-width: 100%; @@ -138,8 +122,6 @@ ul.keywordmatches li.goodmatch a { table.contentstable { width: 90%; - margin-left: auto; - margin-right: auto; } table.contentstable p.biglink { @@ -167,14 +149,9 @@ table.indextable td { vertical-align: top; } -table.indextable ul { +table.indextable dl, table.indextable dd { margin-top: 0; margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; } table.indextable tr.pcap { @@ -206,20 +183,8 @@ div.genindex-jumpbox { padding: 0.4em; } -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - /* -- general body styles --------------------------------------------------- */ -div.body { - min-width: 450px; - max-width: 800px; -} - div.body p, div.body dd, div.body li, div.body blockquote { -moz-hyphens: auto; -ms-hyphens: auto; @@ -252,6 +217,10 @@ div.body td { text-align: left; } +.field-list ul { + padding-left: 1em; +} + .first { margin-top: 0 !important; } @@ -353,11 +322,6 @@ table.docutils { border-collapse: collapse; } -table.align-center { - margin-left: auto; - margin-right: auto; -} - table caption span.caption-number { font-style: italic; } @@ -373,6 +337,10 @@ table.docutils td, table.docutils th { border-bottom: 1px solid #aaa; } +table.field-list td, table.field-list th { + border: 0 !important; +} + table.footnote td, table.footnote th { border: 0 !important; } @@ -409,34 +377,6 @@ div.figure p.caption span.caption-number { div.figure p.caption span.caption-text { } -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist td { - vertical-align: top; -} - /* -- other body styles ----------------------------------------------------- */ @@ -478,19 +418,24 @@ dd { margin-left: 30px; } -dt:target, span.highlighted { +dt:target, .highlighted { background-color: #fbe54e; } -rect.highlighted { - fill: #fbe54e; -} - dl.glossary dt { font-weight: bold; font-size: 1.1em; } +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + .optional { font-size: 1.3em; } @@ -647,16 +592,6 @@ span.eqno { float: right; } -span.eqno a.headerlink { - position: relative; - left: 0px; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - /* -- printout stylesheet --------------------------------------------------- */ @media print { diff --git a/doc/html/_static/comment-bright.png b/doc/html/_static/comment-bright.png index 15e27edb12ac25701ac0ac21b97b52bb4e45415e..551517b8c83b76f734ff791f847829a760ad1903 100644 Binary files a/doc/html/_static/comment-bright.png and b/doc/html/_static/comment-bright.png differ diff --git a/doc/html/_static/comment-close.png b/doc/html/_static/comment-close.png index 4d91bcf57de866a901a89a2a68c0f36af1114841..09b54be46da3f0d4a5061da289dc91d8a2cdbc9c 100644 Binary files a/doc/html/_static/comment-close.png and b/doc/html/_static/comment-close.png differ diff --git a/doc/html/_static/comment.png b/doc/html/_static/comment.png index dfbc0cbd512bdeefcb1984c99d8e577efb77f006..92feb52b8824c6b0f59b658b1196c61de9162a95 100644 Binary files a/doc/html/_static/comment.png and b/doc/html/_static/comment.png differ diff --git a/doc/html/_static/doctools.js b/doc/html/_static/doctools.js index ffadbec11f71c338696d5c014de9b64afe31a516..816349563588e87ca99c7cf2d6e54268e52e761d 100644 --- a/doc/html/_static/doctools.js +++ b/doc/html/_static/doctools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for all documentation. * - * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -45,7 +45,7 @@ jQuery.urlencode = encodeURIComponent; * it will always return arrays of strings for the value parts. */ jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') + if (typeof s == 'undefined') s = document.location.search; var parts = s.substr(s.indexOf('?') + 1).split('&'); var result = {}; @@ -66,55 +66,29 @@ jQuery.getQueryParameters = function(s) { * span elements with the given class name. */ jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { + function highlight(node) { + if (node.nodeType == 3) { var val = node.nodeValue; var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; span.appendChild(document.createTextNode(val.substr(pos, text.length))); node.parentNode.insertBefore(span, node.parentNode.insertBefore( document.createTextNode(val.substr(pos + text.length)), node.nextSibling)); node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var bbox = span.getBBox(); - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - var parentOfText = node.parentNode.parentNode; - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } } } else if (!jQuery(node).is("button, select, textarea")) { jQuery.each(node.childNodes, function() { - highlight(this, addItems); + highlight(this); }); } } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); + return this.each(function() { + highlight(this); }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; }; /* @@ -150,30 +124,28 @@ var Documentation = { this.fixFirefoxAnchorBug(); this.highlightSearchWords(); this.initIndexTable(); - if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { - this.initOnKeyListeners(); - } + }, /** * i18n support */ TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, LOCALE : 'unknown', // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) gettext : function(string) { var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') + if (typeof translated == 'undefined') return string; - return (typeof translated === 'string') ? translated : translated[0]; + return (typeof translated == 'string') ? translated : translated[0]; }, ngettext : function(singular, plural, n) { var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') + if (typeof translated == 'undefined') return (n == 1) ? singular : plural; return translated[Documentation.PLURALEXPR(n)]; }, @@ -208,7 +180,7 @@ var Documentation = { * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 */ fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) + if (document.location.hash) window.setTimeout(function() { document.location.href += ''; }, 10); @@ -244,7 +216,7 @@ var Documentation = { var src = $(this).attr('src'); var idnum = $(this).attr('id').substr(7); $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') + if (src.substr(-9) == 'minus.png') $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); else $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); @@ -276,7 +248,7 @@ var Documentation = { var path = document.location.pathname; var parts = path.split(/\//); $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') + if (this == '..') parts.pop(); }); var url = parts.join('/'); @@ -312,4 +284,4 @@ _ = Documentation.gettext; $(document).ready(function() { Documentation.init(); -}); +}); \ No newline at end of file diff --git a/doc/html/_static/documentation_options.js b/doc/html/_static/documentation_options.js deleted file mode 100644 index bac11efa4e9888d39efac7d7b0beeae3a7368e1b..0000000000000000000000000000000000000000 --- a/doc/html/_static/documentation_options.js +++ /dev/null @@ -1,296 +0,0 @@ -var DOCUMENTATION_OPTIONS = { - URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '3.0.0', - LANGUAGE: 'None', - COLLAPSE_INDEX: false, - FILE_SUFFIX: '.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt', - NAVIGATION_WITH_KEYS: false, - SEARCH_LANGUAGE_STOP_WORDS: ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"] -}; - - - -/* Non-minified version JS is _stemmer.js if file is provided */ -/** - * Porter Stemmer - */ -var Stemmer = function() { - - var step2list = { - ational: 'ate', - tional: 'tion', - enci: 'ence', - anci: 'ance', - izer: 'ize', - bli: 'ble', - alli: 'al', - entli: 'ent', - eli: 'e', - ousli: 'ous', - ization: 'ize', - ation: 'ate', - ator: 'ate', - alism: 'al', - iveness: 'ive', - fulness: 'ful', - ousness: 'ous', - aliti: 'al', - iviti: 'ive', - biliti: 'ble', - logi: 'log' - }; - - var step3list = { - icate: 'ic', - ative: '', - alize: 'al', - iciti: 'ic', - ical: 'ic', - ful: '', - ness: '' - }; - - var c = "[^aeiou]"; // consonant - var v = "[aeiouy]"; // vowel - var C = c + "[^aeiouy]*"; // consonant sequence - var V = v + "[aeiou]*"; // vowel sequence - - var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 - var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 - var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 - var s_v = "^(" + C + ")?" + v; // vowel in stem - - this.stemWord = function (w) { - var stem; - var suffix; - var firstch; - var origword = w; - - if (w.length < 3) - return w; - - var re; - var re2; - var re3; - var re4; - - firstch = w.substr(0,1); - if (firstch == "y") - w = firstch.toUpperCase() + w.substr(1); - - // Step 1a - re = /^(.+?)(ss|i)es$/; - re2 = /^(.+?)([^s])s$/; - - if (re.test(w)) - w = w.replace(re,"$1$2"); - else if (re2.test(w)) - w = w.replace(re2,"$1$2"); - - // Step 1b - re = /^(.+?)eed$/; - re2 = /^(.+?)(ed|ing)$/; - if (re.test(w)) { - var fp = re.exec(w); - re = new RegExp(mgr0); - if (re.test(fp[1])) { - re = /.$/; - w = w.replace(re,""); - } - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = new RegExp(s_v); - if (re2.test(stem)) { - w = stem; - re2 = /(at|bl|iz)$/; - re3 = new RegExp("([^aeiouylsz])\\1$"); - re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re2.test(w)) - w = w + "e"; - else if (re3.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - else if (re4.test(w)) - w = w + "e"; - } - } - - // Step 1c - re = /^(.+?)y$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(s_v); - if (re.test(stem)) - w = stem + "i"; - } - - // Step 2 - re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step2list[suffix]; - } - - // Step 3 - re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step3list[suffix]; - } - - // Step 4 - re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - re2 = /^(.+?)(s|t)(ion)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - if (re.test(stem)) - w = stem; - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = new RegExp(mgr1); - if (re2.test(stem)) - w = stem; - } - - // Step 5 - re = /^(.+?)e$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - re2 = new RegExp(meq1); - re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) - w = stem; - } - re = /ll$/; - re2 = new RegExp(mgr1); - if (re.test(w) && re2.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - - // and turn initial Y back to y - if (firstch == "y") - w = firstch.toLowerCase() + w.substr(1); - return w; - } -} - - - - - -var splitChars = (function() { - var result = {}; - var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648, - 1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702, - 2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971, - 2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345, - 3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761, - 3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, - 4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125, - 8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695, - 11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587, - 43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141]; - var i, j, start, end; - for (i = 0; i < singles.length; i++) { - result[singles[i]] = true; - } - var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709], - [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161], - [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568], - [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807], - [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047], - [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383], - [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450], - [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547], - [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673], - [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820], - [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946], - [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023], - [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173], - [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332], - [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481], - [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718], - [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791], - [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095], - [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205], - [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687], - [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968], - [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869], - [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102], - [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271], - [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592], - [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822], - [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167], - [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959], - [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143], - [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318], - [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483], - [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101], - [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567], - [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292], - [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444], - [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783], - [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311], - [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511], - [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774], - [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071], - [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263], - [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519], - [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647], - [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967], - [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295], - [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274], - [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007], - [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381], - [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]]; - for (i = 0; i < ranges.length; i++) { - start = ranges[i][0]; - end = ranges[i][1]; - for (j = start; j <= end; j++) { - result[j] = true; - } - } - return result; -})(); - -function splitQuery(query) { - var result = []; - var start = -1; - for (var i = 0; i < query.length; i++) { - if (splitChars[query.charCodeAt(i)]) { - if (start !== -1) { - result.push(query.slice(start, i)); - start = -1; - } - } else if (start === -1) { - start = i; - } - } - if (start !== -1) { - result.push(query.slice(start)); - } - return result; -} - - diff --git a/doc/html/_static/down-pressed.png b/doc/html/_static/down-pressed.png index 5756c8cad8854722893dc70b9eb4bb0400343a39..7c30d004b71b32bb2fc06b3bd4dc8278baab0946 100644 Binary files a/doc/html/_static/down-pressed.png and b/doc/html/_static/down-pressed.png differ diff --git a/doc/html/_static/down.png b/doc/html/_static/down.png index 1b3bdad2ceffae91cee61b32f3295f9bbe646e48..f48098a43b0c36342db9e1a9a7372e79b2484a59 100644 Binary files a/doc/html/_static/down.png and b/doc/html/_static/down.png differ diff --git a/doc/html/_static/file.png b/doc/html/_static/file.png index a858a410e4faa62ce324d814e4b816fff83a6fb3..254c60bfbe2715ae2edca48ebccfd074deb8031d 100644 Binary files a/doc/html/_static/file.png and b/doc/html/_static/file.png differ diff --git a/doc/html/_static/jquery-3.2.1.js b/doc/html/_static/jquery-1.11.1.js similarity index 52% rename from doc/html/_static/jquery-3.2.1.js rename to doc/html/_static/jquery-1.11.1.js index d2d8ca4790e52b0537f3cbb7dcd766099b789583..d4b67f7e6c1a94df167f31657769717a71581066 100644 --- a/doc/html/_static/jquery-3.2.1.js +++ b/doc/html/_static/jquery-1.11.1.js @@ -1,29 +1,27 @@ /*! - * jQuery JavaScript Library v3.2.1 - * https://jquery.com/ + * jQuery JavaScript Library v1.11.1 + * http://jquery.com/ * * Includes Sizzle.js - * https://sizzlejs.com/ + * http://sizzlejs.com/ * - * Copyright JS Foundation and other contributors + * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors * Released under the MIT license - * https://jquery.org/license + * http://jquery.org/license * - * Date: 2017-03-20T18:59Z + * Date: 2014-05-01T17:42Z */ -( function( global, factory ) { - "use strict"; +(function( global, factory ) { if ( typeof module === "object" && typeof module.exports === "object" ) { - - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. + // For CommonJS and CommonJS-like environments where a proper window is present, + // execute the factory and get jQuery + // For environments that do not inherently posses a window with a document + // (such as Node.js), expose a jQuery-making factory as module.exports + // This accentuates the need for the creation of a real window // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info. + // See ticket #14549 for more info module.exports = global.document ? factory( global, true ) : function( w ) { @@ -37,27 +35,23 @@ } // Pass this if window is not defined yet -} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 -// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode -// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common -// enough that all such attempts are guarded in a try block. -"use strict"; - -var arr = []; +}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { -var document = window.document; +// Can't do this because several apps including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +// Support: Firefox 18+ +// -var getProto = Object.getPrototypeOf; +var deletedIds = []; -var slice = arr.slice; +var slice = deletedIds.slice; -var concat = arr.concat; +var concat = deletedIds.concat; -var push = arr.push; +var push = deletedIds.push; -var indexOf = arr.indexOf; +var indexOf = deletedIds.indexOf; var class2type = {}; @@ -65,46 +59,27 @@ var toString = class2type.toString; var hasOwn = class2type.hasOwnProperty; -var fnToString = hasOwn.toString; - -var ObjectFunctionString = fnToString.call( Object ); - var support = {}; - function DOMEval( code, doc ) { - doc = doc || document; - - var script = doc.createElement( "script" ); - - script.text = code; - doc.head.appendChild( script ).parentNode.removeChild( script ); - } -/* global Symbol */ -// Defining this global in .eslintrc.json would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - - - var - version = "3.2.1", + version = "1.11.1", // Define a local copy of jQuery jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' // Need init if jQuery is called (just allow error to be thrown if not included) return new jQuery.fn.init( selector, context ); }, - // Support: Android <=4.0 only + // Support: Android<4.1, IE<9 // Make sure we trim BOM and NBSP rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, // Matches dashed string for camelizing rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g, + rdashAlpha = /-([\da-z])/gi, // Used by jQuery.camelCase as callback to replace() fcamelCase = function( all, letter ) { @@ -112,12 +87,14 @@ var }; jQuery.fn = jQuery.prototype = { - // The current version of jQuery being used jquery: version, constructor: jQuery, + // Start with an empty selector + selector: "", + // The default length of a jQuery object is 0 length: 0, @@ -128,14 +105,13 @@ jQuery.fn = jQuery.prototype = { // Get the Nth element in the matched element set OR // Get the whole matched element set as a clean array get: function( num ) { + return num != null ? - // Return all the elements in a clean array - if ( num == null ) { - return slice.call( this ); - } + // Return just the one element from the set + ( num < 0 ? this[ num + this.length ] : this[ num ] ) : - // Return just the one element from the set - return num < 0 ? this[ num + this.length ] : this[ num ]; + // Return all the elements in a clean array + slice.call( this ); }, // Take an array of elements and push it onto the stack @@ -147,20 +123,23 @@ jQuery.fn = jQuery.prototype = { // Add the old object onto the stack (as a reference) ret.prevObject = this; + ret.context = this.context; // Return the newly-formed element set return ret; }, // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); }, map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { return callback.call( elem, i, elem ); - } ) ); + })); }, slice: function() { @@ -178,23 +157,23 @@ jQuery.fn = jQuery.prototype = { eq: function( i ) { var len = this.length, j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); }, end: function() { - return this.prevObject || this.constructor(); + return this.prevObject || this.constructor(null); }, // For internal use only. // Behaves like an Array's method, not like a jQuery method. push: push, - sort: arr.sort, - splice: arr.splice + sort: deletedIds.sort, + splice: deletedIds.splice }; jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, + var src, copyIsArray, copy, name, options, clone, + target = arguments[0] || {}, i = 1, length = arguments.length, deep = false; @@ -203,27 +182,25 @@ jQuery.extend = jQuery.fn.extend = function() { if ( typeof target === "boolean" ) { deep = target; - // Skip the boolean and the target + // skip the boolean and the target target = arguments[ i ] || {}; i++; } // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { target = {}; } - // Extend jQuery itself if only one argument is passed + // extend jQuery itself if only one argument is passed if ( i === length ) { target = this; i--; } for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - + if ( (options = arguments[ i ]) != null ) { // Extend the base object for ( name in options ) { src = target[ name ]; @@ -235,15 +212,13 @@ jQuery.extend = jQuery.fn.extend = function() { } // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = Array.isArray( copy ) ) ) ) { - + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { if ( copyIsArray ) { copyIsArray = false; - clone = src && Array.isArray( src ) ? src : []; + clone = src && jQuery.isArray(src) ? src : []; } else { - clone = src && jQuery.isPlainObject( src ) ? src : {}; + clone = src && jQuery.isPlainObject(src) ? src : {}; } // Never move original objects, clone them @@ -261,8 +236,7 @@ jQuery.extend = jQuery.fn.extend = function() { return target; }; -jQuery.extend( { - +jQuery.extend({ // Unique for each copy of jQuery on the page expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), @@ -275,98 +249,150 @@ jQuery.extend( { noop: function() {}, + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). isFunction: function( obj ) { - return jQuery.type( obj ) === "function"; + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; }, isWindow: function( obj ) { - return obj != null && obj === obj.window; + /* jshint eqeqeq: false */ + return obj != null && obj == obj.window; }, isNumeric: function( obj ) { + // parseFloat NaNs numeric-cast false positives (null|true|false|"") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + return !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0; + }, - // As of jQuery 3.0, isNumeric is limited to - // strings and numbers (primitives or objects) - // that can be coerced to finite numbers (gh-2662) - var type = jQuery.type( obj ); - return ( type === "number" || type === "string" ) && - - // parseFloat NaNs numeric-cast false positives ("") - // ...but misinterprets leading-number strings, particularly hex literals ("0x...") - // subtraction forces infinities to NaN - !isNaN( obj - parseFloat( obj ) ); + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; }, isPlainObject: function( obj ) { - var proto, Ctor; + var key; - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { return false; } - proto = getProto( obj ); - - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; + try { + // Not own constructor property must be Object + if ( obj.constructor && + !hasOwn.call(obj, "constructor") && + !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; } - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, - - isEmptyObject: function( obj ) { + // Support: IE<9 + // Handle iteration over inherited properties before own properties. + if ( support.ownLast ) { + for ( key in obj ) { + return hasOwn.call( obj, key ); + } + } - /* eslint-disable no-unused-vars */ - // See https://github.com/eslint/eslint/issues/6125 - var name; + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + for ( key in obj ) {} - for ( name in obj ) { - return false; - } - return true; + return key === undefined || hasOwn.call( obj, key ); }, type: function( obj ) { if ( obj == null ) { return obj + ""; } - - // Support: Android <=2.3 only (functionish RegExp) return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : + class2type[ toString.call(obj) ] || "object" : typeof obj; }, // Evaluates a script in a global context - globalEval: function( code ) { - DOMEval( code ); + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && jQuery.trim( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } }, // Convert dashed to camelCase; used by the css and data modules - // Support: IE <=9 - 11, Edge 12 - 13 // Microsoft forgot to hump their vendor prefix (#9572) camelCase: function( string ) { return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); }, - each: function( obj, callback ) { - var length, i = 0; + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } } } + + // A special, fast, case for the most common use of each } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } } } } @@ -374,7 +400,7 @@ jQuery.extend( { return obj; }, - // Support: Android <=4.0 only + // Support: Android<4.1, IE<9 trim: function( text ) { return text == null ? "" : @@ -386,7 +412,7 @@ jQuery.extend( { var ret = results || []; if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { + if ( isArraylike( Object(arr) ) ) { jQuery.merge( ret, typeof arr === "string" ? [ arr ] : arr @@ -400,18 +426,42 @@ jQuery.extend( { }, inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); + var len; + + if ( arr ) { + if ( indexOf ) { + return indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return -1; }, - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit merge: function( first, second ) { var len = +second.length, j = 0, i = first.length; - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; + while ( j < len ) { + first[ i++ ] = second[ j++ ]; + } + + // Support: IE<9 + // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists) + if ( len !== len ) { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } } first.length = i; @@ -440,13 +490,14 @@ jQuery.extend( { // arg is for internal usage only map: function( elems, callback, arg ) { - var length, value, + var value, i = 0, + length = elems.length, + isArray = isArraylike( elems ), ret = []; // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; + if ( isArray ) { for ( ; i < length; i++ ) { value = callback( elems[ i ], i, arg ); @@ -476,7 +527,7 @@ jQuery.extend( { // Bind a function to a context, optionally partially applying any // arguments. proxy: function( fn, context ) { - var tmp, args, proxy; + var args, proxy, tmp; if ( typeof context === "string" ) { tmp = fn[ context ]; @@ -502,49 +553,45 @@ jQuery.extend( { return proxy; }, - now: Date.now, + now: function() { + return +( new Date() ); + }, // jQuery.support is not used in Core but other projects attach their // properties to it so it needs to exist. support: support -} ); - -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} +}); // Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); - -function isArrayLike( obj ) { +}); - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, +function isArraylike( obj ) { + var length = obj.length, type = jQuery.type( obj ); if ( type === "function" || jQuery.isWindow( obj ) ) { return false; } + if ( obj.nodeType === 1 && length ) { + return true; + } + return type === "array" || length === 0 || typeof length === "number" && length > 0 && ( length - 1 ) in obj; } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.3 - * https://sizzlejs.com/ + * Sizzle CSS Selector Engine v1.10.19 + * http://sizzlejs.com/ * - * Copyright jQuery Foundation and other contributors + * Copyright 2013 jQuery Foundation, Inc. and other contributors * Released under the MIT license * http://jquery.org/license * - * Date: 2016-08-08 + * Date: 2014-04-18 */ (function( window ) { @@ -571,7 +618,7 @@ var i, contains, // Instance-specific data - expando = "sizzle" + 1 * new Date(), + expando = "sizzle" + -(new Date()), preferredDoc = window.document, dirruns = 0, done = 0, @@ -585,6 +632,10 @@ var i, return 0; }, + // General-purpose constants + strundefined = typeof undefined, + MAX_NEGATIVE = 1 << 31, + // Instance methods hasOwn = ({}).hasOwnProperty, arr = [], @@ -592,13 +643,12 @@ var i, push_native = arr.push, push = arr.push, slice = arr.slice, - // Use a stripped-down indexOf as it's faster than native - // https://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { + // Use a stripped-down indexOf if we can't use a native one + indexOf = arr.indexOf || function( elem ) { var i = 0, - len = list.length; + len = this.length; for ( ; i < len; i++ ) { - if ( list[i] === elem ) { + if ( this[i] === elem ) { return i; } } @@ -609,21 +659,25 @@ var i, // Regular expressions - // http://www.w3.org/TR/css3-selectors/#whitespace + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", - // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace + // Operator (capture 2) "*([*^$|!~]?=)" + whitespace + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + "*\\]", - pseudos = ":(" + identifier + ")(?:\\((" + + pseudos = ":(" + characterEncoding + ")(?:\\((" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: // 1. quoted (capture 3; capture 4 or capture 5) "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + @@ -634,7 +688,6 @@ var i, ")\\)|)", // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), @@ -646,9 +699,9 @@ var i, ridentifier = new RegExp( "^" + identifier + "$" ), matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), "ATTR": new RegExp( "^" + attributes ), "PSEUDO": new RegExp( "^" + pseudos ), "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + @@ -670,9 +723,9 @@ var i, rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, rsibling = /[+~]/, + rescape = /'|\\/g, - // CSS escapes - // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), funescape = function( _, escaped, escapedWhitespace ) { var high = "0x" + escaped - 0x10000; @@ -686,41 +739,7 @@ var i, String.fromCharCode( high + 0x10000 ) : // Supplemental Plane codepoint (surrogate pair) String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // CSS string/identifier serialization - // https://drafts.csswg.org/cssom/#common-serializing-idioms - rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, - fcssescape = function( ch, asCodePoint ) { - if ( asCodePoint ) { - - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if ( ch === "\0" ) { - return "\uFFFD"; - } - - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; - } - - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }, - - disabledAncestor = addCombinator( - function( elem ) { - return elem.disabled === true && ("form" in elem || "label" in elem); - }, - { dir: "parentNode", next: "legend" } - ); + }; // Optimize for push.apply( _, NodeList ) try { @@ -752,128 +771,104 @@ try { } function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, match, groups, newSelector, - newContext = context && context.ownerDocument, + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; results = results || []; - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - + if ( !selector || typeof selector !== "string" ) { return results; } - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - context = context || document; - - if ( documentIsHTML ) { - - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { - - // ID selector - if ( (m = match[1]) ) { - - // Document context - if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - - // Element context - } else { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && - contains( context, elem ) && - elem.id === m ) { + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + if ( documentIsHTML && !seed ) { + + // Shortcuts + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document (jQuery #6963) + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { results.push( elem ); return results; } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; } - - // Type selector - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && - context.getElementsByClassName ) { - - push.apply( results, context.getElementsByClassName( m ) ); - return results; } - } - // Take advantage of querySelectorAll - if ( support.qsa && - !compilerCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; - if ( nodeType !== 1 ) { - newContext = context; - newSelector = selector; + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } - // qSA looks outside Element context, which is not what we want - // Thanks to Andrew Dupont for this workaround technique - // Support: IE <=8 - // Exclude object elements - } else if ( context.nodeName.toLowerCase() !== "object" ) { + // QSA path + if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + nid = old = expando; + newContext = context; + newSelector = nodeType === 9 && selector; - // Capture the context ID, setting it first if necessary - if ( (nid = context.getAttribute( "id" )) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", (nid = expando) ); - } + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - while ( i-- ) { - groups[i] = "#" + nid + " " + toSelector( groups[i] ); - } - newSelector = groups.join( "," ); + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); } + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; + newSelector = groups.join(","); + } - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); } } } @@ -886,7 +881,7 @@ function Sizzle( selector, context, results, seed ) { /** * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) * deleting the oldest entry */ @@ -915,22 +910,22 @@ function markFunction( fn ) { /** * Support testing using an element - * @param {Function} fn Passed the created element and returns a boolean result + * @param {Function} fn Passed the created div and expects a boolean result */ function assert( fn ) { - var el = document.createElement("fieldset"); + var div = document.createElement("div"); try { - return !!fn( el ); + return !!fn( div ); } catch (e) { return false; } finally { // Remove from its parent by default - if ( el.parentNode ) { - el.parentNode.removeChild( el ); + if ( div.parentNode ) { + div.parentNode.removeChild( div ); } // release memory in IE - el = null; + div = null; } } @@ -941,7 +936,7 @@ function assert( fn ) { */ function addHandle( attrs, handler ) { var arr = attrs.split("|"), - i = arr.length; + i = attrs.length; while ( i-- ) { Expr.attrHandle[ arr[i] ] = handler; @@ -957,7 +952,8 @@ function addHandle( attrs, handler ) { function siblingCheck( a, b ) { var cur = b && a, diff = cur && a.nodeType === 1 && b.nodeType === 1 && - a.sourceIndex - b.sourceIndex; + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); // Use IE sourceIndex if available on both nodes if ( diff ) { @@ -998,62 +994,6 @@ function createButtonPseudo( type ) { }; } -/** - * Returns a function to use in pseudos for :enabled/:disabled - * @param {Boolean} disabled true for :disabled; false for :enabled - */ -function createDisabledPseudo( disabled ) { - - // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable - return function( elem ) { - - // Only certain elements can match :enabled or :disabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled - if ( "form" in elem ) { - - // Check for inherited disabledness on relevant non-disabled elements: - // * listed form-associated elements in a disabled fieldset - // https://html.spec.whatwg.org/multipage/forms.html#category-listed - // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled - // * option elements in a disabled optgroup - // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled - // All such elements have a "form" property. - if ( elem.parentNode && elem.disabled === false ) { - - // Option elements defer to a parent optgroup if present - if ( "label" in elem ) { - if ( "label" in elem.parentNode ) { - return elem.parentNode.disabled === disabled; - } else { - return elem.disabled === disabled; - } - } - - // Support: IE 6 - 11 - // Use the isDisabled shortcut property to check for disabled fieldset ancestors - return elem.isDisabled === disabled || - - // Where there is no isDisabled, check manually - /* jshint -W018 */ - elem.isDisabled !== !disabled && - disabledAncestor( elem ) === disabled; - } - - return elem.disabled === disabled; - - // Try to winnow out elements that can't be disabled before trusting the disabled property. - // Some victims get caught in our net (label, legend, menu, track), but it shouldn't - // even exist on them, let alone have a boolean value. - } else if ( "label" in elem ) { - return elem.disabled === disabled; - } - - // Remaining elements are neither :enabled nor :disabled - return false; - }; -} - /** * Returns a function to use in pseudos for positionals * @param {Function} fn @@ -1082,7 +1022,7 @@ function createPositionalPseudo( fn ) { * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value */ function testContext( context ) { - return context && typeof context.getElementsByTagName !== "undefined" && context; + return context && typeof context.getElementsByTagName !== strundefined && context; } // Expose support vars for convenience @@ -1106,31 +1046,36 @@ isXML = Sizzle.isXML = function( elem ) { * @returns {Object} Returns the current document */ setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, subWindow, - doc = node ? node.ownerDocument || node : preferredDoc; + var hasCompare, + doc = node ? node.ownerDocument || node : preferredDoc, + parent = doc.defaultView; - // Return early if doc is invalid or already selected + // If no document and documentElement is available, return if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { return document; } - // Update global variables + // Set our document document = doc; - docElem = document.documentElement; - documentIsHTML = !isXML( document ); - - // Support: IE 9-11, Edge - // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - if ( preferredDoc !== document && - (subWindow = document.defaultView) && subWindow.top !== subWindow ) { - - // Support: IE 11, Edge - if ( subWindow.addEventListener ) { - subWindow.addEventListener( "unload", unloadHandler, false ); - - // Support: IE 9 - 10 only - } else if ( subWindow.attachEvent ) { - subWindow.attachEvent( "onunload", unloadHandler ); + docElem = doc.documentElement; + + // Support tests + documentIsHTML = !isXML( doc ); + + // Support: IE>8 + // If iframe document is assigned to "document" variable and if iframe has been reloaded, + // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 + // IE6-8 do not support the defaultView property so parent will be undefined + if ( parent && parent !== parent.top ) { + // IE11 does not have attachEvent, so all must suffer + if ( parent.addEventListener ) { + parent.addEventListener( "unload", function() { + setDocument(); + }, false ); + } else if ( parent.attachEvent ) { + parent.attachEvent( "onunload", function() { + setDocument(); + }); } } @@ -1138,106 +1083,83 @@ setDocument = Sizzle.setDocument = function( node ) { ---------------------------------------------------------------------- */ // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties - // (excepting IE8 booleans) - support.attributes = assert(function( el ) { - el.className = "i"; - return !el.getAttribute("className"); + // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); }); /* getElement(s)By* ---------------------------------------------------------------------- */ // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( el ) { - el.appendChild( document.createComment("") ); - return !el.getElementsByTagName("*").length; + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; }); - // Support: IE<9 - support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + // Check if getElementsByClassName can be trusted + support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) { + div.innerHTML = "<div class='a'></div><div class='a i'></div>"; + + // Support: Safari<4 + // Catch class over-caching + div.firstChild.className = "i"; + // Support: Opera<10 + // Catch gEBCN failure to find non-leading classes + return div.getElementsByClassName("i").length === 2; + }); // Support: IE<10 // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programmatically-set names, + // The broken getElementById methods don't pick up programatically-set names, // so use a roundabout getElementsByName test - support.getById = assert(function( el ) { - docElem.appendChild( el ).id = expando; - return !document.getElementsByName || !document.getElementsByName( expando ).length; + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !doc.getElementsByName || !doc.getElementsByName( expando ).length; }); - // ID filter and find + // ID find and filter if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [ m ] : []; + } + }; Expr.filter["ID"] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { return elem.getAttribute("id") === attrId; }; }; - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var elem = context.getElementById( id ); - return elem ? [ elem ] : []; - } - }; } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; + Expr.filter["ID"] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { - var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode("id"); + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); return node && node.value === attrId; }; }; - - // Support: IE 6 - 7 only - // getElementById is not reliable as a find shortcut - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var node, i, elems, - elem = context.getElementById( id ); - - if ( elem ) { - - // Verify the id attribute - node = elem.getAttributeNode("id"); - if ( node && node.value === id ) { - return [ elem ]; - } - - // Fall back on getElementsByName - elems = context.getElementsByName( id ); - i = 0; - while ( (elem = elems[i++]) ) { - node = elem.getAttributeNode("id"); - if ( node && node.value === id ) { - return [ elem ]; - } - } - } - - return []; - } - }; } // Tag Expr.find["TAG"] = support.getElementsByTagName ? function( tag, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { + if ( typeof context.getElementsByTagName !== strundefined ) { return context.getElementsByTagName( tag ); - - // DocumentFragment nodes don't have gEBTN - } else if ( support.qsa ) { - return context.querySelectorAll( tag ); } } : - function( tag, context ) { var elem, tmp = [], i = 0, - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too results = context.getElementsByTagName( tag ); // Filter out possible comments @@ -1255,7 +1177,7 @@ setDocument = Sizzle.setDocument = function( node ) { // Class Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { return context.getElementsByClassName( className ); } }; @@ -1272,87 +1194,63 @@ setDocument = Sizzle.setDocument = function( node ) { // We allow this because of a bug in IE8/9 that throws an error // whenever `document.activeElement` is accessed on an iframe // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See https://bugs.jquery.com/ticket/13378 + // See http://bugs.jquery.com/ticket/13378 rbuggyQSA = []; - if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { // Build QSA regex // Regex strategy adopted from Diego Perini - assert(function( el ) { + assert(function( div ) { // Select is set to empty string on purpose // This is to test IE's treatment of not explicitly // setting a boolean content attribute, // since its presence should be enough - // https://bugs.jquery.com/ticket/12359 - docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" + - "<select id='" + expando + "-\r\\' msallowcapture=''>" + - "<option selected=''></option></select>"; + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = "<select msallowclip=''><option selected=''></option></select>"; // Support: IE8, Opera 11-12.16 // Nothing should be selected when empty strings follow ^= or $= or *= // The test attribute must be unknown in Opera but "safe" for WinRT - // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll("[msallowcapture^='']").length ) { + // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( div.querySelectorAll("[msallowclip^='']").length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } // Support: IE8 // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll("[selected]").length ) { + if ( !div.querySelectorAll("[selected]").length ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } - // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ - if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push("~="); - } - // Webkit/Opera - :checked should return selected option elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll(":checked").length ) { + if ( !div.querySelectorAll(":checked").length ) { rbuggyQSA.push(":checked"); } - - // Support: Safari 8+, iOS 8+ - // https://bugs.webkit.org/show_bug.cgi?id=136851 - // In-page `selector#id sibling-combinator selector` fails - if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push(".#.+[+~]"); - } }); - assert(function( el ) { - el.innerHTML = "<a href='' disabled='disabled'></a>" + - "<select disabled='disabled'><option/></select>"; - + assert(function( div ) { // Support: Windows 8 Native Apps // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement("input"); + var input = doc.createElement("input"); input.setAttribute( "type", "hidden" ); - el.appendChild( input ).setAttribute( "name", "D" ); + div.appendChild( input ).setAttribute( "name", "D" ); // Support: IE8 // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll("[name=d]").length ) { + if ( div.querySelectorAll("[name=d]").length ) { rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) // IE8 throws error here and will not see later tests - if ( el.querySelectorAll(":enabled").length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: IE9-11+ - // IE's :disabled selector does not pick up the children of disabled fieldsets - docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll(":disabled").length !== 2 ) { + if ( !div.querySelectorAll(":enabled").length ) { rbuggyQSA.push( ":enabled", ":disabled" ); } // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll("*,:x"); + div.querySelectorAll("*,:x"); rbuggyQSA.push(",.*:"); }); } @@ -1363,14 +1261,14 @@ setDocument = Sizzle.setDocument = function( node ) { docElem.oMatchesSelector || docElem.msMatchesSelector) )) ) { - assert(function( el ) { + assert(function( div ) { // Check to see if it's possible to do matchesSelector // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( el, "*" ); + support.disconnectedMatch = matches.call( div, "div" ); // This should fail with an exception // Gecko does not error, returns false instead - matches.call( el, "[s!='']:x" ); + matches.call( div, "[s!='']:x" ); rbuggyMatches.push( "!=", pseudos ); }); } @@ -1383,7 +1281,7 @@ setDocument = Sizzle.setDocument = function( node ) { hasCompare = rnative.test( docElem.compareDocumentPosition ); // Element contains another - // Purposefully self-exclusive + // Purposefully does not implement inclusive descendent // As in, an element does not contain itself contains = hasCompare || rnative.test( docElem.contains ) ? function( a, b ) { @@ -1437,16 +1335,16 @@ setDocument = Sizzle.setDocument = function( node ) { (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { // Choose the first element that is related to our preferred document - if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { return -1; } - if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { return 1; } // Maintain original order return sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : 0; } @@ -1468,12 +1366,12 @@ setDocument = Sizzle.setDocument = function( node ) { // Parentless nodes are either documents or disconnected if ( !aup || !bup ) { - return a === document ? -1 : - b === document ? 1 : + return a === doc ? -1 : + b === doc ? 1 : aup ? -1 : bup ? 1 : sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : 0; // If the nodes are siblings, we can do a quick check @@ -1506,7 +1404,7 @@ setDocument = Sizzle.setDocument = function( node ) { 0; }; - return document; + return doc; }; Sizzle.matches = function( expr, elements ) { @@ -1523,7 +1421,6 @@ Sizzle.matchesSelector = function( elem, expr ) { expr = expr.replace( rattributeQuotes, "='$1']" ); if ( support.matchesSelector && documentIsHTML && - !compilerCache[ expr + " " ] && ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { @@ -1537,7 +1434,7 @@ Sizzle.matchesSelector = function( elem, expr ) { elem.document && elem.document.nodeType !== 11 ) { return ret; } - } catch (e) {} + } catch(e) {} } return Sizzle( expr, document, null, [ elem ] ).length > 0; @@ -1572,10 +1469,6 @@ Sizzle.attr = function( elem, name ) { null; }; -Sizzle.escape = function( sel ) { - return (sel + "").replace( rcssescape, fcssescape ); -}; - Sizzle.error = function( msg ) { throw new Error( "Syntax error, unrecognized expression: " + msg ); }; @@ -1760,7 +1653,7 @@ Expr = Sizzle.selectors = { return pattern || (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); }); }, @@ -1782,7 +1675,7 @@ Expr = Sizzle.selectors = { operator === "^=" ? check && result.indexOf( check ) === 0 : operator === "*=" ? check && result.indexOf( check ) > -1 : operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : false; }; @@ -1801,12 +1694,11 @@ Expr = Sizzle.selectors = { } : function( elem, context, xml ) { - var cache, uniqueCache, outerCache, node, nodeIndex, start, + var cache, outerCache, node, diff, nodeIndex, start, dir = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType, - diff = false; + useCache = !xml && !ofType; if ( parent ) { @@ -1815,10 +1707,7 @@ Expr = Sizzle.selectors = { while ( dir ) { node = elem; while ( (node = node[ dir ]) ) { - if ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) { - + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { return false; } } @@ -1832,21 +1721,11 @@ Expr = Sizzle.selectors = { // non-xml :nth-child(...) stores cache data on `parent` if ( forward && useCache ) { - // Seek `elem` from a previously-cached index - - // ...in a gzip-friendly way - node = parent; - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex && cache[ 2 ]; + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; node = nodeIndex && parent.childNodes[ nodeIndex ]; while ( (node = ++nodeIndex && node && node[ dir ] || @@ -1856,55 +1735,29 @@ Expr = Sizzle.selectors = { // When found, cache indexes on `parent` and break if ( node.nodeType === 1 && ++diff && node === elem ) { - uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; break; } } - } else { - // Use previously-cached element index if available - if ( useCache ) { - // ...in a gzip-friendly way - node = elem; - outerCache = node[ expando ] || (node[ expando ] = {}); + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex; - } + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } - // xml :nth-child(...) - // or :nth-last-child(...) or :nth(-last)?-of-type(...) - if ( diff === false ) { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) && - ++diff ) { - - // Cache the index of each encountered element - if ( useCache ) { - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - uniqueCache[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } + if ( node === elem ) { + break; } } } @@ -1942,7 +1795,7 @@ Expr = Sizzle.selectors = { matched = fn( seed, argument ), i = matched.length; while ( i-- ) { - idx = indexOf( seed, matched[i] ); + idx = indexOf.call( seed, matched[i] ); seed[ idx ] = !( matches[ idx ] = matched[i] ); } }) : @@ -1981,8 +1834,6 @@ Expr = Sizzle.selectors = { function( elem, context, xml ) { input[0] = elem; matcher( input, null, xml, results ); - // Don't keep the element (issue #299) - input[0] = null; return !results.pop(); }; }), @@ -1994,7 +1845,6 @@ Expr = Sizzle.selectors = { }), "contains": markFunction(function( text ) { - text = text.replace( runescape, funescape ); return function( elem ) { return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; }; @@ -2043,8 +1893,13 @@ Expr = Sizzle.selectors = { }, // Boolean properties - "enabled": createDisabledPseudo( false ), - "disabled": createDisabledPseudo( true ), + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, "checked": function( elem ) { // In CSS3, :checked should return both checked and selected elements @@ -2246,9 +2101,7 @@ function toSelector( tokens ) { function addCombinator( matcher, combinator, base ) { var dir = combinator.dir, - skip = combinator.next, - key = skip || dir, - checkNonElements = base && key === "parentNode", + checkNonElements = base && dir === "parentNode", doneName = done++; return combinator.first ? @@ -2259,15 +2112,14 @@ function addCombinator( matcher, combinator, base ) { return matcher( elem, context, xml ); } } - return false; } : // Check against all ancestor/preceding elements function( elem, context, xml ) { - var oldCache, uniqueCache, outerCache, + var oldCache, outerCache, newCache = [ dirruns, doneName ]; - // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching if ( xml ) { while ( (elem = elem[ dir ]) ) { if ( elem.nodeType === 1 || checkNonElements ) { @@ -2280,21 +2132,14 @@ function addCombinator( matcher, combinator, base ) { while ( (elem = elem[ dir ]) ) { if ( elem.nodeType === 1 || checkNonElements ) { outerCache = elem[ expando ] || (elem[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); - - if ( skip && skip === elem.nodeName.toLowerCase() ) { - elem = elem[ dir ] || elem; - } else if ( (oldCache = uniqueCache[ key ]) && + if ( (oldCache = outerCache[ dir ]) && oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { // Assign to newCache so results back-propagate to previous elements return (newCache[ 2 ] = oldCache[ 2 ]); } else { // Reuse newcache so results back-propagate to previous elements - uniqueCache[ key ] = newCache; + outerCache[ dir ] = newCache; // A match means we're done; a fail means we have to keep checking if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { @@ -2304,7 +2149,6 @@ function addCombinator( matcher, combinator, base ) { } } } - return false; }; } @@ -2422,7 +2266,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS i = matcherOut.length; while ( i-- ) { if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { seed[temp] = !(results[temp] = elem); } @@ -2457,16 +2301,13 @@ function matcherFromTokens( tokens ) { return elem === checkContext; }, implicitRelative, true ), matchAnyContext = addCombinator( function( elem ) { - return indexOf( checkContext, elem ) > -1; + return indexOf.call( checkContext, elem ) > -1; }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { - var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( (checkContext = context).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); - // Avoid hanging onto element (issue #299) - checkContext = null; - return ret; } ]; for ( ; i < len; i++ ) { @@ -2520,21 +2361,18 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { len = elems.length; if ( outermost ) { - outermostContext = context === document || context || outermost; + outermostContext = context !== document && context; } // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below // Support: IE<9, Safari // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id for ( ; i !== len && (elem = elems[i]) != null; i++ ) { if ( byElement && elem ) { j = 0; - if ( !context && elem.ownerDocument !== document ) { - setDocument( elem ); - xml = !documentIsHTML; - } while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context || document, xml) ) { + if ( matcher( elem, context, xml ) ) { results.push( elem ); break; } @@ -2558,17 +2396,8 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { } } - // `i` is now the count of elements visited above, and adding it to `matchedCount` - // makes the latter nonnegative. - matchedCount += i; - // Apply set filters to unmatched elements - // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` - // equals `i`), unless we didn't visit _any_ elements in the above loop because we have - // no element matchers and no seed. - // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that - // case, which will result in a "00" `matchedCount` that differs from `i` but is also - // numerically zero. + matchedCount += i; if ( bySet && i !== matchedCount ) { j = 0; while ( (matcher = setMatchers[j++]) ) { @@ -2660,14 +2489,14 @@ select = Sizzle.select = function( selector, context, results, seed ) { results = results || []; - // Try to minimize operations if there is only one selector in the list and no seed - // (the latter of which guarantees us context) + // Try to minimize operations if there is no seed and only one group if ( match.length === 1 ) { - // Reduce context if the leading compound selector is an ID + // Take a shortcut and set the context if the root selector is an ID tokens = match[0] = match[0].slice( 0 ); if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; if ( !context ) { @@ -2718,7 +2547,7 @@ select = Sizzle.select = function( selector, context, results, seed ) { context, !documentIsHTML, results, - !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + rsibling.test( selector ) && testContext( context.parentNode ) || context ); return results; }; @@ -2728,7 +2557,7 @@ select = Sizzle.select = function( selector, context, results, seed ) { // Sort stability support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; -// Support: Chrome 14-35+ +// Support: Chrome<14 // Always assume duplicates if they aren't passed to the comparison function support.detectDuplicates = !!hasDuplicate; @@ -2737,17 +2566,17 @@ setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) // Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( el ) { +support.sortDetached = assert(function( div1 ) { // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; + return div1.compareDocumentPosition( document.createElement("div") ) & 1; }); // Support: IE<8 // Prevent attribute/property "interpolation" -// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( el ) { - el.innerHTML = "<a href='#'></a>"; - return el.firstChild.getAttribute("href") === "#" ; +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = "<a href='#'></a>"; + return div.firstChild.getAttribute("href") === "#" ; }) ) { addHandle( "type|href|height|width", function( elem, name, isXML ) { if ( !isXML ) { @@ -2758,10 +2587,10 @@ if ( !assert(function( el ) { // Support: IE<9 // Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( el ) { - el.innerHTML = "<input/>"; - el.firstChild.setAttribute( "value", "" ); - return el.firstChild.getAttribute( "value" ) === ""; +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = "<input/>"; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; }) ) { addHandle( "value", function( elem, name, isXML ) { if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { @@ -2772,8 +2601,8 @@ if ( !support.attributes || !assert(function( el ) { // Support: IE<9 // Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( el ) { - return el.getAttribute("disabled") == null; +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; }) ) { addHandle( booleans, function( elem, name, isXML ) { var val; @@ -2794,94 +2623,50 @@ return Sizzle; jQuery.find = Sizzle; jQuery.expr = Sizzle.selectors; - -// Deprecated -jQuery.expr[ ":" ] = jQuery.expr.pseudos; -jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; jQuery.text = Sizzle.getText; jQuery.isXMLDoc = Sizzle.isXML; jQuery.contains = Sizzle.contains; -jQuery.escapeSelector = Sizzle.escape; +var rneedsContext = jQuery.expr.match.needsContext; -var dir = function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; -}; +var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); -var siblings = function( n, elem ) { - var matched = []; - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; -}; - - -var rneedsContext = jQuery.expr.match.needsContext; - - - -function nodeName( elem, name ) { - - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - -}; -var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); - - - -var risSimple = /^.[^:#\[\.,]*$/; +var risSimple = /^.[^:#\[\.,]*$/; // Implement the identical functionality for filter and not function winnow( elements, qualifier, not ) { if ( jQuery.isFunction( qualifier ) ) { return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ return !!qualifier.call( elem, i, elem ) !== not; - } ); + }); + } - // Single element if ( qualifier.nodeType ) { return jQuery.grep( elements, function( elem ) { return ( elem === qualifier ) !== not; - } ); - } + }); - // Arraylike of elements (jQuery, arguments, Array) - if ( typeof qualifier !== "string" ) { - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not; - } ); } - // Simple selector that can be filtered directly, removing non-Elements - if ( risSimple.test( qualifier ) ) { - return jQuery.filter( qualifier, elements, not ); + if ( typeof qualifier === "string" ) { + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); } - // Complex selector, compare the two sets, removing non-Elements - qualifier = jQuery.filter( qualifier, elements ); return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1; - } ); + return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not; + }); } jQuery.filter = function( expr, elems, not ) { @@ -2891,44 +2676,44 @@ jQuery.filter = function( expr, elems, not ) { expr = ":not(" + expr + ")"; } - if ( elems.length === 1 && elem.nodeType === 1 ) { - return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; - } - - return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - } ) ); + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + })); }; -jQuery.fn.extend( { +jQuery.fn.extend({ find: function( selector ) { - var i, ret, - len = this.length, - self = this; + var i, + ret = [], + self = this, + len = self.length; if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter( function() { + return this.pushStack( jQuery( selector ).filter(function() { for ( i = 0; i < len; i++ ) { if ( jQuery.contains( self[ i ], this ) ) { return true; } } - } ) ); + }) ); } - ret = this.pushStack( [] ); - for ( i = 0; i < len; i++ ) { jQuery.find( selector, self[ i ], ret ); } - return len > 1 ? jQuery.uniqueSort( ret ) : ret; + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; }, filter: function( selector ) { - return this.pushStack( winnow( this, selector || [], false ) ); + return this.pushStack( winnow(this, selector || [], false) ); }, not: function( selector ) { - return this.pushStack( winnow( this, selector || [], true ) ); + return this.pushStack( winnow(this, selector || [], true) ); }, is: function( selector ) { return !!winnow( @@ -2942,7 +2727,7 @@ jQuery.fn.extend( { false ).length; } -} ); +}); // Initialize a jQuery object @@ -2951,13 +2736,15 @@ jQuery.fn.extend( { // A central reference to the root jQuery(document) var rootjQuery, + // Use the correct document accordingly with window argument (sandbox) + document = window.document, + // A simple way to check for HTML strings // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) // Strict HTML recognition (#11290: must start with <) - // Shortcut simple #id case for speed - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, - init = jQuery.fn.init = function( selector, context, root ) { + init = jQuery.fn.init = function( selector, context ) { var match, elem; // HANDLE: $(""), $(null), $(undefined), $(false) @@ -2965,16 +2752,9 @@ var rootjQuery, return this; } - // Method init() accepts an alternate rootjQuery - // so migrate can support jQuery.sub (gh-2101) - root = root || rootjQuery; - // Handle HTML strings if ( typeof selector === "string" ) { - if ( selector[ 0 ] === "<" && - selector[ selector.length - 1 ] === ">" && - selector.length >= 3 ) { - + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { // Assume that strings that start and end with <> are HTML and skip the regex check match = [ null, selector, null ]; @@ -2983,24 +2763,23 @@ var rootjQuery, } // Match html or make sure no context is specified for #id - if ( match && ( match[ 1 ] || !context ) ) { + if ( match && (match[1] || !context) ) { // HANDLE: $(html) -> $(array) - if ( match[ 1 ] ) { - context = context instanceof jQuery ? context[ 0 ] : context; + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; - // Option to run scripts is true for back-compat + // scripts is true for back-compat // Intentionally let the error be thrown if parseHTML is not present jQuery.merge( this, jQuery.parseHTML( - match[ 1 ], + match[1], context && context.nodeType ? context.ownerDocument || context : document, true ) ); // HANDLE: $(html, props) - if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { for ( match in context ) { - // Properties of context are called as methods if possible if ( jQuery.isFunction( this[ match ] ) ) { this[ match ]( context[ match ] ); @@ -3016,20 +2795,30 @@ var rootjQuery, // HANDLE: $(#id) } else { - elem = document.getElementById( match[ 2 ] ); - - if ( elem ) { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } - // Inject the element directly into the jQuery object - this[ 0 ] = elem; + // Otherwise, we inject the element directly into the jQuery object this.length = 1; + this[0] = elem; } + + this.context = document; + this.selector = selector; return this; } // HANDLE: $(expr, $(...)) } else if ( !context || context.jquery ) { - return ( context || root ).find( selector ); + return ( context || rootjQuery ).find( selector ); // HANDLE: $(expr, context) // (which is just equivalent to: $(context).find(expr) @@ -3039,20 +2828,24 @@ var rootjQuery, // HANDLE: $(DOMElement) } else if ( selector.nodeType ) { - this[ 0 ] = selector; + this.context = this[0] = selector; this.length = 1; return this; // HANDLE: $(function) // Shortcut for document ready } else if ( jQuery.isFunction( selector ) ) { - return root.ready !== undefined ? - root.ready( selector ) : - + return typeof rootjQuery.ready !== "undefined" ? + rootjQuery.ready( selector ) : // Execute immediately if ready is not present selector( jQuery ); } + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + return jQuery.makeArray( selector, this ); }; @@ -3064,8 +2857,7 @@ rootjQuery = jQuery( document ); var rparentsprev = /^(?:parents|prev(?:Until|All))/, - - // Methods guaranteed to produce a unique set when starting from a unique set + // methods guaranteed to produce a unique set when starting from a unique set guaranteedUnique = { children: true, contents: true, @@ -3073,19 +2865,46 @@ var rparentsprev = /^(?:parents|prev(?:Until|All))/, prev: true }; -jQuery.fn.extend( { +jQuery.extend({ + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +jQuery.fn.extend({ has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; + var i, + targets = jQuery( target, this ), + len = targets.length; - return this.filter( function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[ i ] ) ) { + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { return true; } } - } ); + }); }, closest: function( selectors, context ) { @@ -3093,55 +2912,52 @@ jQuery.fn.extend( { i = 0, l = this.length, matched = [], - targets = typeof selectors !== "string" && jQuery( selectors ); - - // Positional selectors never match, since there's no _selection_ context - if ( !rneedsContext.test( selectors ) ) { - for ( ; i < l; i++ ) { - for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; - // Always skip document fragments - if ( cur.nodeType < 11 && ( targets ? - targets.index( cur ) > -1 : + for ( ; i < l; i++ ) { + for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { + // Always skip document fragments + if ( cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector( cur, selectors ) ) ) { + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors)) ) { - matched.push( cur ); - break; - } + matched.push( cur ); + break; } } } - return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); }, - // Determine the position of an element within the set + // Determine the position of an element within + // the matched set of elements index: function( elem ) { // No argument, return index in parent if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; } - // Index in selector + // index in selector if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); + return jQuery.inArray( this[0], jQuery( elem ) ); } // Locate the position of the desired element - return indexOf.call( this, - + return jQuery.inArray( // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); + elem.jquery ? elem[0] : elem, this ); }, add: function( selector, context ) { return this.pushStack( - jQuery.uniqueSort( + jQuery.unique( jQuery.merge( this.get(), jQuery( selector, context ) ) ) ); @@ -3149,26 +2965,29 @@ jQuery.fn.extend( { addBack: function( selector ) { return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) + this.prevObject : this.prevObject.filter(selector) ); } -} ); +}); function sibling( cur, dir ) { - while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); + return cur; } -jQuery.each( { +jQuery.each({ parent: function( elem ) { var parent = elem.parentNode; return parent && parent.nodeType !== 11 ? parent : null; }, parents: function( elem ) { - return dir( elem, "parentNode" ); + return jQuery.dir( elem, "parentNode" ); }, parentsUntil: function( elem, i, until ) { - return dir( elem, "parentNode", until ); + return jQuery.dir( elem, "parentNode", until ); }, next: function( elem ) { return sibling( elem, "nextSibling" ); @@ -3177,75 +2996,68 @@ jQuery.each( { return sibling( elem, "previousSibling" ); }, nextAll: function( elem ) { - return dir( elem, "nextSibling" ); + return jQuery.dir( elem, "nextSibling" ); }, prevAll: function( elem ) { - return dir( elem, "previousSibling" ); + return jQuery.dir( elem, "previousSibling" ); }, nextUntil: function( elem, i, until ) { - return dir( elem, "nextSibling", until ); + return jQuery.dir( elem, "nextSibling", until ); }, prevUntil: function( elem, i, until ) { - return dir( elem, "previousSibling", until ); + return jQuery.dir( elem, "previousSibling", until ); }, siblings: function( elem ) { - return siblings( ( elem.parentNode || {} ).firstChild, elem ); + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); }, children: function( elem ) { - return siblings( elem.firstChild ); + return jQuery.sibling( elem.firstChild ); }, contents: function( elem ) { - if ( nodeName( elem, "iframe" ) ) { - return elem.contentDocument; - } - - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } - - return jQuery.merge( [], elem.childNodes ); + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); } }, function( name, fn ) { jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); + var ret = jQuery.map( this, fn, until ); if ( name.slice( -5 ) !== "Until" ) { selector = until; } if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); + ret = jQuery.filter( selector, ret ); } if ( this.length > 1 ) { - // Remove duplicates if ( !guaranteedUnique[ name ] ) { - jQuery.uniqueSort( matched ); + ret = jQuery.unique( ret ); } // Reverse order for parents* and prev-derivatives if ( rparentsprev.test( name ) ) { - matched.reverse(); + ret = ret.reverse(); } } - return this.pushStack( matched ); + return this.pushStack( ret ); }; -} ); -var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); +}); +var rnotwhite = (/\S+/g); + +// String to Object options format cache +var optionsCache = {}; -// Convert String-formatted options into Object-formatted ones +// Convert String-formatted options into Object-formatted ones and store in cache function createOptions( options ) { - var object = {}; - jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { object[ flag ] = true; - } ); + }); return object; } @@ -3276,186 +3088,156 @@ jQuery.Callbacks = function( options ) { // Convert options from String-formatted to Object-formatted if needed // (we check in cache first) options = typeof options === "string" ? - createOptions( options ) : + ( optionsCache[ options ] || createOptions( options ) ) : jQuery.extend( {}, options ); var // Flag to know if list is currently firing firing, - - // Last fire value for non-forgettable lists + // Last fire value (for non-forgettable lists) memory, - // Flag to know if list was already fired fired, - - // Flag to prevent firing - locked, - + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // First callback to fire (used internally by add and fireWith) + firingStart, // Actual callback list list = [], - - // Queue of execution data for repeatable lists - queue = [], - - // Index of currently firing callback (modified by add/remove as needed) - firingIndex = -1, - + // Stack of fire calls for repeatable lists + stack = !options.once && [], // Fire callbacks - fire = function() { - - // Enforce single-firing - locked = locked || options.once; - - // Execute callbacks for all pending executions, - // respecting firingIndex overrides and runtime changes - fired = firing = true; - for ( ; queue.length; firingIndex = -1 ) { - memory = queue.shift(); - while ( ++firingIndex < list.length ) { - - // Run callback and check for early termination - if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && - options.stopOnFalse ) { - - // Jump to end and forget the data so .add doesn't re-fire - firingIndex = list.length; - memory = false; - } + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; } } - - // Forget the data if we're done with it - if ( !options.memory ) { - memory = false; - } - firing = false; - - // Clean up if we're done firing for good - if ( locked ) { - - // Keep an empty list if we have data for future add calls - if ( memory ) { + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { list = []; - - // Otherwise, this object is spent } else { - list = ""; + self.disable(); } } }, - // Actual Callbacks object self = { - // Add a callback or a collection of callbacks to the list add: function() { if ( list ) { - - // If we have memory from a past run, we should fire after adding - if ( memory && !firing ) { - firingIndex = list.length - 1; - queue.push( memory ); - } - - ( function add( args ) { + // First, we save the current length + var start = list.length; + (function add( args ) { jQuery.each( args, function( _, arg ) { - if ( jQuery.isFunction( arg ) ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { if ( !options.unique || !self.has( arg ) ) { list.push( arg ); } - } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) { - + } else if ( arg && arg.length && type !== "string" ) { // Inspect recursively add( arg ); } - } ); - } )( arguments ); - - if ( memory && !firing ) { - fire(); + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); } } return this; }, - // Remove a callback from the list remove: function() { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - - // Handle firing indexes - if ( index <= firingIndex ) { - firingIndex--; + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } } - } - } ); + }); + } return this; }, - // Check if a given callback is in the list. // If no argument is given, return whether or not list has callbacks attached. has: function( fn ) { - return fn ? - jQuery.inArray( fn, list ) > -1 : - list.length > 0; + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); }, - // Remove all callbacks from the list empty: function() { - if ( list ) { - list = []; - } + list = []; + firingLength = 0; return this; }, - - // Disable .fire and .add - // Abort any current/pending executions - // Clear all callbacks and values + // Have the list do nothing anymore disable: function() { - locked = queue = []; - list = memory = ""; + list = stack = memory = undefined; return this; }, + // Is it disabled? disabled: function() { return !list; }, - - // Disable .fire - // Also disable .add unless we have memory (since it would have no effect) - // Abort any pending executions + // Lock the list in its current state lock: function() { - locked = queue = []; - if ( !memory && !firing ) { - list = memory = ""; + stack = undefined; + if ( !memory ) { + self.disable(); } return this; }, + // Is it locked? locked: function() { - return !!locked; + return !stack; }, - // Call all callbacks with the given context and arguments fireWith: function( context, args ) { - if ( !locked ) { + if ( list && ( !fired || stack ) ) { args = args || []; args = [ context, args.slice ? args.slice() : args ]; - queue.push( args ); - if ( !firing ) { - fire(); + if ( firing ) { + stack.push( args ); + } else { + fire( args ); } } return this; }, - // Call all the callbacks with the given arguments fire: function() { self.fireWith( this, arguments ); return this; }, - // To know if the callbacks have already been called at least once fired: function() { return !!fired; @@ -3466,59 +3248,14 @@ jQuery.Callbacks = function( options ) { }; -function Identity( v ) { - return v; -} -function Thrower( ex ) { - throw ex; -} - -function adoptValue( value, resolve, reject, noValue ) { - var method; - - try { - - // Check for promise aspect first to privilege synchronous behavior - if ( value && jQuery.isFunction( ( method = value.promise ) ) ) { - method.call( value ).done( resolve ).fail( reject ); - - // Other thenables - } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) { - method.call( value, resolve, reject ); - - // Other non-thenables - } else { - - // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: - // * false: [ value ].slice( 0 ) => resolve( value ) - // * true: [ value ].slice( 1 ) => resolve() - resolve.apply( undefined, [ value ].slice( noValue ) ); - } - - // For Promises/A+, convert exceptions into rejections - // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in - // Deferred#then to conditionally suppress rejection. - } catch ( value ) { - - // Support: Android 4.0 only - // Strict mode functions invoked without .call/.apply get global-object context - reject.apply( undefined, [ value ] ); - } -} - -jQuery.extend( { +jQuery.extend({ Deferred: function( func ) { var tuples = [ - - // action, add listener, callbacks, - // ... .then handlers, argument index, [final state] - [ "notify", "progress", jQuery.Callbacks( "memory" ), - jQuery.Callbacks( "memory" ), 2 ], - [ "resolve", "done", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 0, "resolved" ], - [ "reject", "fail", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 1, "rejected" ] + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] ], state = "pending", promise = { @@ -3529,206 +3266,27 @@ jQuery.extend( { deferred.done( arguments ).fail( arguments ); return this; }, - "catch": function( fn ) { - return promise.then( null, fn ); - }, - - // Keep pipe for back-compat - pipe: function( /* fnDone, fnFail, fnProgress */ ) { + then: function( /* fnDone, fnFail, fnProgress */ ) { var fns = arguments; - - return jQuery.Deferred( function( newDefer ) { + return jQuery.Deferred(function( newDefer ) { jQuery.each( tuples, function( i, tuple ) { - - // Map tuples (progress, done, fail) to arguments (done, fail, progress) - var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; - - // deferred.progress(function() { bind to newDefer or newDefer.notify }) - // deferred.done(function() { bind to newDefer or newDefer.resolve }) - // deferred.fail(function() { bind to newDefer or newDefer.reject }) - deferred[ tuple[ 1 ] ]( function() { + var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { var returned = fn && fn.apply( this, arguments ); if ( returned && jQuery.isFunction( returned.promise ) ) { returned.promise() - .progress( newDefer.notify ) .done( newDefer.resolve ) - .fail( newDefer.reject ); + .fail( newDefer.reject ) + .progress( newDefer.notify ); } else { - newDefer[ tuple[ 0 ] + "With" ]( - this, - fn ? [ returned ] : arguments - ); + newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); } - } ); - } ); + }); + }); fns = null; - } ).promise(); - }, - then: function( onFulfilled, onRejected, onProgress ) { - var maxDepth = 0; - function resolve( depth, deferred, handler, special ) { - return function() { - var that = this, - args = arguments, - mightThrow = function() { - var returned, then; - - // Support: Promises/A+ section 2.3.3.3.3 - // https://promisesaplus.com/#point-59 - // Ignore double-resolution attempts - if ( depth < maxDepth ) { - return; - } - - returned = handler.apply( that, args ); - - // Support: Promises/A+ section 2.3.1 - // https://promisesaplus.com/#point-48 - if ( returned === deferred.promise() ) { - throw new TypeError( "Thenable self-resolution" ); - } - - // Support: Promises/A+ sections 2.3.3.1, 3.5 - // https://promisesaplus.com/#point-54 - // https://promisesaplus.com/#point-75 - // Retrieve `then` only once - then = returned && - - // Support: Promises/A+ section 2.3.4 - // https://promisesaplus.com/#point-64 - // Only check objects and functions for thenability - ( typeof returned === "object" || - typeof returned === "function" ) && - returned.then; - - // Handle a returned thenable - if ( jQuery.isFunction( then ) ) { - - // Special processors (notify) just wait for resolution - if ( special ) { - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ) - ); - - // Normal processors (resolve) also hook into progress - } else { - - // ...and disregard older resolution values - maxDepth++; - - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ), - resolve( maxDepth, deferred, Identity, - deferred.notifyWith ) - ); - } - - // Handle all other returned values - } else { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Identity ) { - that = undefined; - args = [ returned ]; - } - - // Process the value(s) - // Default process is resolve - ( special || deferred.resolveWith )( that, args ); - } - }, - - // Only normal processors (resolve) catch and reject exceptions - process = special ? - mightThrow : - function() { - try { - mightThrow(); - } catch ( e ) { - - if ( jQuery.Deferred.exceptionHook ) { - jQuery.Deferred.exceptionHook( e, - process.stackTrace ); - } - - // Support: Promises/A+ section 2.3.3.3.4.1 - // https://promisesaplus.com/#point-61 - // Ignore post-resolution exceptions - if ( depth + 1 >= maxDepth ) { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Thrower ) { - that = undefined; - args = [ e ]; - } - - deferred.rejectWith( that, args ); - } - } - }; - - // Support: Promises/A+ section 2.3.3.3.1 - // https://promisesaplus.com/#point-57 - // Re-resolve promises immediately to dodge false rejection from - // subsequent errors - if ( depth ) { - process(); - } else { - - // Call an optional hook to record the stack, in case of exception - // since it's otherwise lost when execution goes async - if ( jQuery.Deferred.getStackHook ) { - process.stackTrace = jQuery.Deferred.getStackHook(); - } - window.setTimeout( process ); - } - }; - } - - return jQuery.Deferred( function( newDefer ) { - - // progress_handlers.add( ... ) - tuples[ 0 ][ 3 ].add( - resolve( - 0, - newDefer, - jQuery.isFunction( onProgress ) ? - onProgress : - Identity, - newDefer.notifyWith - ) - ); - - // fulfilled_handlers.add( ... ) - tuples[ 1 ][ 3 ].add( - resolve( - 0, - newDefer, - jQuery.isFunction( onFulfilled ) ? - onFulfilled : - Identity - ) - ); - - // rejected_handlers.add( ... ) - tuples[ 2 ][ 3 ].add( - resolve( - 0, - newDefer, - jQuery.isFunction( onRejected ) ? - onRejected : - Thrower - ) - ); - } ).promise(); + }).promise(); }, - // Get a promise for this deferred // If obj is provided, the promise aspect is added to the object promise: function( obj ) { @@ -3737,53 +3295,34 @@ jQuery.extend( { }, deferred = {}; + // Keep pipe for back-compat + promise.pipe = promise.then; + // Add list-specific methods jQuery.each( tuples, function( i, tuple ) { var list = tuple[ 2 ], - stateString = tuple[ 5 ]; + stateString = tuple[ 3 ]; - // promise.progress = list.add - // promise.done = list.add - // promise.fail = list.add - promise[ tuple[ 1 ] ] = list.add; + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; // Handle state if ( stateString ) { - list.add( - function() { - - // state = "resolved" (i.e., fulfilled) - // state = "rejected" - state = stateString; - }, + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; - // rejected_callbacks.disable - // fulfilled_callbacks.disable - tuples[ 3 - i ][ 2 ].disable, - - // progress_callbacks.lock - tuples[ 0 ][ 2 ].lock - ); + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); } - // progress_handlers.fire - // fulfilled_handlers.fire - // rejected_handlers.fire - list.add( tuple[ 3 ].fire ); - - // deferred.notify = function() { deferred.notifyWith(...) } - // deferred.resolve = function() { deferred.resolveWith(...) } - // deferred.reject = function() { deferred.rejectWith(...) } - deferred[ tuple[ 0 ] ] = function() { - deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); return this; }; - - // deferred.notifyWith = list.fireWith - // deferred.resolveWith = list.fireWith - // deferred.rejectWith = list.fireWith - deferred[ tuple[ 0 ] + "With" ] = list.fireWith; - } ); + deferred[ tuple[0] + "With" ] = list.fireWith; + }); // Make the deferred a promise promise.promise( deferred ); @@ -3798,101 +3337,71 @@ jQuery.extend( { }, // Deferred helper - when: function( singleValue ) { - var - - // count of uncompleted subordinates - remaining = arguments.length, - - // count of unprocessed arguments - i = remaining, - - // subordinate fulfillment data - resolveContexts = Array( i ), + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, resolveValues = slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, - // the master Deferred - master = jQuery.Deferred(), + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), - // subordinate callback factory - updateFunc = function( i ) { + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { return function( value ) { - resolveContexts[ i ] = this; - resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( values === progressValues ) { + deferred.notifyWith( contexts, values ); + + } else if ( !(--remaining) ) { + deferred.resolveWith( contexts, values ); } }; - }; - - // Single- and empty arguments are adopted like Promise.resolve - if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, - !remaining ); + }, - // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || - jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + progressValues, progressContexts, resolveContexts; - return master.then(); + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } } } - // Multiple arguments are aggregated like Promise.all array elements - while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); } - return master.promise(); - } -} ); - - -// These usually indicate a programmer mistake during development, -// warn about them ASAP rather than swallowing them by default. -var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; - -jQuery.Deferred.exceptionHook = function( error, stack ) { - - // Support: IE 8 - 9 only - // Console exists when dev tools are open, which can happen at any time - if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { - window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + return deferred.promise(); } -}; - - - - -jQuery.readyException = function( error ) { - window.setTimeout( function() { - throw error; - } ); -}; - - +}); // The deferred used on DOM ready -var readyList = jQuery.Deferred(); +var readyList; jQuery.fn.ready = function( fn ) { - - readyList - .then( fn ) - - // Wrap jQuery.readyException in a function so that the lookup - // happens at the time of error handling instead of callback - // registration. - .catch( function( error ) { - jQuery.readyException( error ); - } ); + // Add the callback + jQuery.ready.promise().done( fn ); return this; }; -jQuery.extend( { - +jQuery.extend({ // Is the DOM ready to be used? Set to true once it occurs. isReady: false, @@ -3900,6 +3409,15 @@ jQuery.extend( { // the ready event fires. See #6781 readyWait: 1, + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + // Handle when the DOM is ready ready: function( wait ) { @@ -3908,6 +3426,11 @@ jQuery.extend( { return; } + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready ); + } + // Remember that the DOM is ready jQuery.isReady = true; @@ -3918,381 +3441,486 @@ jQuery.extend( { // If there are functions bound, to execute readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.triggerHandler ) { + jQuery( document ).triggerHandler( "ready" ); + jQuery( document ).off( "ready" ); + } } -} ); +}); -jQuery.ready.then = readyList.then; +/** + * Clean-up method for dom ready events + */ +function detach() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); -// The ready event handler and self cleanup method -function completed() { - document.removeEventListener( "DOMContentLoaded", completed ); - window.removeEventListener( "load", completed ); - jQuery.ready(); + } else { + document.detachEvent( "onreadystatechange", completed ); + window.detachEvent( "onload", completed ); + } } -// Catch cases where $(document).ready() is called -// after the browser event has already occurred. -// Support: IE <=9 - 10 only -// Older IE sometimes signals "interactive" too soon -if ( document.readyState === "complete" || - ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { - - // Handle it asynchronously to allow scripts the opportunity to delay ready - window.setTimeout( jQuery.ready ); - -} else { +/** + * The ready event handler and self cleanup method + */ +function completed() { + // readyState === "complete" is good enough for us to call the dom ready in oldIE + if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { + detach(); + jQuery.ready(); + } +} - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed ); +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed ); -} + readyList = jQuery.Deferred(); + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", completed ); - // Sets many values - if ( jQuery.type( key ) === "object" ) { - chainable = true; - for ( i in key ) { - access( elems, fn, i, key[ i ], true, emptyGet, raw ); - } + // A fallback to window.onload, that will always work + window.attachEvent( "onload", completed ); - // Sets one value - } else if ( value !== undefined ) { - chainable = true; + // If IE and not a frame + // continually check to see if the document is ready + var top = false; - if ( !jQuery.isFunction( value ) ) { - raw = true; - } + try { + top = window.frameElement == null && document.documentElement; + } catch(e) {} - if ( bulk ) { + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch(e) { + return setTimeout( doScrollCheck, 50 ); + } - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } + // detach all dom ready events + detach(); - if ( fn ) { - for ( ; i < len; i++ ) { - fn( - elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) - ); + // and execute any waiting functions + jQuery.ready(); + } + })(); } } } + return readyList.promise( obj ); +}; - if ( chainable ) { - return elems; - } - // Gets - if ( bulk ) { - return fn.call( elems ); - } +var strundefined = typeof undefined; - return len ? fn( elems[ 0 ], key ) : emptyGet; -}; -var acceptData = function( owner ) { - - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); -}; +// Support: IE<9 +// Iteration over object's inherited properties before its own +var i; +for ( i in jQuery( support ) ) { + break; +} +support.ownLast = i !== "0"; +// Note: most support tests are defined in their respective modules. +// false until the test is run +support.inlineBlockNeedsLayout = false; -function Data() { - this.expando = jQuery.expando + Data.uid++; -} +// Execute ASAP in case we need to set body.style.zoom +jQuery(function() { + // Minified: var a,b,c,d + var val, div, body, container; -Data.uid = 1; + body = document.getElementsByTagName( "body" )[ 0 ]; + if ( !body || !body.style ) { + // Return for frameset docs that don't have a body + return; + } -Data.prototype = { + // Setup + div = document.createElement( "div" ); + container = document.createElement( "div" ); + container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"; + body.appendChild( container ).appendChild( div ); - cache: function( owner ) { + if ( typeof div.style.zoom !== strundefined ) { + // Support: IE<8 + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1"; - // Check if the owner object already has a cache - var value = owner[ this.expando ]; + support.inlineBlockNeedsLayout = val = div.offsetWidth === 3; + if ( val ) { + // Prevent IE 6 from affecting layout for positioned elements #11048 + // Prevent IE from shrinking the body in IE 7 mode #12869 + // Support: IE<8 + body.style.zoom = 1; + } + } - // If not, create one - if ( !value ) { - value = {}; + body.removeChild( container ); +}); - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return an empty object. - if ( acceptData( owner ) ) { - // If it is a node unlikely to be stringify-ed or looped over - // use plain assignment - if ( owner.nodeType ) { - owner[ this.expando ] = value; - // Otherwise secure it in a non-enumerable property - // configurable must be true to allow the property to be - // deleted when data is removed - } else { - Object.defineProperty( owner, this.expando, { - value: value, - configurable: true - } ); - } - } + +(function() { + var div = document.createElement( "div" ); + + // Execute the test only if not already executed in another module. + if (support.deleteExpando == null) { + // Support: IE<9 + support.deleteExpando = true; + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; } + } - return value; - }, - set: function( owner, data, value ) { - var prop, - cache = this.cache( owner ); + // Null elements to avoid leaks in IE. + div = null; +})(); - // Handle: [ owner, key, value ] args - // Always use camelCase key (gh-2257) - if ( typeof data === "string" ) { - cache[ jQuery.camelCase( data ) ] = value; - // Handle: [ owner, { properties } ] args - } else { +/** + * Determines whether an object can have data + */ +jQuery.acceptData = function( elem ) { + var noData = jQuery.noData[ (elem.nodeName + " ").toLowerCase() ], + nodeType = +elem.nodeType || 1; - // Copy the properties one-by-one to the cache object - for ( prop in data ) { - cache[ jQuery.camelCase( prop ) ] = data[ prop ]; - } - } - return cache; - }, - get: function( owner, key ) { - return key === undefined ? - this.cache( owner ) : + // Do not set data on non-element DOM nodes because it will not be cleared (#8335). + return nodeType !== 1 && nodeType !== 9 ? + false : - // Always use camelCase key (gh-2257) - owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ]; - }, - access: function( owner, key, value ) { + // Nodes accept data unless otherwise specified; rejection can be conditional + !noData || noData !== true && elem.getAttribute("classid") === noData; +}; - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ( ( key && typeof key === "string" ) && value === undefined ) ) { - return this.get( owner, key ); - } +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /([A-Z])/g; - // When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, - cache = owner[ this.expando ]; + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); - if ( cache === undefined ) { - return; - } + data = elem.getAttribute( name ); - if ( key !== undefined ) { + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} - // Support array or space separated string of keys - if ( Array.isArray( key ) ) { + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); - // If key is an array of keys... - // We always set camelCase keys, so remove that. - key = key.map( jQuery.camelCase ); - } else { - key = jQuery.camelCase( key ); + } else { + data = undefined; + } + } - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - key = key in cache ? - [ key ] : - ( key.match( rnothtmlwhite ) || [] ); - } + return data; +} - i = key.length; +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { - while ( i-- ) { - delete cache[ key[ i ] ]; - } + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; } + } - // Remove the expando if there's no more data - if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + return true; +} - // Support: Chrome <=35 - 45 - // Webkit & Blink performance suffers when deleting properties - // from DOM nodes, so set to undefined instead - // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) - if ( owner.nodeType ) { - owner[ this.expando ] = undefined; - } else { - delete owner[ this.expando ]; - } - } - }, - hasData: function( owner ) { - var cache = owner[ this.expando ]; - return cache !== undefined && !jQuery.isEmptyObject( cache ); +function internalData( elem, name, data, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; } -}; -var dataPriv = new Data(); -var dataUser = new Data(); + var ret, thisCache, + internalKey = jQuery.expando, + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, -// Implementation Summary -// -// 1. Enforce API surface and semantic compatibility with 1.9.x branch -// 2. Improve the module's maintainability by reducing the storage -// paths to a single mechanism. -// 3. Use the same single mechanism to support "private" and "user" data. -// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) -// 5. Avoid exposing implementation details on user objects (eg. expando properties) -// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /[A-Z]/g; + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) { + return; + } -function getData( data ) { - if ( data === "true" ) { - return true; + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++; + } else { + id = internalKey; + } } - if ( data === "false" ) { - return false; + if ( !cache[ id ] ) { + // Avoid exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + cache[ id ] = isNode ? {} : { toJSON: jQuery.noop }; } - if ( data === "null" ) { - return null; + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } } - // Only convert to a number if it doesn't change the string - if ( data === +data + "" ) { - return +data; + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; } - if ( rbrace.test( data ) ) { - return JSON.parse( data ); + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; } - return data; + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( typeof name === "string" ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; } -function dataAttr( elem, key, data ) { - var name; +function internalRemoveData( elem, name, pvt ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); - data = elem.getAttribute( name ); + var thisCache, i, + isNode = elem.nodeType, - if ( typeof data === "string" ) { - try { - data = getData( data ); - } catch ( e ) {} + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; - // Make sure we set the data so it isn't changed later - dataUser.set( elem, key, data ); - } else { - data = undefined; + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); + } + } + } else { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = name.concat( jQuery.map( name, jQuery.camelCase ) ); + } + + i = name.length; + while ( i-- ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) { + return; + } } } - return data; + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + /* jshint eqeqeq: false */ + } else if ( support.deleteExpando || cache != cache.window ) { + /* jshint eqeqeq: true */ + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } } -jQuery.extend( { +jQuery.extend({ + cache: {}, + + // The following elements (space-suffixed to avoid Object.prototype collisions) + // throw uncatchable exceptions if you attempt to set expando properties + noData: { + "applet ": true, + "embed ": true, + // ...but Flash objects (which have this classid) *can* handle expandos + "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" + }, + hasData: function( elem ) { - return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); }, data: function( elem, name, data ) { - return dataUser.access( elem, name, data ); + return internalData( elem, name, data ); }, removeData: function( elem, name ) { - dataUser.remove( elem, name ); + return internalRemoveData( elem, name ); }, - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to dataPriv methods, these can be deprecated. + // For internal use only. _data: function( elem, name, data ) { - return dataPriv.access( elem, name, data ); + return internalData( elem, name, data, true ); }, _removeData: function( elem, name ) { - dataPriv.remove( elem, name ); + return internalRemoveData( elem, name, true ); } -} ); +}); -jQuery.fn.extend( { +jQuery.fn.extend({ data: function( key, value ) { var i, name, data, - elem = this[ 0 ], + elem = this[0], attrs = elem && elem.attributes; + // Special expections of .data basically thwart jQuery.access, + // so implement the relevant behavior ourselves + // Gets all values if ( key === undefined ) { if ( this.length ) { - data = dataUser.get( elem ); + data = jQuery.data( elem ); - if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { i = attrs.length; while ( i-- ) { - // Support: IE 11 only + // Support: IE11+ // The attrs elements can be null (#14894) if ( attrs[ i ] ) { name = attrs[ i ].name; if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.slice( 5 ) ); + name = jQuery.camelCase( name.slice(5) ); dataAttr( elem, name, data[ name ] ); } } } - dataPriv.set( elem, "hasDataAttrs", true ); + jQuery._data( elem, "parsedAttrs", true ); } } @@ -4301,68 +3929,43 @@ jQuery.fn.extend( { // Sets multiple values if ( typeof key === "object" ) { - return this.each( function() { - dataUser.set( this, key ); - } ); + return this.each(function() { + jQuery.data( this, key ); + }); } - return access( this, function( value ) { - var data; - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - - // Attempt to get data from the cache - // The key will always be camelCased in Data - data = dataUser.get( elem, key ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, key ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } + return arguments.length > 1 ? - // Set the data... - this.each( function() { + // Sets one value + this.each(function() { + jQuery.data( this, key, value ); + }) : - // We always store the camelCased key - dataUser.set( this, key, value ); - } ); - }, null, value, arguments.length > 1, null, true ); + // Gets one value + // Try to fetch any internally stored data first + elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined; }, removeData: function( key ) { - return this.each( function() { - dataUser.remove( this, key ); - } ); + return this.each(function() { + jQuery.removeData( this, key ); + }); } -} ); +}); -jQuery.extend( { +jQuery.extend({ queue: function( elem, type, data ) { var queue; if ( elem ) { type = ( type || "fx" ) + "queue"; - queue = dataPriv.get( elem, type ); + queue = jQuery._data( elem, type ); // Speed up dequeue by getting out quickly if this is just a lookup if ( data ) { - if ( !queue || Array.isArray( data ) ) { - queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); } else { queue.push( data ); } @@ -4396,7 +3999,7 @@ jQuery.extend( { queue.unshift( "inprogress" ); } - // Clear up the last queue stop function + // clear up the last queue stop function delete hooks.stop; fn.call( elem, next, hooks ); } @@ -4406,18 +4009,19 @@ jQuery.extend( { } }, - // Not public - generate a queueHooks object, or return the current one + // not intended for public consumption - generates a queueHooks object, or returns the current one _queueHooks: function( elem, type ) { var key = type + "queueHooks"; - return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { - empty: jQuery.Callbacks( "once memory" ).add( function() { - dataPriv.remove( elem, [ type + "queue", key ] ); - } ) - } ); + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery._removeData( elem, type + "queue" ); + jQuery._removeData( elem, key ); + }) + }); } -} ); +}); -jQuery.fn.extend( { +jQuery.fn.extend({ queue: function( type, data ) { var setter = 2; @@ -4428,31 +4032,30 @@ jQuery.fn.extend( { } if ( arguments.length < setter ) { - return jQuery.queue( this[ 0 ], type ); + return jQuery.queue( this[0], type ); } return data === undefined ? this : - this.each( function() { + this.each(function() { var queue = jQuery.queue( this, type, data ); - // Ensure a hooks for this queue + // ensure a hooks for this queue jQuery._queueHooks( this, type ); - if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + if ( type === "fx" && queue[0] !== "inprogress" ) { jQuery.dequeue( this, type ); } - } ); + }); }, dequeue: function( type ) { - return this.each( function() { + return this.each(function() { jQuery.dequeue( this, type ); - } ); + }); }, clearQueue: function( type ) { return this.queue( type || "fx", [] ); }, - // Get a promise resolved when queues of a certain type // are emptied (fx is the type by default) promise: function( type, obj ) { @@ -4474,7 +4077,7 @@ jQuery.fn.extend( { type = type || "fx"; while ( i-- ) { - tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); if ( tmp && tmp.empty ) { count++; tmp.empty.add( resolve ); @@ -4483,500 +4086,199 @@ jQuery.fn.extend( { resolve(); return defer.promise( obj ); } -} ); -var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; - -var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); - +}); +var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; -var isHiddenWithinTree = function( elem, el ) { - - // isHiddenWithinTree might be called from jQuery#filter function; +var isHidden = function( elem, el ) { + // isHidden might be called from jQuery#filter function; // in that case, element will be second argument elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); + }; - // Inline style trumps all - return elem.style.display === "none" || - elem.style.display === "" && - // Otherwise, check computed style - // Support: Firefox <=43 - 45 - // Disconnected elements can have computed display: none, so first confirm that elem is - // in the document. - jQuery.contains( elem.ownerDocument, elem ) && - jQuery.css( elem, "display" ) === "none"; - }; +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + length = elems.length, + bulk = key == null; -var swap = function( elem, options, callback, args ) { - var ret, name, - old = {}; + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } + // Sets one value + } else if ( value !== undefined ) { + chainable = true; - ret = callback.apply( elem, args || [] ); + if ( !jQuery.isFunction( value ) ) { + raw = true; + } - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < length; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } } - return ret; + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; }; +var rcheckableType = (/^(?:checkbox|radio)$/i); +(function() { + // Minified: var a,b,c + var input = document.createElement( "input" ), + div = document.createElement( "div" ), + fragment = document.createDocumentFragment(); -function adjustCSS( elem, prop, valueParts, tween ) { - var adjusted, - scale = 1, - maxIterations = 20, - currentValue = tween ? - function() { - return tween.cur(); - } : - function() { - return jQuery.css( elem, prop, "" ); - }, - initial = currentValue(), - unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + // Setup + div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; - // Starting value computation is required for potential unit mismatches - initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && - rcssNum.exec( jQuery.css( elem, prop ) ); + // IE strips leading whitespace when .innerHTML is used + support.leadingWhitespace = div.firstChild.nodeType === 3; - if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + support.tbody = !div.getElementsByTagName( "tbody" ).length; - // Trust units reported by jQuery.css - unit = unit || initialInUnit[ 3 ]; + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + support.htmlSerialize = !!div.getElementsByTagName( "link" ).length; - // Make sure we update the tween properties later on - valueParts = valueParts || []; + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + support.html5Clone = + document.createElement( "nav" ).cloneNode( true ).outerHTML !== "<:nav></:nav>"; - // Iteratively approximate from a nonzero starting point - initialInUnit = +initial || 1; + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + input.type = "checkbox"; + input.checked = true; + fragment.appendChild( input ); + support.appendChecked = input.checked; - do { + // Make sure textarea (and checkbox) defaultValue is properly cloned + // Support: IE6-IE11+ + div.innerHTML = "<textarea>x</textarea>"; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; - // If previous iteration zeroed out, double until we get *something*. - // Use string for doubling so we don't accidentally see scale as unchanged below - scale = scale || ".5"; + // #11217 - WebKit loses check when the name is after the checked attribute + fragment.appendChild( div ); + div.innerHTML = "<input type='radio' checked='checked' name='t'/>"; - // Adjust and apply - initialInUnit = initialInUnit / scale; - jQuery.style( elem, prop, initialInUnit + unit ); + // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3 + // old WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - // Update scale, tolerating zero or NaN from tween.cur() - // Break the loop if scale is unchanged or perfect, or if we've just had enough. - } while ( - scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations - ); - } + // Support: IE<9 + // Opera does not clone events (and typeof div.attachEvent === undefined). + // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() + support.noCloneEvent = true; + if ( div.attachEvent ) { + div.attachEvent( "onclick", function() { + support.noCloneEvent = false; + }); - if ( valueParts ) { - initialInUnit = +initialInUnit || +initial || 0; + div.cloneNode( true ).click(); + } - // Apply relative offset (+=/-=) if specified - adjusted = valueParts[ 1 ] ? - initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : - +valueParts[ 2 ]; - if ( tween ) { - tween.unit = unit; - tween.start = initialInUnit; - tween.end = adjusted; + // Execute the test only if not already executed in another module. + if (support.deleteExpando == null) { + // Support: IE<9 + support.deleteExpando = true; + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; } } - return adjusted; -} +})(); -var defaultDisplayMap = {}; +(function() { + var i, eventName, + div = document.createElement( "div" ); -function getDefaultDisplay( elem ) { - var temp, - doc = elem.ownerDocument, - nodeName = elem.nodeName, - display = defaultDisplayMap[ nodeName ]; + // Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event) + for ( i in { submit: true, change: true, focusin: true }) { + eventName = "on" + i; - if ( display ) { - return display; + if ( !(support[ i + "Bubbles" ] = eventName in window) ) { + // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) + div.setAttribute( eventName, "t" ); + support[ i + "Bubbles" ] = div.attributes[ eventName ].expando === false; + } } - temp = doc.body.appendChild( doc.createElement( nodeName ) ); - display = jQuery.css( temp, "display" ); + // Null elements to avoid leaks in IE. + div = null; +})(); - temp.parentNode.removeChild( temp ); - if ( display === "none" ) { - display = "block"; - } - defaultDisplayMap[ nodeName ] = display; +var rformElems = /^(?:input|select|textarea)$/i, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; - return display; +function returnTrue() { + return true; } -function showHide( elements, show ) { - var display, elem, - values = [], - index = 0, - length = elements.length; +function returnFalse() { + return false; +} - // Determine new display value for elements that need to change - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} - display = elem.style.display; - if ( show ) { - - // Since we force visibility upon cascade-hidden elements, an immediate (and slow) - // check is required in this first loop unless we have a nonempty display value (either - // inline or about-to-be-restored) - if ( display === "none" ) { - values[ index ] = dataPriv.get( elem, "display" ) || null; - if ( !values[ index ] ) { - elem.style.display = ""; - } - } - if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { - values[ index ] = getDefaultDisplay( elem ); - } - } else { - if ( display !== "none" ) { - values[ index ] = "none"; - - // Remember what we're overwriting - dataPriv.set( elem, "display", display ); - } - } - } - - // Set the display of the elements in a second loop to avoid constant reflow - for ( index = 0; index < length; index++ ) { - if ( values[ index ] != null ) { - elements[ index ].style.display = values[ index ]; - } - } - - return elements; -} - -jQuery.fn.extend( { - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - if ( typeof state === "boolean" ) { - return state ? this.show() : this.hide(); - } - - return this.each( function() { - if ( isHiddenWithinTree( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - } ); - } -} ); -var rcheckableType = ( /^(?:checkbox|radio)$/i ); - -var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); - -var rscriptType = ( /^$|\/(?:java|ecma)script/i ); - - - -// We have to close these tags to support XHTML (#13200) -var wrapMap = { - - // Support: IE <=9 only - option: [ 1, "<select multiple='multiple'>", "</select>" ], - - // XHTML parsers do not magically insert elements in the - // same way that tag soup parsers do. So we cannot shorten - // this by omitting <tbody> or other required elements. - thead: [ 1, "<table>", "</table>" ], - col: [ 2, "<table><colgroup>", "</colgroup></table>" ], - tr: [ 2, "<table><tbody>", "</tbody></table>" ], - td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], - - _default: [ 0, "", "" ] -}; - -// Support: IE <=9 only -wrapMap.optgroup = wrapMap.option; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - - -function getAll( context, tag ) { - - // Support: IE <=9 - 11 only - // Use typeof to avoid zero-argument method invocation on host objects (#15151) - var ret; - - if ( typeof context.getElementsByTagName !== "undefined" ) { - ret = context.getElementsByTagName( tag || "*" ); - - } else if ( typeof context.querySelectorAll !== "undefined" ) { - ret = context.querySelectorAll( tag || "*" ); - - } else { - ret = []; - } - - if ( tag === undefined || tag && nodeName( context, tag ) ) { - return jQuery.merge( [ context ], ret ); - } - - return ret; -} - - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - dataPriv.set( - elems[ i ], - "globalEval", - !refElements || dataPriv.get( refElements[ i ], "globalEval" ) - ); - } -} - - -var rhtml = /<|&#?\w+;/; - -function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, contains, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Ensure the created nodes are orphaned (#12392) - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( ( elem = nodes[ i++ ] ) ) { - - // Skip elements already in the context collection (trac-4087) - if ( selection && jQuery.inArray( elem, selection ) > -1 ) { - if ( ignored ) { - ignored.push( elem ); - } - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( ( elem = tmp[ j++ ] ) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; -} - - -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = "<textarea>x</textarea>"; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -} )(); -var documentElement = document.documentElement; - - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -// Support: IE <=9 only -// See #13393 for more info -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -function on( elem, types, selector, data, fn, one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - on( elem, type, selector, data, types[ type ], one ); - } - return elem; - } - - if ( data == null && fn == null ) { - - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return elem; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return elem.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - } ); -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { global: {}, add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.get( elem ); + var tmp, events, t, handleObjIn, + special, eventHandle, handleObj, + handlers, type, namespaces, origType, + elemData = jQuery._data( elem ); // Don't attach events to noData or text/comment nodes (but allow plain objects) if ( !elemData ) { @@ -4990,38 +4292,34 @@ jQuery.event = { selector = handleObjIn.selector; } - // Ensure that invalid selectors throw exceptions at attach time - // Evaluate against documentElement in case elem is a non-element node (e.g., document) - if ( selector ) { - jQuery.find.matchesSelector( documentElement, selector ); - } - // Make sure that the handler has a unique ID, used to find/remove it later if ( !handler.guid ) { handler.guid = jQuery.guid++; } // Init the element's event structure and main handler, if this is the first - if ( !( events = elemData.events ) ) { + if ( !(events = elemData.events) ) { events = elemData.events = {}; } - if ( !( eventHandle = elemData.handle ) ) { + if ( !(eventHandle = elemData.handle) ) { eventHandle = elemData.handle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; + return typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; } // Handle multiple events separated by a space - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + types = ( types || "" ).match( rnotwhite ) || [ "" ]; t = types.length; while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); // There *must* be a type, no attaching namespace-only handlers if ( !type ) { @@ -5038,7 +4336,7 @@ jQuery.event = { special = jQuery.event.special[ type ] || {}; // handleObj is passed to all event handlers - handleObj = jQuery.extend( { + handleObj = jQuery.extend({ type: type, origType: origType, data: data, @@ -5046,20 +4344,22 @@ jQuery.event = { guid: handler.guid, selector: selector, needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join( "." ) + namespace: namespaces.join(".") }, handleObjIn ); // Init the event handler queue if we're the first - if ( !( handlers = events[ type ] ) ) { + if ( !(handlers = events[ type ]) ) { handlers = events[ type ] = []; handlers.delegateCount = 0; - // Only use addEventListener if the special events handler returns false - if ( !special.setup || - special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle ); + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); } } } @@ -5083,27 +4383,29 @@ jQuery.event = { jQuery.event.global[ type ] = true; } + // Nullify elem to prevent memory leaks in IE + elem = null; }, // Detach an event or set of events from an element remove: function( elem, types, handler, selector, mappedTypes ) { + var j, handleObj, tmp, + origCount, t, events, + special, handlers, type, + namespaces, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); - - if ( !elemData || !( events = elemData.events ) ) { + if ( !elemData || !(events = elemData.events) ) { return; } // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + types = ( types || "" ).match( rnotwhite ) || [ "" ]; t = types.length; while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); // Unbind all events (on this namespace, if provided) for the element if ( !type ) { @@ -5116,8 +4418,7 @@ jQuery.event = { special = jQuery.event.special[ type ] || {}; type = ( selector ? special.delegateType : special.bindType ) || type; handlers = events[ type ] || []; - tmp = tmp[ 2 ] && - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); // Remove matching events origCount = j = handlers.length; @@ -5127,8 +4428,7 @@ jQuery.event = { if ( ( mappedTypes || origType === handleObj.origType ) && ( !handler || handler.guid === handleObj.guid ) && ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || - selector === "**" && handleObj.selector ) ) { + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { handlers.splice( j, 1 ); if ( handleObj.selector ) { @@ -5143,9 +4443,7 @@ jQuery.event = { // Remove generic event handler if we removed something and no more handlers exist // (avoids potential for endless recursion during removal of special event handlers) if ( origCount && !handlers.length ) { - if ( !special.teardown || - special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { jQuery.removeEvent( elem, type, elemData.handle ); } @@ -5153,181 +4451,375 @@ jQuery.event = { } } - // Remove data and the expando if it's no longer used + // Remove the expando if it's no longer used if ( jQuery.isEmptyObject( events ) ) { - dataPriv.remove( elem, "handle events" ); + delete elemData.handle; + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery._removeData( elem, "events" ); } }, - dispatch: function( nativeEvent ) { - - // Make a writable jQuery.Event from the native event object - var event = jQuery.event.fix( nativeEvent ); - - var i, j, ret, matched, handleObj, handlerQueue, - args = new Array( arguments.length ), - handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; + trigger: function( event, data, elem, onlyHandlers ) { + var handle, ontype, cur, + bubbleType, special, tmp, i, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[ 0 ] = event; + cur = tmp = elem = elem || document; - for ( i = 1; i < arguments.length; i++ ) { - args[ i ] = arguments[ i ]; + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; } - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { return; } - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); - j = 0; - while ( ( handleObj = matched.handlers[ j++ ] ) && - !event.isImmediatePropagationStopped() ) { + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } - // Triggered event must either 1) have no namespace, or 2) have namespace(s) - // a subset or equal to those in the bound event (both can have no namespace). - if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); - event.handleObj = handleObj; - event.data = handleObj.data; + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } - ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || - handleObj.handler ).apply( matched.elem, args ); + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - if ( ret !== undefined ) { - if ( ( event.result = ret ) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; } - } - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } } - return event.result; - }, + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && jQuery.acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && + jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + try { + elem[ type ](); + } catch ( e ) { + // IE<9 dies on focus/blur to hidden element (#1486,#12518) + // only reproducible on winXP IE8 native, not IE9 in IE8 mode + } + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, ret, handleObj, matched, j, + handlerQueue = [], + args = slice.call( arguments ), + handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, handlers: function( event, handlers ) { - var i, handleObj, sel, matchedHandlers, matchedSelectors, + var sel, handleObj, matches, i, handlerQueue = [], delegateCount = handlers.delegateCount, cur = event.target; // Find delegate handlers - if ( delegateCount && - - // Support: IE <=9 - // Black-hole SVG <use> instance trees (trac-13180) - cur.nodeType && + // Black-hole SVG <use> instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { - // Support: Firefox <=42 - // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) - // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click - // Support: IE 11 only - // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) - !( event.type === "click" && event.button >= 1 ) ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { + /* jshint eqeqeq: false */ + for ( ; cur != this; cur = cur.parentNode || this ) { + /* jshint eqeqeq: true */ // Don't check non-elements (#13208) // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { - matchedHandlers = []; - matchedSelectors = {}; + if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { + matches = []; for ( i = 0; i < delegateCount; i++ ) { handleObj = handlers[ i ]; // Don't conflict with Object.prototype properties (#13203) sel = handleObj.selector + " "; - if ( matchedSelectors[ sel ] === undefined ) { - matchedSelectors[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) > -1 : + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : jQuery.find( sel, this, null, [ cur ] ).length; } - if ( matchedSelectors[ sel ] ) { - matchedHandlers.push( handleObj ); + if ( matches[ sel ] ) { + matches.push( handleObj ); } } - if ( matchedHandlers.length ) { - handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); } } } } // Add the remaining (directly-bound) handlers - cur = this; if ( delegateCount < handlers.length ) { - handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); } return handlerQueue; }, - addProp: function( name, hook ) { - Object.defineProperty( jQuery.Event.prototype, name, { - enumerable: true, - configurable: true, + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: IE<9 + // Fix target property (#1925) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Support: Chrome 23+, Safari? + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Support: IE<9 + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) + event.metaKey = !!event.metaKey; + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - get: jQuery.isFunction( hook ) ? - function() { - if ( this.originalEvent ) { - return hook( this.originalEvent ); - } - } : - function() { - if ( this.originalEvent ) { - return this.originalEvent[ name ]; - } - }, + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { - set: function( value ) { - Object.defineProperty( this, name, { - enumerable: true, - configurable: true, - writable: true, - value: value - } ); + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; } - } ); + + return event; + } }, - fix: function( originalEvent ) { - return originalEvent[ jQuery.expando ] ? - originalEvent : - new jQuery.Event( originalEvent ); + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var body, eventDoc, doc, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } }, special: { load: { - // Prevent triggered image.load events from bubbling to window.load noBubble: true }, focus: { - // Fire native event if possible so blur/focus sequence is correct trigger: function() { if ( this !== safeActiveElement() && this.focus ) { - this.focus(); - return false; + try { + this.focus(); + return false; + } catch ( e ) { + // Support: IE<9 + // If we error on focus to hidden element (#1486, #12518), + // let .trigger() run the handlers + } } }, delegateType: "focusin" @@ -5342,10 +4834,9 @@ jQuery.event = { delegateType: "focusout" }, click: { - // For checkbox, fire native event so checked state will be right trigger: function() { - if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { + if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { this.click(); return false; } @@ -5353,7 +4844,7 @@ jQuery.event = { // For cross-browser consistency, don't fire native .click() on links _default: function( event ) { - return nodeName( event.target, "a" ); + return jQuery.nodeName( event.target, "a" ); } }, @@ -5367,21 +4858,56 @@ jQuery.event = { } } } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } } }; -jQuery.removeEvent = function( elem, type, handle ) { +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + var name = "on" + type; - // This "if" is needed for plain objects - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle ); - } -}; + if ( elem.detachEvent ) { -jQuery.Event = function( src, props ) { + // #8545, #7054, preventing memory leaks for custom events in IE6-8 + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === strundefined ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); + } + }; +jQuery.Event = function( src, props ) { // Allow instantiation without the 'new' keyword - if ( !( this instanceof jQuery.Event ) ) { + if ( !(this instanceof jQuery.Event) ) { return new jQuery.Event( src, props ); } @@ -5394,22 +4920,11 @@ jQuery.Event = function( src, props ) { // by a handler lower down the tree; reflect the correct value. this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && - - // Support: Android <=2.3 only + // Support: IE < 9, Android < 4.0 src.returnValue === false ? returnTrue : returnFalse; - // Create target properties - // Support: Safari <=6 - 7 only - // Target should not be a text node (#504, #13143) - this.target = ( src.target && src.target.nodeType === 3 ) ? - src.target.parentNode : - src.target; - - this.currentTarget = src.currentTarget; - this.relatedTarget = src.relatedTarget; - // Event type } else { this.type = src; @@ -5428,38 +4943,52 @@ jQuery.Event = function( src, props ) { }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html jQuery.Event.prototype = { - constructor: jQuery.Event, isDefaultPrevented: returnFalse, isPropagationStopped: returnFalse, isImmediatePropagationStopped: returnFalse, - isSimulated: false, preventDefault: function() { var e = this.originalEvent; this.isDefaultPrevented = returnTrue; + if ( !e ) { + return; + } - if ( e && !this.isSimulated ) { + // If preventDefault exists, run it on the original event + if ( e.preventDefault ) { e.preventDefault(); + + // Support: IE + // Otherwise set the returnValue property of the original event to false + } else { + e.returnValue = false; } }, stopPropagation: function() { var e = this.originalEvent; this.isPropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { + if ( !e ) { + return; + } + // If stopPropagation exists, run it on the original event + if ( e.stopPropagation ) { e.stopPropagation(); } + + // Support: IE + // Set the cancelBubble property of the original event to true + e.cancelBubble = true; }, stopImmediatePropagation: function() { var e = this.originalEvent; this.isImmediatePropagationStopped = returnTrue; - if ( e && !this.isSimulated ) { + if ( e && e.stopImmediatePropagation ) { e.stopImmediatePropagation(); } @@ -5467,76 +4996,8 @@ jQuery.Event.prototype = { } }; -// Includes all common event props including KeyEvent and MouseEvent specific props -jQuery.each( { - altKey: true, - bubbles: true, - cancelable: true, - changedTouches: true, - ctrlKey: true, - detail: true, - eventPhase: true, - metaKey: true, - pageX: true, - pageY: true, - shiftKey: true, - view: true, - "char": true, - charCode: true, - key: true, - keyCode: true, - button: true, - buttons: true, - clientX: true, - clientY: true, - offsetX: true, - offsetY: true, - pointerId: true, - pointerType: true, - screenX: true, - screenY: true, - targetTouches: true, - toElement: true, - touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } -}, jQuery.event.addProp ); - // Create mouseenter/leave events using mouseover/out and event-time checks -// so that event delegation works in jQuery. -// Do the same for pointerenter/pointerleave and pointerover/pointerout -// -// Support: Safari 7 only -// Safari sends mouseenter too often; see: -// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 -// for the description of the bug (it existed in older Chrome versions as well). -jQuery.each( { +jQuery.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", @@ -5552,9 +5013,9 @@ jQuery.each( { related = event.relatedTarget, handleObj = event.handleObj; - // For mouseenter/leave call the handler if related is outside the target. + // For mousenter/leave call the handler if related is outside the target. // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { event.type = handleObj.origType; ret = handleObj.handler.apply( this, arguments ); event.type = fix; @@ -5562,281 +5023,490 @@ jQuery.each( { return ret; } }; -} ); +}); -jQuery.fn.extend( { +// IE submit delegation +if ( !support.submitBubbles ) { - on: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn ); - }, - one: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { + jQuery.event.special.submit = { + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? - handleObj.origType + "." + handleObj.namespace : - handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !jQuery._data( form, "submitBubbles" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submit_bubble = true; + }); + jQuery._data( form, "submitBubbles", true ); + } + }); + // return undefined since we don't need an event listener + }, - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); + postDispatch: function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( event._submit_bubble ) { + delete event._submit_bubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } } - return this; - } - if ( selector === false || typeof selector === "function" ) { + }, - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each( function() { - jQuery.event.remove( this, types, fn, selector ); - } ); - } -} ); + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; +} -var +// IE change delegation and checkbox/radio fix +if ( !support.changeBubbles ) { - /* eslint-disable max-len */ + jQuery.event.special.change = { - // See https://github.com/eslint/eslint/issues/3229 - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + setup: function() { - /* eslint-enable */ + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); + }); + } + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; - // Support: IE <=10 - 11, Edge 12 - 13 - // In IE/Edge using regex groups here causes severe slowdowns. - // See https://connect.microsoft.com/IE/feedback/details/1736512/ - rnoInnerhtml = /<script|<style|<link/i, + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + jQuery._data( elem, "changeBubbles", true ); + } + }); + }, - // checked="checked" or checked - rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, - rscriptTypeMasked = /^true\/(.*)/, - rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; + handle: function( event ) { + var elem = event.target; -// Prefer a tbody over its parent table for containing new rows -function manipulationTarget( elem, content ) { - if ( nodeName( elem, "table" ) && - nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); + } + }, - return jQuery( ">tbody", elem )[ 0 ] || elem; - } + teardown: function() { + jQuery.event.remove( this, "._change" ); - return elem; + return !rformElems.test( this.nodeName ); + } + }; } -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); +// Create "bubbling" focus and blur events +if ( !support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - if ( match ) { - elem.type = match[ 1 ]; - } else { - elem.removeAttribute( "type" ); - } + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; - return elem; -} + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = jQuery._data( doc, fix ); -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + jQuery._data( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = jQuery._data( doc, fix ) - 1; - if ( dest.nodeType !== 1 ) { - return; - } + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + jQuery._removeData( doc, fix ); + } else { + jQuery._data( doc, fix, attaches ); + } + } + }; + }); +} - // 1. Copy private data: events, handlers, etc. - if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.access( src ); - pdataCur = dataPriv.set( dest, pdataOld ); - events = pdataOld.events; +jQuery.fn.extend({ - if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var type, origFn; - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; } - } - // 2. Copy user data - if ( dataUser.hasData( src ) ) { - udataOld = dataUser.access( src ); - udataCur = jQuery.extend( {}, udataOld ); + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, - dataUser.set( dest, udataCur ); + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } } -} +}); -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } } + return safeFrag; } -function domManip( collection, args, callback, ignored ) { +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /<tbody/i, + rhtml = /<|&#?\w+;/, + rnoInnerhtml = /<(?:script|style|link)/i, + // checked="checked" or checked + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + rscriptType = /^$|\/(?:java|ecma)script/i, + rscriptTypeMasked = /^true\/(.*)/, + rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + option: [ 1, "<select multiple='multiple'>", "</select>" ], + legend: [ 1, "<fieldset>", "</fieldset>" ], + area: [ 1, "<map>", "</map>" ], + param: [ 1, "<object>", "</object>" ], + thead: [ 1, "<table>", "</table>" ], + tr: [ 2, "<table><tbody>", "</tbody></table>" ], + col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ], + td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], + + // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, + // unless wrapped in a div with non-breaking characters in front of it. + _default: support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X<div>", "</div>" ] + }, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); - // Flatten any nested arrays - args = concat.apply( [], args ); +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; - var fragment, first, scripts, hasScripts, node, doc, +function getAll( context, tag ) { + var elems, elem, i = 0, - l = collection.length, - iNoClone = l - 1, - value = args[ 0 ], - isFunction = jQuery.isFunction( value ); + found = typeof context.getElementsByTagName !== strundefined ? context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== strundefined ? context.querySelectorAll( tag || "*" ) : + undefined; - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return collection.each( function( index ) { - var self = collection.eq( index ); - if ( isFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); + if ( !found ) { + for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { + if ( !tag || jQuery.nodeName( elem, tag ) ) { + found.push( elem ); + } else { + jQuery.merge( found, getAll( elem, tag ) ); } - domManip( self, args, callback, ignored ); - } ); + } } - if ( l ) { - fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); - first = fragment.firstChild; + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], found ) : + found; +} - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } +// Used in buildFragment, fixes the defaultChecked property +function fixDefaultChecked( elem ) { + if ( rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } +} + +// Support: IE<8 +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? - // Require either new content or an interest in ignored elements to invoke the callback - if ( first || ignored ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; + elem.getElementsByTagName("tbody")[0] || + elem.appendChild( elem.ownerDocument.createElement("tbody") ) : + elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + if ( match ) { + elem.type = match[1]; + } else { + elem.removeAttribute("type"); + } + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var elem, + i = 0; + for ( ; (elem = elems[i]) != null; i++ ) { + jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); + } +} - // Use the original fragment for the last item - // instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; +function cloneCopyEvent( src, dest ) { - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } + if ( events ) { + delete curData.handle; + curData.events = {}; - callback.call( collection[ i ], node, i ); + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); } + } + } + + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } +} - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; +function fixCloneNodeIssues( src, dest ) { + var nodeName, e, data; - // Reenable scripts - jQuery.map( scripts, restoreScript ); + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !dataPriv.access( node, "globalEval" ) && - jQuery.contains( doc, node ) ) { + nodeName = dest.nodeName.toLowerCase(); - if ( node.src ) { + // IE6-8 copies events bound via attachEvent when using cloneNode. + if ( !support.noCloneEvent && dest[ jQuery.expando ] ) { + data = jQuery._data( dest ); - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl ) { - jQuery._evalUrl( node.src ); - } - } else { - DOMEval( node.textContent.replace( rcleanScript, "" ), doc ); - } - } - } - } + for ( e in data.events ) { + jQuery.removeEvent( dest, e, data.handle ); } + + // Event data gets referenced instead of copied if the expando gets copied too + dest.removeAttribute( jQuery.expando ); } - return collection; -} + // IE blanks contents when cloning scripts, and tries to evaluate newly-set text + if ( nodeName === "script" && dest.text !== src.text ) { + disableScript( dest ).text = src.text; + restoreScript( dest ); -function remove( elem, selector, keepData ) { - var node, - nodes = selector ? jQuery.filter( selector, elem ) : elem, - i = 0; + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + } else if ( nodeName === "object" ) { + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } - for ( ; ( node = nodes[ i ] ) != null; i++ ) { - if ( !keepData && node.nodeType === 1 ) { - jQuery.cleanData( getAll( node ) ); + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { + dest.innerHTML = src.innerHTML; } - if ( node.parentNode ) { - if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { - setGlobalEval( getAll( node, "script" ) ); - } - node.parentNode.removeChild( node ); + } else if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + + dest.defaultChecked = dest.checked = src.checked; + + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; } - } - return elem; -} + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.defaultSelected = dest.selected = src.defaultSelected; -jQuery.extend( { - htmlPrefilter: function( html ) { - return html.replace( rxhtmlTag, "<$1></$2>" ); - }, + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} +jQuery.extend({ clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), + var destElements, node, clone, i, srcElements, inPage = jQuery.contains( elem.ownerDocument, elem ); - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { + if ( support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } - // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + if ( (!support.noCloneEvent || !support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 destElements = getAll( clone ); srcElements = getAll( elem ); - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); + // Fix all IE cloning issues + for ( i = 0; (node = srcElements[i]) != null; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + fixCloneNodeIssues( node, destElements[i] ); + } } } @@ -5846,8 +5516,8 @@ jQuery.extend( { srcElements = srcElements || getAll( elem ); destElements = destElements || getAll( clone ); - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + for ( i = 0; (node = srcElements[i]) != null; i++ ) { + cloneCopyEvent( node, destElements[i] ); } } else { cloneCopyEvent( elem, clone ); @@ -5860,18 +5530,154 @@ jQuery.extend( { setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); } + destElements = srcElements = node = null; + // Return the cloned set return clone; }, - cleanData: function( elems ) { - var data, elem, type, - special = jQuery.event.special, + buildFragment: function( elems, context, scripts, selection ) { + var j, elem, contains, + tmp, tag, tbody, wrap, + l = elems.length, + + // Ensure a safe fragment + safe = createSafeFragment( context ), + + nodes = [], i = 0; - for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { - if ( acceptData( elem ) ) { - if ( ( data = elem[ dataPriv.expando ] ) ) { + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || safe.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = (rtagName.exec( elem ) || [ "", "" ])[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + + tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[2]; + + // Descend through wrappers to the right content + j = wrap[0]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Manually add leading whitespace removed by IE + if ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); + } + + // Remove IE's autoinserted <tbody> from table fragments + if ( !support.tbody ) { + + // String was a <table>, *may* have spurious <tbody> + elem = tag === "table" && !rtbody.test( elem ) ? + tmp.firstChild : + + // String was a bare <thead> or <tfoot> + wrap[1] === "<table>" && !rtbody.test( elem ) ? + tmp : + 0; + + j = elem && elem.childNodes.length; + while ( j-- ) { + if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { + elem.removeChild( tbody ); + } + } + } + + jQuery.merge( nodes, tmp.childNodes ); + + // Fix #12392 for WebKit and IE > 9 + tmp.textContent = ""; + + // Fix #12392 for oldIE + while ( tmp.firstChild ) { + tmp.removeChild( tmp.firstChild ); + } + + // Remember the top-level container for proper cleanup + tmp = safe.lastChild; + } + } + } + + // Fix #11356: Clear elements from fragment + if ( tmp ) { + safe.removeChild( tmp ); + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !support.appendChecked ) { + jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); + } + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( safe.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + tmp = null; + + return safe; + }, + + cleanData: function( elems, /* internal */ acceptData ) { + var elem, type, id, data, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = support.deleteExpando, + special = jQuery.event.special; + + for ( ; (elem = elems[i]) != null; i++ ) { + if ( acceptData || jQuery.acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { if ( data.events ) { for ( type in data.events ) { if ( special[ type ] ) { @@ -5884,101 +5690,129 @@ jQuery.extend( { } } - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataPriv.expando ] = undefined; - } - if ( elem[ dataUser.expando ] ) { + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; + + } else if ( typeof elem.removeAttribute !== strundefined ) { + elem.removeAttribute( internalKey ); - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataUser.expando ] = undefined; + } else { + elem[ internalKey ] = null; + } + + deletedIds.push( id ); + } } } } } -} ); - -jQuery.fn.extend( { - detach: function( selector ) { - return remove( this, selector, true ); - }, - - remove: function( selector ) { - return remove( this, selector ); - }, +}); +jQuery.fn.extend({ text: function( value ) { return access( this, function( value ) { return value === undefined ? jQuery.text( this ) : - this.empty().each( function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - } ); + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); }, null, value, arguments.length ); }, append: function() { - return domManip( this, arguments, function( elem ) { + return this.domManip( arguments, function( elem ) { if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { var target = manipulationTarget( this, elem ); target.appendChild( elem ); } - } ); + }); }, prepend: function() { - return domManip( this, arguments, function( elem ) { + return this.domManip( arguments, function( elem ) { if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { var target = manipulationTarget( this, elem ); target.insertBefore( elem, target.firstChild ); } - } ); + }); }, before: function() { - return domManip( this, arguments, function( elem ) { + return this.domManip( arguments, function( elem ) { if ( this.parentNode ) { this.parentNode.insertBefore( elem, this ); } - } ); + }); }, after: function() { - return domManip( this, arguments, function( elem ) { + return this.domManip( arguments, function( elem ) { if ( this.parentNode ) { this.parentNode.insertBefore( elem, this.nextSibling ); } - } ); + }); }, - empty: function() { + remove: function( selector, keepData /* Internal Use Only */ ) { var elem, + elems = selector ? jQuery.filter( selector, this ) : this, i = 0; - for ( ; ( elem = this[ i ] ) != null; i++ ) { - if ( elem.nodeType === 1 ) { + for ( ; (elem = elems[i]) != null; i++ ) { - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } - // Remove any remaining nodes - elem.textContent = ""; + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); } } return this; }, - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + + // If this is a select, ensure that it displays empty (#12336) + // Support: IE<9 + if ( elem.options && jQuery.nodeName( elem, "select" ) ) { + elem.options.length = 0; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - return this.map( function() { + return this.map(function() { return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - } ); + }); }, html: function( value ) { @@ -5987,21 +5821,24 @@ jQuery.fn.extend( { i = 0, l = this.length; - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; } // See if we can take a shortcut and just use innerHTML if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + ( support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ (rtagName.exec( value ) || [ "", "" ])[ 1 ].toLowerCase() ] ) { - value = jQuery.htmlPrefilter( value ); + value = value.replace( rxhtmlTag, "<$1></$2>" ); try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - + for (; i < l; i++ ) { // Remove element nodes and prevent memory leaks + elem = this[i] || {}; if ( elem.nodeType === 1 ) { jQuery.cleanData( getAll( elem, false ) ); elem.innerHTML = value; @@ -6011,7 +5848,7 @@ jQuery.fn.extend( { elem = 0; // If using innerHTML throws an exception, use the fallback method - } catch ( e ) {} + } catch(e) {} } if ( elem ) { @@ -6021,25 +5858,117 @@ jQuery.fn.extend( { }, replaceWith: function() { - var ignored = []; + var arg = arguments[ 0 ]; + + // Make the changes, replacing each context element with the new content + this.domManip( arguments, function( elem ) { + arg = this.parentNode; + + jQuery.cleanData( getAll( this ) ); + + if ( arg ) { + arg.replaceChild( elem, this ); + } + }); + + // Force removal if there was no new content (e.g., from empty arguments) + return arg && (arg.length || arg.nodeType) ? this : this.remove(); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, callback ) { - // Make the changes, replacing each non-ignored context element with the new content - return domManip( this, arguments, function( elem ) { - var parent = this.parentNode; + // Flatten any nested arrays + args = concat.apply( [], args ); + + var first, node, hasScripts, + scripts, doc, fragment, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[0], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[0] = value.call( this, index, self.html() ); + } + self.domManip( args, callback ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( this[i], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { - if ( jQuery.inArray( this, ignored ) < 0 ) { - jQuery.cleanData( getAll( this ) ); - if ( parent ) { - parent.replaceChild( elem, this ); + if ( node.src ) { + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + } + } } + + // Fix #11809: Avoid leaking memory + fragment = first = null; } + } - // Force callback invocation - }, ignored ); + return this; } -} ); +}); -jQuery.each( { +jQuery.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", @@ -6048,289 +5977,570 @@ jQuery.each( { }, function( name, original ) { jQuery.fn[ name ] = function( selector ) { var elems, + i = 0, ret = [], insert = jQuery( selector ), - last = insert.length - 1, - i = 0; + last = insert.length - 1; for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); + elems = i === last ? this : this.clone(true); + jQuery( insert[i] )[ original ]( elems ); - // Support: Android <=4.0 only, PhantomJS 1 only - // .get() because push.apply(_, arraylike) throws on ancient WebKit + // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() push.apply( ret, elems.get() ); } return this.pushStack( ret ); }; -} ); -var rmargin = ( /^margin/ ); +}); -var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); -var getStyles = function( elem ) { +var iframe, + elemdisplay = {}; + +/** + * Retrieve the actual display of a element + * @param {String} name nodeName of the element + * @param {Object} doc Document object + */ +// Called only from within defaultDisplay +function actualDisplay( name, doc ) { + var style, + elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), + + // getDefaultComputedStyle might be reliably used only on attached element + display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? + + // Use of this method is a temporary fix (more like optmization) until something better comes along, + // since it was removed from specification and supported only in FF + style.display : jQuery.css( elem[ 0 ], "display" ); + + // We don't have any data stored on the element, + // so use "detach" method as fast way to get rid of the element + elem.detach(); + + return display; +} + +/** + * Try to determine the default display value of an element + * @param {String} nodeName + */ +function defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + + // Use the already-created iframe if possible + iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement ); - // Support: IE <=11 only, Firefox <=30 (#15098, #14150) - // IE throws on elements created in popups - // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" - var view = elem.ownerDocument.defaultView; + // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse + doc = ( iframe[ 0 ].contentWindow || iframe[ 0 ].contentDocument ).document; - if ( !view || !view.opener ) { - view = window; + // Support: IE + doc.write(); + doc.close(); + + display = actualDisplay( nodeName, doc ); + iframe.detach(); } - return view.getComputedStyle( elem ); - }; + // Store the correct default display + elemdisplay[ nodeName ] = display; + } + + return display; +} +(function() { + var shrinkWrapBlocksVal; -( function() { + support.shrinkWrapBlocks = function() { + if ( shrinkWrapBlocksVal != null ) { + return shrinkWrapBlocksVal; + } - // Executing both pixelPosition & boxSizingReliable tests require only one layout - // so they're executed at the same time to save the second computation. - function computeStyleTests() { + // Will be changed later if needed. + shrinkWrapBlocksVal = false; - // This is a singleton, we need to execute it only once - if ( !div ) { + // Minified: var b,c,d + var div, body, container; + + body = document.getElementsByTagName( "body" )[ 0 ]; + if ( !body || !body.style ) { + // Test fired too early or in an unsupported environment, exit. return; } - div.style.cssText = - "box-sizing:border-box;" + - "position:relative;display:block;" + - "margin:auto;border:1px;padding:1px;" + - "top:1%;width:50%"; - div.innerHTML = ""; - documentElement.appendChild( container ); + // Setup + div = document.createElement( "div" ); + container = document.createElement( "div" ); + container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"; + body.appendChild( container ).appendChild( div ); + + // Support: IE6 + // Check if elements with layout shrink-wrap their children + if ( typeof div.style.zoom !== strundefined ) { + // Reset CSS: box-sizing; display; margin; border + div.style.cssText = + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" + + "box-sizing:content-box;display:block;margin:0;border:0;" + + "padding:1px;width:1px;zoom:1"; + div.appendChild( document.createElement( "div" ) ).style.width = "5px"; + shrinkWrapBlocksVal = div.offsetWidth !== 3; + } + + body.removeChild( container ); + + return shrinkWrapBlocksVal; + }; - var divStyle = window.getComputedStyle( div ); - pixelPositionVal = divStyle.top !== "1%"; +})(); +var rmargin = (/^margin/); - // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 - reliableMarginLeftVal = divStyle.marginLeft === "2px"; - boxSizingReliableVal = divStyle.width === "4px"; +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); - // Support: Android 4.0 - 4.3 only - // Some styles come back with percentage values, even though they shouldn't - div.style.marginRight = "50%"; - pixelMarginRightVal = divStyle.marginRight === "4px"; - documentElement.removeChild( container ); - // Nullify the div so it wouldn't be stored in the memory and - // it will also be a sign that checks already performed - div = null; - } +var getStyles, curCSS, + rposition = /^(top|right|bottom|left)$/; - var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal, - container = document.createElement( "div" ), - div = document.createElement( "div" ); +if ( window.getComputedStyle ) { + getStyles = function( elem ) { + return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); + }; - // Finish early in limited (non-browser) environments - if ( !div.style ) { - return; - } + curCSS = function( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + style = elem.style; - // Support: IE <=9 - 11 only - // Style of cloned element affects source element cloned (#8908) - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; + computed = computed || getStyles( elem ); - container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + - "padding:0;margin-top:1px;position:absolute"; - container.appendChild( div ); + // getPropertyValue is only needed for .css('filter') in IE9, see #12537 + ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined; - jQuery.extend( support, { - pixelPosition: function() { - computeStyleTests(); - return pixelPositionVal; - }, - boxSizingReliable: function() { - computeStyleTests(); - return boxSizingReliableVal; - }, - pixelMarginRight: function() { - computeStyleTests(); - return pixelMarginRightVal; - }, - reliableMarginLeft: function() { - computeStyleTests(); - return reliableMarginLeftVal; - } - } ); -} )(); + if ( computed ) { + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; -function curCSS( elem, name, computed ) { - var width, minWidth, maxWidth, ret, + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; - // Support: Firefox 51+ - // Retrieving style before computed somehow - // fixes an issue with getting wrong values - // on detached elements - style = elem.style; + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + // Support: IE + // IE returns zIndex value as an integer. + return ret === undefined ? + ret : + ret + ""; + }; +} else if ( document.documentElement.currentStyle ) { + getStyles = function( elem ) { + return elem.currentStyle; + }; - computed = computed || getStyles( elem ); + curCSS = function( elem, name, computed ) { + var left, rs, rsLeft, ret, + style = elem.style; - // getPropertyValue is needed for: - // .css('filter') (IE 9 only, #12537) - // .css('--customProperty) (#3144) - if ( computed ) { - ret = computed.getPropertyValue( name ) || computed[ name ]; + computed = computed || getStyles( elem ); + ret = computed ? computed[ name ] : undefined; - if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { - ret = jQuery.style( elem, name ); + // Avoid setting ret to empty string here + // so we don't default to auto + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; } - // A tribute to the "awesome hack by Dean Edwards" - // Android Browser returns percentage for some values, - // but width seems to be reliably pixels. - // This is against the CSSOM draft spec: - // https://drafts.csswg.org/cssom/#resolved-values - if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) { + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; + left = style.left; + rs = elem.runtimeStyle; + rsLeft = rs && rs.left; // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; + if ( rsLeft ) { + rs.left = elem.currentStyle.left; + } + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; + style.left = left; + if ( rsLeft ) { + rs.left = rsLeft; + } } - } - - return ret !== undefined ? - // Support: IE <=9 - 11 only + // Support: IE // IE returns zIndex value as an integer. - ret + "" : - ret; + return ret === undefined ? + ret : + ret + "" || "auto"; + }; } -function addGetHookIf( conditionFn, hookFn ) { + +function addGetHookIf( conditionFn, hookFn ) { // Define the hook, we'll check on the first run if it's really needed. return { get: function() { - if ( conditionFn() ) { + var condition = conditionFn(); - // Hook not needed (or it's not possible to use it due - // to missing dependency), remove it. + if ( condition == null ) { + // The test was not ready at this point; screw the hook this time + // but check again when needed next time. + return; + } + + if ( condition ) { + // Hook not needed (or it's not possible to use it due to missing dependency), + // remove it. + // Since there are no other hooks for marginRight, remove the whole object. delete this.get; return; } // Hook needed; redefine it so that the support test is not executed again. - return ( this.get = hookFn ).apply( this, arguments ); + + return (this.get = hookFn).apply( this, arguments ); } }; } +(function() { + // Minified: var b,c,d,e,f,g, h,i + var div, style, a, pixelPositionVal, boxSizingReliableVal, + reliableHiddenOffsetsVal, reliableMarginRightVal; + + // Setup + div = document.createElement( "div" ); + div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; + a = div.getElementsByTagName( "a" )[ 0 ]; + style = a && a.style; + + // Finish early in limited (non-browser) environments + if ( !style ) { + return; + } + + style.cssText = "float:left;opacity:.5"; + + // Support: IE<9 + // Make sure that element opacity exists (as opposed to filter) + support.opacity = style.opacity === "0.5"; + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + support.cssFloat = !!style.cssFloat; + + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + support.boxSizing = style.boxSizing === "" || style.MozBoxSizing === "" || + style.WebkitBoxSizing === ""; + + jQuery.extend(support, { + reliableHiddenOffsets: function() { + if ( reliableHiddenOffsetsVal == null ) { + computeStyleTests(); + } + return reliableHiddenOffsetsVal; + }, + + boxSizingReliable: function() { + if ( boxSizingReliableVal == null ) { + computeStyleTests(); + } + return boxSizingReliableVal; + }, + + pixelPosition: function() { + if ( pixelPositionVal == null ) { + computeStyleTests(); + } + return pixelPositionVal; + }, + + // Support: Android 2.3 + reliableMarginRight: function() { + if ( reliableMarginRightVal == null ) { + computeStyleTests(); + } + return reliableMarginRightVal; + } + }); + + function computeStyleTests() { + // Minified: var b,c,d,j + var div, body, container, contents; + + body = document.getElementsByTagName( "body" )[ 0 ]; + if ( !body || !body.style ) { + // Test fired too early or in an unsupported environment, exit. + return; + } + + // Setup + div = document.createElement( "div" ); + container = document.createElement( "div" ); + container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"; + body.appendChild( container ).appendChild( div ); + + div.style.cssText = + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" + + "box-sizing:border-box;display:block;margin-top:1%;top:1%;" + + "border:1px;padding:1px;width:4px;position:absolute"; + + // Support: IE<9 + // Assume reasonable values in the absence of getComputedStyle + pixelPositionVal = boxSizingReliableVal = false; + reliableMarginRightVal = true; + + // Check for getComputedStyle so that this code is not run in IE<9. + if ( window.getComputedStyle ) { + pixelPositionVal = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; + boxSizingReliableVal = + ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; + + // Support: Android 2.3 + // Div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container (#3333) + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + contents = div.appendChild( document.createElement( "div" ) ); + + // Reset CSS: box-sizing; display; margin; border; padding + contents.style.cssText = div.style.cssText = + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" + + "box-sizing:content-box;display:block;margin:0;border:0;padding:0"; + contents.style.marginRight = contents.style.width = "0"; + div.style.width = "1px"; + + reliableMarginRightVal = + !parseFloat( ( window.getComputedStyle( contents, null ) || {} ).marginRight ); + } + + // Support: IE8 + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>"; + contents = div.getElementsByTagName( "td" ); + contents[ 0 ].style.cssText = "margin:0;border:0;padding:0;display:none"; + reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0; + if ( reliableHiddenOffsetsVal ) { + contents[ 0 ].style.display = ""; + contents[ 1 ].style.display = "none"; + reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0; + } + + body.removeChild( container ); + } + +})(); + + +// A method for quickly swapping in/out CSS properties to get correct calculations. +jQuery.swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + var + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity\s*=\s*([^)]*)/, - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rcustomProp = /^--/, + rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ), + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, cssNormalTransform = { letterSpacing: "0", fontWeight: "400" }, - cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style; + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; + -// Return a css property mapped to a potentially vendor prefixed property -function vendorPropName( name ) { +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { - // Shortcut for names that are not vendor prefixed - if ( name in emptyStyle ) { + // shortcut for names that are not vendor prefixed + if ( name in style ) { return name; } - // Check for vendor prefixed names - var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + // check for vendor prefixed names + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, i = cssPrefixes.length; while ( i-- ) { name = cssPrefixes[ i ] + capName; - if ( name in emptyStyle ) { + if ( name in style ) { return name; } } + + return origName; } -// Return a property mapped along what jQuery.cssProps suggests or to -// a vendor prefixed property. -function finalPropName( name ) { - var ret = jQuery.cssProps[ name ]; - if ( !ret ) { - ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = jQuery._data( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) ); + } + } else { + hidden = isHidden( elem ); + + if ( display && display !== "none" || !hidden ) { + jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } } - return ret; + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; } function setPositiveNumber( elem, value, subtract ) { - - // Any relative (+/-) values have already been - // normalized at this point - var matches = rcssNum.exec( value ); + var matches = rnumsplit.exec( value ); return matches ? - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : value; } function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { - var i, - val = 0; + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, - // If we already have the right measurement, avoid augmentation - if ( extra === ( isBorderBox ? "border" : "content" ) ) { - i = 4; - - // Otherwise initialize for horizontal or vertical properties - } else { - i = name === "width" ? 1 : 0; - } + val = 0; for ( ; i < 4; i += 2 ) { - - // Both box models exclude margin, so add it if we want it + // both box models exclude margin, so add it if we want it if ( extra === "margin" ) { val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); } if ( isBorderBox ) { - // border-box includes padding, so remove it if we want content if ( extra === "content" ) { val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); } - // At this point, extra isn't border nor margin, so remove border + // at this point, extra isn't border nor margin, so remove border if ( extra !== "margin" ) { val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); } } else { - - // At this point, extra isn't content, so add padding + // at this point, extra isn't content, so add padding val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - // At this point, extra isn't content nor padding, so add border + // at this point, extra isn't content nor padding, so add border if ( extra !== "padding" ) { val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); } @@ -6342,32 +6552,36 @@ function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { function getWidthOrHeight( elem, name, extra ) { - // Start with computed style - var valueIsBorderBox, + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, styles = getStyles( elem ), - val = curCSS( elem, name, styles ), - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + isBorderBox = support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - // Computed unit is not pixels. Stop here and return. - if ( rnumnonpx.test( val ) ) { - return val; - } + // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } - // Check for style in case a browser which returns unreliable values - // for getComputedStyle silently falls back to the reliable elem.style - valueIsBorderBox = isBorderBox && - ( support.boxSizingReliable() || val === elem.style[ name ] ); + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } - // Fall back to offsetWidth/Height when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - if ( val === "auto" ) { - val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ]; - } + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && ( support.boxSizingReliable() || val === elem.style[ name ] ); - // Normalize "", auto, and prepare for extra - val = parseFloat( val ) || 0; + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } - // Use the active box-sizing model to add/subtract irrelevant styles + // use the active box-sizing model to add/subtract irrelevant styles return ( val + augmentWidthOrHeight( elem, @@ -6379,15 +6593,13 @@ function getWidthOrHeight( elem, name, extra ) { ) + "px"; } -jQuery.extend( { - +jQuery.extend({ // Add in style property hooks for overriding the default // behavior of getting and setting a style property cssHooks: { opacity: { get: function( elem, computed ) { if ( computed ) { - // We should always get a number back from opacity var ret = curCSS( elem, "opacity" ); return ret === "" ? "1" : ret; @@ -6398,7 +6610,6 @@ jQuery.extend( { // Don't automatically add "px" to these possibly-unitless properties cssNumber: { - "animationIterationCount": true, "columnCount": true, "fillOpacity": true, "flexGrow": true, @@ -6416,12 +6627,12 @@ jQuery.extend( { // Add in properties whose names you wish to fix before // setting or getting the value cssProps: { - "float": "cssFloat" + // normalize float css property + "float": support.cssFloat ? "cssFloat" : "styleFloat" }, // Get and set the style property on a DOM Node style: function( elem, name, value, extra ) { - // Don't set styles on text and comment nodes if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { return; @@ -6430,63 +6641,54 @@ jQuery.extend( { // Make sure that we're working with the right name var ret, type, hooks, origName = jQuery.camelCase( name ), - isCustomProp = rcustomProp.test( name ), style = elem.style; - // Make sure that we're working with the right name. We don't - // want to query the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); - // Gets hook for the prefixed version, then unprefixed version + // gets hook for the prefixed version + // followed by the unprefixed version hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; // Check if we're setting a value if ( value !== undefined ) { type = typeof value; - // Convert "+=" or "-=" to relative numbers (#7345) - if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { - value = adjustCSS( elem, name, ret ); - + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); // Fixes bug #9237 type = "number"; } - // Make sure that null and NaN values aren't set (#7116) + // Make sure that null and NaN values aren't set. See: #7116 if ( value == null || value !== value ) { return; } - // If a number was passed in, add the unit (except for certain CSS properties) - if ( type === "number" ) { - value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; } - // background-* props affect original clone's values - if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, + // but it would mean to define eight (for every problematic property) identical functions + if ( !support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { style[ name ] = "inherit"; } // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !( "set" in hooks ) || - ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { - if ( isCustomProp ) { - style.setProperty( name, value ); - } else { + // Support: IE + // Swallow errors from 'invalid' CSS values (#5509) + try { style[ name ] = value; - } + } catch(e) {} } } else { - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && - ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { - + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { return ret; } @@ -6496,18 +6698,14 @@ jQuery.extend( { }, css: function( elem, name, extra, styles ) { - var val, num, hooks, - origName = jQuery.camelCase( name ), - isCustomProp = rcustomProp.test( name ); + var num, val, hooks, + origName = jQuery.camelCase( name ); - // Make sure that we're working with the right name. We don't - // want to modify the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); - // Try prefixed name followed by the unprefixed name + // gets hook for the prefixed version + // followed by the unprefixed version hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; // If a hook was provided get the computed value from there @@ -6520,83 +6718,106 @@ jQuery.extend( { val = curCSS( elem, name, styles ); } - // Convert "normal" to computed value + //convert "normal" to computed value if ( val === "normal" && name in cssNormalTransform ) { val = cssNormalTransform[ name ]; } - // Make numeric if forced or a qualifier was provided and val looks numeric + // Return, converting to number if forced or a qualifier was provided and val looks numeric if ( extra === "" || extra ) { num = parseFloat( val ); - return extra === true || isFinite( num ) ? num || 0 : val; + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; } - return val; } -} ); +}); -jQuery.each( [ "height", "width" ], function( i, name ) { +jQuery.each([ "height", "width" ], function( i, name ) { jQuery.cssHooks[ name ] = { get: function( elem, computed, extra ) { if ( computed ) { - - // Certain elements can have dimension info if we invisibly show them - // but it must have a current display style that would benefit - return rdisplayswap.test( jQuery.css( elem, "display" ) ) && - - // Support: Safari 8+ - // Table columns in Safari have non-zero offsetWidth & zero - // getBoundingClientRect().width unless display is changed. - // Support: IE <=11 only - // Running getBoundingClientRect on a disconnected node - // in IE throws an error. - ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, name, extra ); - } ) : - getWidthOrHeight( elem, name, extra ); + // certain elements can have dimension info if we invisibly show them + // however, it must have a current display style that would benefit from this + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && elem.offsetWidth === 0 ? + jQuery.swap( elem, cssShow, function() { + return getWidthOrHeight( elem, name, extra ); + }) : + getWidthOrHeight( elem, name, extra ); } }, set: function( elem, value, extra ) { - var matches, - styles = extra && getStyles( elem ), - subtract = extra && augmentWidthOrHeight( + var styles = extra && getStyles( elem ); + return setPositiveNumber( elem, value, extra ? + augmentWidthOrHeight( elem, name, extra, - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box", styles - ); + ) : 0 + ); + } + }; +}); + +if ( !support.opacity ) { + jQuery.cssHooks.opacity = { + get: function( elem, computed ) { + // IE uses filters for opacity + return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ? + ( 0.01 * parseFloat( RegExp.$1 ) ) + "" : + computed ? "1" : ""; + }, + + set: function( elem, value ) { + var style = elem.style, + currentStyle = elem.currentStyle, + opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "", + filter = currentStyle && currentStyle.filter || style.filter || ""; + + // IE has trouble with opacity if it does not have layout + // Force it by setting the zoom level + style.zoom = 1; - // Convert to pixels if value adjustment is needed - if ( subtract && ( matches = rcssNum.exec( value ) ) && - ( matches[ 3 ] || "px" ) !== "px" ) { + // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652 + // if value === "", then remove inline opacity #12685 + if ( ( value >= 1 || value === "" ) && + jQuery.trim( filter.replace( ralpha, "" ) ) === "" && + style.removeAttribute ) { - elem.style[ name ] = value; - value = jQuery.css( elem, name ); + // Setting style.filter to null, "" & " " still leave "filter:" in the cssText + // if "filter:" is present at all, clearType is disabled, we want to avoid this + // style.removeAttribute is IE Only, but so apparently is this code path... + style.removeAttribute( "filter" ); + + // if there is no filter style applied in a css rule or unset inline opacity, we are done + if ( value === "" || currentStyle && !currentStyle.filter ) { + return; + } } - return setPositiveNumber( elem, value, subtract ); + // otherwise, set new filter values + style.filter = ralpha.test( filter ) ? + filter.replace( ralpha, opacity ) : + filter + " " + opacity; } }; -} ); +} -jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, +jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight, function( elem, computed ) { if ( computed ) { - return ( parseFloat( curCSS( elem, "marginLeft" ) ) || - elem.getBoundingClientRect().left - - swap( elem, { marginLeft: 0 }, function() { - return elem.getBoundingClientRect().left; - } ) - ) + "px"; + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + // Work around by temporarily setting element display to inline-block + return jQuery.swap( elem, { "display": "inline-block" }, + curCSS, [ elem, "marginRight" ] ); } } ); // These hooks are used by animate to expand properties -jQuery.each( { +jQuery.each({ margin: "", padding: "", border: "Width" @@ -6606,8 +6827,8 @@ jQuery.each( { var i = 0, expanded = {}, - // Assumes a single number if not a string - parts = typeof value === "string" ? value.split( " " ) : [ value ]; + // assumes a single number if not a string + parts = typeof value === "string" ? value.split(" ") : [ value ]; for ( ; i < 4; i++ ) { expanded[ prefix + cssExpand[ i ] + suffix ] = @@ -6621,16 +6842,16 @@ jQuery.each( { if ( !rmargin.test( prefix ) ) { jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; } -} ); +}); -jQuery.fn.extend( { +jQuery.fn.extend({ css: function( name, value ) { return access( this, function( elem, name, value ) { var styles, len, map = {}, i = 0; - if ( Array.isArray( name ) ) { + if ( jQuery.isArray( name ) ) { styles = getStyles( elem ); len = name.length; @@ -6645,8 +6866,27 @@ jQuery.fn.extend( { jQuery.style( elem, name, value ) : jQuery.css( elem, name ); }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each(function() { + if ( isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); } -} ); +}); function Tween( elem, options, prop, end, easing ) { @@ -6659,7 +6899,7 @@ Tween.prototype = { init: function( elem, options, prop, end, easing, unit ) { this.elem = elem; this.prop = prop; - this.easing = easing || jQuery.easing._default; + this.easing = easing || "swing"; this.options = options; this.start = this.now = this.cur(); this.end = end; @@ -6705,32 +6945,25 @@ Tween.propHooks = { get: function( tween ) { var result; - // Use a property on the element directly when it is not a DOM element, - // or when there is no matching style property that exists. - if ( tween.elem.nodeType !== 1 || - tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + if ( tween.elem[ tween.prop ] != null && + (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) { return tween.elem[ tween.prop ]; } - // Passing an empty string as a 3rd parameter to .css will automatically - // attempt a parseFloat and fallback to a string if the parse fails. - // Simple values such as "10px" are parsed to Float; - // complex values such as "rotate(1rad)" are returned as-is. + // passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails + // so, simple values such as "10px" are parsed to Float. + // complex values such as "rotate(1rad)" are returned as is. result = jQuery.css( tween.elem, tween.prop, "" ); - // Empty strings, null, undefined and "auto" are converted to 0. return !result || result === "auto" ? 0 : result; }, set: function( tween ) { - - // Use step hook for back compat. - // Use cssHook if its there. - // Use .style if available and use plain properties where available. + // use step hook for back compat - use cssHook if its there - use .style if its + // available and use plain properties where available if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && - ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || - jQuery.cssHooks[ tween.prop ] ) ) { + } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { tween.elem[ tween.prop ] = tween.now; @@ -6739,8 +6972,9 @@ Tween.propHooks = { } }; -// Support: IE <=9 only +// Support: IE <=9 // Panic based approach to setting things on disconnected nodes + Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { set: function( tween ) { if ( tween.elem.nodeType && tween.elem.parentNode ) { @@ -6755,53 +6989,92 @@ jQuery.easing = { }, swing: function( p ) { return 0.5 - Math.cos( p * Math.PI ) / 2; - }, - _default: "swing" + } }; jQuery.fx = Tween.prototype.init; -// Back compat <1.8 extension point +// Back Compat <1.8 extension point jQuery.fx.step = {}; var - fxNow, inProgress, + fxNow, timerId, rfxtypes = /^(?:toggle|show|hide)$/, - rrun = /queueHooks$/; + rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ), + rrun = /queueHooks$/, + animationPrefilters = [ defaultPrefilter ], + tweeners = { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ), + target = tween.cur(), + parts = rfxnum.exec( value ), + unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), -function schedule() { - if ( inProgress ) { - if ( document.hidden === false && window.requestAnimationFrame ) { - window.requestAnimationFrame( schedule ); - } else { - window.setTimeout( schedule, jQuery.fx.interval ); - } + // Starting value computation is required for potential unit mismatches + start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) && + rfxnum.exec( jQuery.css( tween.elem, prop ) ), + scale = 1, + maxIterations = 20; - jQuery.fx.tick(); - } -} + if ( start && start[ 3 ] !== unit ) { + // Trust units reported by jQuery.css + unit = unit || start[ 3 ]; + + // Make sure we update the tween properties later on + parts = parts || []; + + // Iteratively approximate from a nonzero starting point + start = +target || 1; + + do { + // If previous iteration zeroed out, double until we get *something* + // Use a string for doubling factor so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + + // Adjust and apply + start = start / scale; + jQuery.style( tween.elem, prop, start + unit ); + + // Update scale, tolerating zero or NaN from tween.cur() + // And breaking the loop if scale is unchanged or perfect, or if we've just had enough + } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations ); + } + + // Update tween properties + if ( parts ) { + start = tween.start = +start || +target || 0; + tween.unit = unit; + // If a +=/-= token was provided, we're doing a relative animation + tween.end = parts[ 1 ] ? + start + ( parts[ 1 ] + 1 ) * parts[ 2 ] : + +parts[ 2 ]; + } + + return tween; + } ] + }; // Animations created synchronously will run synchronously function createFxNow() { - window.setTimeout( function() { + setTimeout(function() { fxNow = undefined; - } ); + }); return ( fxNow = jQuery.now() ); } // Generate parameters to create a standard animation function genFx( type, includeWidth ) { var which, - i = 0, - attrs = { height: type }; + attrs = { height: type }, + i = 0; - // If we include width, step value is 1 to do all cssExpand values, - // otherwise step value is 2 to skip over Left and Right + // if we include width, step value is 1 to do all cssExpand values, + // if we don't include width, step value is 2 to skip over Left and Right includeWidth = includeWidth ? 1 : 0; - for ( ; i < 4; i += 2 - includeWidth ) { + for ( ; i < 4 ; i += 2 - includeWidth ) { which = cssExpand[ i ]; attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; } @@ -6815,28 +7088,28 @@ function genFx( type, includeWidth ) { function createTween( value, prop, animation ) { var tween, - collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ), index = 0, length = collection.length; for ( ; index < length; index++ ) { - if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + if ( (tween = collection[ index ].call( animation, prop, value )) ) { - // We're done with this property + // we're done with this property return tween; } } } function defaultPrefilter( elem, props, opts ) { - var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, - isBox = "width" in props || "height" in props, + /* jshint validthis: true */ + var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay, anim = this, orig = {}, style = elem.style, - hidden = elem.nodeType && isHiddenWithinTree( elem ), - dataShow = dataPriv.get( elem, "fxshow" ); + hidden = elem.nodeType && isHidden( elem ), + dataShow = jQuery._data( elem, "fxshow" ); - // Queue-skipping animations hijack the fx hooks + // handle queue: false promises if ( !opts.queue ) { hooks = jQuery._queueHooks( elem, "fx" ); if ( hooks.unqueued == null ) { @@ -6850,151 +7123,122 @@ function defaultPrefilter( elem, props, opts ) { } hooks.unqueued++; - anim.always( function() { - - // Ensure the complete handler is called before this completes - anim.always( function() { + anim.always(function() { + // doing this makes sure that the complete handler will be called + // before this completes + anim.always(function() { hooks.unqueued--; if ( !jQuery.queue( elem, "fx" ).length ) { hooks.empty.fire(); } - } ); - } ); + }); + }); + } + + // height/width overflow pass + if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) { + // Make sure that nothing sneaks out + // Record all 3 overflow attributes because IE does not + // change the overflow attribute when overflowX and + // overflowY are set to the same value + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Set display property to inline-block for height/width + // animations on inline elements that are having width/height animated + display = jQuery.css( elem, "display" ); + + // Test default display if display is currently "none" + checkDisplay = display === "none" ? + jQuery._data( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display; + + if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) { + + // inline-level elements accept inline-block; + // block-level elements need to be inline with layout + if ( !support.inlineBlockNeedsLayout || defaultDisplay( elem.nodeName ) === "inline" ) { + style.display = "inline-block"; + } else { + style.zoom = 1; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + if ( !support.shrinkWrapBlocks() ) { + anim.always(function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + }); + } } - // Detect show/hide animations + // show/hide pass for ( prop in props ) { value = props[ prop ]; - if ( rfxtypes.test( value ) ) { + if ( rfxtypes.exec( value ) ) { delete props[ prop ]; toggle = toggle || value === "toggle"; if ( value === ( hidden ? "hide" : "show" ) ) { - // Pretend to be hidden if this is a "show" and - // there is still data from a stopped show/hide + // If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { hidden = true; - - // Ignore all other no-op show/hide data } else { continue; } } orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); - } - } - - // Bail out if this is a no-op like .hide().hide() - propTween = !jQuery.isEmptyObject( props ); - if ( !propTween && jQuery.isEmptyObject( orig ) ) { - return; - } - - // Restrict "overflow" and "display" styles during box animations - if ( isBox && elem.nodeType === 1 ) { - // Support: IE <=9 - 11, Edge 12 - 13 - // Record all 3 overflow attributes because IE does not infer the shorthand - // from identically-valued overflowX and overflowY - opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; - - // Identify a display type, preferring old show/hide data over the CSS cascade - restoreDisplay = dataShow && dataShow.display; - if ( restoreDisplay == null ) { - restoreDisplay = dataPriv.get( elem, "display" ); + // Any non-fx value stops us from restoring the original display value + } else { + display = undefined; } - display = jQuery.css( elem, "display" ); - if ( display === "none" ) { - if ( restoreDisplay ) { - display = restoreDisplay; - } else { + } - // Get nonempty value(s) by temporarily forcing visibility - showHide( [ elem ], true ); - restoreDisplay = elem.style.display || restoreDisplay; - display = jQuery.css( elem, "display" ); - showHide( [ elem ] ); + if ( !jQuery.isEmptyObject( orig ) ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; } + } else { + dataShow = jQuery._data( elem, "fxshow", {} ); } - // Animate inline elements as inline-block - if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { - if ( jQuery.css( elem, "float" ) === "none" ) { - - // Restore the original display value at the end of pure show/hide animations - if ( !propTween ) { - anim.done( function() { - style.display = restoreDisplay; - } ); - if ( restoreDisplay == null ) { - display = style.display; - restoreDisplay = display === "none" ? "" : display; - } - } - style.display = "inline-block"; - } + // store state if its toggle - enables .stop().toggle() to "reverse" + if ( toggle ) { + dataShow.hidden = !hidden; } - } - - if ( opts.overflow ) { - style.overflow = "hidden"; - anim.always( function() { - style.overflow = opts.overflow[ 0 ]; - style.overflowX = opts.overflow[ 1 ]; - style.overflowY = opts.overflow[ 2 ]; - } ); - } - - // Implement show/hide animations - propTween = false; - for ( prop in orig ) { - - // General show/hide setup for this element animation - if ( !propTween ) { - if ( dataShow ) { - if ( "hidden" in dataShow ) { - hidden = dataShow.hidden; - } - } else { - dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); - } - - // Store hidden/visible for toggle so `.stop().toggle()` "reverses" - if ( toggle ) { - dataShow.hidden = !hidden; - } - - // Show elements before animating them - if ( hidden ) { - showHide( [ elem ], true ); + if ( hidden ) { + jQuery( elem ).show(); + } else { + anim.done(function() { + jQuery( elem ).hide(); + }); + } + anim.done(function() { + var prop; + jQuery._removeData( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); } + }); + for ( prop in orig ) { + tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - /* eslint-disable no-loop-func */ - - anim.done( function() { - - /* eslint-enable no-loop-func */ - - // The final step of a "hide" animation is actually hiding the element - if ( !hidden ) { - showHide( [ elem ] ); - } - dataPriv.remove( elem, "fxshow" ); - for ( prop in orig ) { - jQuery.style( elem, prop, orig[ prop ] ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = tween.start; + if ( hidden ) { + tween.end = tween.start; + tween.start = prop === "width" || prop === "height" ? 1 : 0; } - } ); - } - - // Per-property setup - propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - if ( !( prop in dataShow ) ) { - dataShow[ prop ] = propTween.start; - if ( hidden ) { - propTween.end = propTween.start; - propTween.start = 0; } } + + // If this is a noop like .hide().hide(), restore an overwritten display value + } else if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" ) { + style.display = display; } } @@ -7006,7 +7250,7 @@ function propFilter( props, specialEasing ) { name = jQuery.camelCase( index ); easing = specialEasing[ name ]; value = props[ index ]; - if ( Array.isArray( value ) ) { + if ( jQuery.isArray( value ) ) { easing = value[ 1 ]; value = props[ index ] = value[ 0 ]; } @@ -7021,8 +7265,8 @@ function propFilter( props, specialEasing ) { value = hooks.expand( value ); delete props[ name ]; - // Not quite $.extend, this won't overwrite existing keys. - // Reusing 'index' because we have the correct "name" + // not quite $.extend, this wont overwrite keys already present. + // also - reusing 'index' from above because we have the correct "name" for ( index in value ) { if ( !( index in props ) ) { props[ index ] = value[ index ]; @@ -7039,53 +7283,40 @@ function Animation( elem, properties, options ) { var result, stopped, index = 0, - length = Animation.prefilters.length, + length = animationPrefilters.length, deferred = jQuery.Deferred().always( function() { - - // Don't match elem in the :animated selector + // don't match elem in the :animated selector delete tick.elem; - } ), + }), tick = function() { if ( stopped ) { return false; } var currentTime = fxNow || createFxNow(), remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), - - // Support: Android 2.3 only - // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + // archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497) temp = remaining / animation.duration || 0, percent = 1 - temp, index = 0, length = animation.tweens.length; - for ( ; index < length; index++ ) { + for ( ; index < length ; index++ ) { animation.tweens[ index ].run( percent ); } - deferred.notifyWith( elem, [ animation, percent, remaining ] ); + deferred.notifyWith( elem, [ animation, percent, remaining ]); - // If there's more to do, yield if ( percent < 1 && length ) { return remaining; + } else { + deferred.resolveWith( elem, [ animation ] ); + return false; } - - // If this was an empty animation, synthesize a final progress notification - if ( !length ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - } - - // Resolve the animation and report its conclusion - deferred.resolveWith( elem, [ animation ] ); - return false; }, - animation = deferred.promise( { + animation = deferred.promise({ elem: elem, props: jQuery.extend( {}, properties ), - opts: jQuery.extend( true, { - specialEasing: {}, - easing: jQuery.easing._default - }, options ), + opts: jQuery.extend( true, { specialEasing: {} }, options ), originalProperties: properties, originalOptions: options, startTime: fxNow || createFxNow(), @@ -7099,39 +7330,34 @@ function Animation( elem, properties, options ) { }, stop: function( gotoEnd ) { var index = 0, - - // If we are going to the end, we want to run all the tweens + // if we are going to the end, we want to run all the tweens // otherwise we skip this part length = gotoEnd ? animation.tweens.length : 0; if ( stopped ) { return this; } stopped = true; - for ( ; index < length; index++ ) { + for ( ; index < length ; index++ ) { animation.tweens[ index ].run( 1 ); } - // Resolve when we played the last frame; otherwise, reject + // resolve when we played the last frame + // otherwise, reject if ( gotoEnd ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); deferred.resolveWith( elem, [ animation, gotoEnd ] ); } else { deferred.rejectWith( elem, [ animation, gotoEnd ] ); } return this; } - } ), + }), props = animation.props; propFilter( props, animation.opts.specialEasing ); - for ( ; index < length; index++ ) { - result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + for ( ; index < length ; index++ ) { + result = animationPrefilters[ index ].call( animation, elem, props, animation.opts ); if ( result ) { - if ( jQuery.isFunction( result.stop ) ) { - jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = - jQuery.proxy( result.stop, result ); - } return result; } } @@ -7142,63 +7368,49 @@ function Animation( elem, properties, options ) { animation.opts.start.call( elem, animation ); } - // Attach callbacks from options - animation - .progress( animation.opts.progress ) - .done( animation.opts.done, animation.opts.complete ) - .fail( animation.opts.fail ) - .always( animation.opts.always ); - jQuery.fx.timer( jQuery.extend( tick, { elem: elem, anim: animation, queue: animation.opts.queue - } ) + }) ); - return animation; + // attach callbacks from options + return animation.progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); } jQuery.Animation = jQuery.extend( Animation, { - - tweeners: { - "*": [ function( prop, value ) { - var tween = this.createTween( prop, value ); - adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); - return tween; - } ] - }, - tweener: function( props, callback ) { if ( jQuery.isFunction( props ) ) { callback = props; props = [ "*" ]; } else { - props = props.match( rnothtmlwhite ); + props = props.split(" "); } var prop, index = 0, length = props.length; - for ( ; index < length; index++ ) { + for ( ; index < length ; index++ ) { prop = props[ index ]; - Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; - Animation.tweeners[ prop ].unshift( callback ); + tweeners[ prop ] = tweeners[ prop ] || []; + tweeners[ prop ].unshift( callback ); } }, - prefilters: [ defaultPrefilter ], - prefilter: function( callback, prepend ) { if ( prepend ) { - Animation.prefilters.unshift( callback ); + animationPrefilters.unshift( callback ); } else { - Animation.prefilters.push( callback ); + animationPrefilters.push( callback ); } } -} ); +}); jQuery.speed = function( speed, easing, fn ) { var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { @@ -7208,22 +7420,10 @@ jQuery.speed = function( speed, easing, fn ) { easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing }; - // Go to the end state if fx are off - if ( jQuery.fx.off ) { - opt.duration = 0; - - } else { - if ( typeof opt.duration !== "number" ) { - if ( opt.duration in jQuery.fx.speeds ) { - opt.duration = jQuery.fx.speeds[ opt.duration ]; - - } else { - opt.duration = jQuery.fx.speeds._default; - } - } - } + opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : + opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; - // Normalize opt.queue - true/undefined/null -> "fx" + // normalize opt.queue - true/undefined/null -> "fx" if ( opt.queue == null || opt.queue === true ) { opt.queue = "fx"; } @@ -7244,25 +7444,24 @@ jQuery.speed = function( speed, easing, fn ) { return opt; }; -jQuery.fn.extend( { +jQuery.fn.extend({ fadeTo: function( speed, to, easing, callback ) { - // Show any hidden elements after setting opacity to 0 - return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + // show any hidden elements after setting opacity to 0 + return this.filter( isHidden ).css( "opacity", 0 ).show() - // Animate to the value specified - .end().animate( { opacity: to }, speed, easing, callback ); + // animate to the value specified + .end().animate({ opacity: to }, speed, easing, callback ); }, animate: function( prop, speed, easing, callback ) { var empty = jQuery.isEmptyObject( prop ), optall = jQuery.speed( speed, easing, callback ), doAnimation = function() { - // Operate on a copy of prop so per-property easing won't be lost var anim = Animation( this, jQuery.extend( {}, prop ), optall ); // Empty animations, or finishing resolves immediately - if ( empty || dataPriv.get( this, "finish" ) ) { + if ( empty || jQuery._data( this, "finish" ) ) { anim.stop( true ); } }; @@ -7288,11 +7487,11 @@ jQuery.fn.extend( { this.queue( type || "fx", [] ); } - return this.each( function() { + return this.each(function() { var dequeue = true, index = type != null && type + "queueHooks", timers = jQuery.timers, - data = dataPriv.get( this ); + data = jQuery._data( this ); if ( index ) { if ( data[ index ] && data[ index ].stop ) { @@ -7307,46 +7506,44 @@ jQuery.fn.extend( { } for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && - ( type == null || timers[ index ].queue === type ) ) { - + if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { timers[ index ].anim.stop( gotoEnd ); dequeue = false; timers.splice( index, 1 ); } } - // Start the next in the queue if the last step wasn't forced. - // Timers currently will call their complete callbacks, which - // will dequeue but only if they were gotoEnd. + // start the next in the queue if the last step wasn't forced + // timers currently will call their complete callbacks, which will dequeue + // but only if they were gotoEnd if ( dequeue || !gotoEnd ) { jQuery.dequeue( this, type ); } - } ); + }); }, finish: function( type ) { if ( type !== false ) { type = type || "fx"; } - return this.each( function() { + return this.each(function() { var index, - data = dataPriv.get( this ), + data = jQuery._data( this ), queue = data[ type + "queue" ], hooks = data[ type + "queueHooks" ], timers = jQuery.timers, length = queue ? queue.length : 0; - // Enable finishing flag on private data + // enable finishing flag on private data data.finish = true; - // Empty the queue first + // empty the queue first jQuery.queue( this, type, [] ); if ( hooks && hooks.stop ) { hooks.stop.call( this, true ); } - // Look for any active animations, and finish them + // look for any active animations, and finish them for ( index = timers.length; index--; ) { if ( timers[ index ].elem === this && timers[ index ].queue === type ) { timers[ index ].anim.stop( true ); @@ -7354,33 +7551,33 @@ jQuery.fn.extend( { } } - // Look for any animations in the old queue and finish them + // look for any animations in the old queue and finish them for ( index = 0; index < length; index++ ) { if ( queue[ index ] && queue[ index ].finish ) { queue[ index ].finish.call( this ); } } - // Turn off finishing flag + // turn off finishing flag delete data.finish; - } ); + }); } -} ); +}); -jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { +jQuery.each([ "toggle", "show", "hide" ], function( i, name ) { var cssFn = jQuery.fn[ name ]; jQuery.fn[ name ] = function( speed, easing, callback ) { return speed == null || typeof speed === "boolean" ? cssFn.apply( this, arguments ) : this.animate( genFx( name, true ), speed, easing, callback ); }; -} ); +}); // Generate shortcuts for custom animations -jQuery.each( { - slideDown: genFx( "show" ), - slideUp: genFx( "hide" ), - slideToggle: genFx( "toggle" ), +jQuery.each({ + slideDown: genFx("show"), + slideUp: genFx("hide"), + slideToggle: genFx("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } @@ -7388,20 +7585,19 @@ jQuery.each( { jQuery.fn[ name ] = function( speed, easing, callback ) { return this.animate( props, speed, easing, callback ); }; -} ); +}); jQuery.timers = []; jQuery.fx.tick = function() { var timer, - i = 0, - timers = jQuery.timers; + timers = jQuery.timers, + i = 0; fxNow = jQuery.now(); for ( ; i < timers.length; i++ ) { timer = timers[ i ]; - - // Run the timer and safely remove it when done (allowing for external removal) + // Checks the timer has not already been removed if ( !timer() && timers[ i ] === timer ) { timers.splice( i--, 1 ); } @@ -7415,322 +7611,650 @@ jQuery.fx.tick = function() { jQuery.fx.timer = function( timer ) { jQuery.timers.push( timer ); - jQuery.fx.start(); + if ( timer() ) { + jQuery.fx.start(); + } else { + jQuery.timers.pop(); + } }; jQuery.fx.interval = 13; + jQuery.fx.start = function() { - if ( inProgress ) { - return; + if ( !timerId ) { + timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval ); } - - inProgress = true; - schedule(); }; jQuery.fx.stop = function() { - inProgress = null; + clearInterval( timerId ); + timerId = null; }; jQuery.fx.speeds = { slow: 600, fast: 200, - // Default speed _default: 400 }; // Based off of the plugin by Clint Helfers, with permission. -// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +// http://blindsignals.com/index.php/2009/07/jquery-delay/ jQuery.fn.delay = function( time, type ) { time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; type = type || "fx"; return this.queue( type, function( next, hooks ) { - var timeout = window.setTimeout( next, time ); + var timeout = setTimeout( next, time ); hooks.stop = function() { - window.clearTimeout( timeout ); + clearTimeout( timeout ); }; - } ); + }); }; -( function() { - var input = document.createElement( "input" ), - select = document.createElement( "select" ), - opt = select.appendChild( document.createElement( "option" ) ); +(function() { + // Minified: var a,b,c,d,e + var input, div, select, a, opt; - input.type = "checkbox"; + // Setup + div = document.createElement( "div" ); + div.setAttribute( "className", "t" ); + div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; + a = div.getElementsByTagName("a")[ 0 ]; + + // First batch of tests. + select = document.createElement("select"); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName("input")[ 0 ]; + + a.style.cssText = "top:1px"; - // Support: Android <=4.3 only - // Default value for a checkbox should be "on" - support.checkOn = input.value !== ""; + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + support.getSetAttribute = div.className !== "t"; - // Support: IE <=11 only - // Must access selectedIndex to make default options select + // Get the style information from getAttribute + // (IE uses .cssText instead) + support.style = /top/.test( a.getAttribute("style") ); + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + support.hrefNormalized = a.getAttribute("href") === "/a"; + + // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) + support.checkOn = !!input.value; + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) support.optSelected = opt.selected; - // Support: IE <=11 only - // An input loses its value after becoming a radio + // Tests for enctype support on a form (#6743) + support.enctype = !!document.createElement("form").enctype; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE8 only + // Check if we can trust getAttribute("value") input = document.createElement( "input" ); + input.setAttribute( "value", "" ); + support.input = input.getAttribute( "value" ) === ""; + + // Check if an input maintains its value after becoming a radio input.value = "t"; - input.type = "radio"; + input.setAttribute( "type", "radio" ); support.radioValue = input.value === "t"; -} )(); +})(); -var boolHook, - attrHandle = jQuery.expr.attrHandle; +var rreturn = /\r/g; -jQuery.fn.extend( { - attr: function( name, value ) { - return access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, +jQuery.fn.extend({ + val: function( value ) { + var hooks, ret, isFunction, + elem = this[0]; - removeAttr: function( name ) { - return this.each( function() { - jQuery.removeAttr( this, name ); - } ); - } -} ); + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; -jQuery.extend( { - attr: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } - // Don't get/set attributes on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { return; } - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === "undefined" ) { - return jQuery.prop( elem, name, value ); - } + isFunction = jQuery.isFunction( value ); - // Attribute hooks are determined by the lowercase version - // Grab necessary hook if one is defined - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - hooks = jQuery.attrHooks[ name.toLowerCase() ] || - ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); - } + return this.each(function( i ) { + var val; - if ( value !== undefined ) { - if ( value === null ) { - jQuery.removeAttr( elem, name ); + if ( this.nodeType !== 1 ) { return; } - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; } - elem.setAttribute( name, value + "" ); - return value; - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + }); + } - ret = jQuery.find.attr( elem, name ); + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - // Non-existent attributes return null, we normalize to undefined - return ret == null ? undefined : ret; - }, + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); - attrHooks: { - type: { - set: function( elem, value ) { - if ( !support.radioValue && value === "radio" && - nodeName( elem, "input" ) ) { - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + // Support: IE10-11+ + // option.text throws exceptions (#14686, #14858) + jQuery.trim( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // oldIE doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); } - return value; } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + if ( jQuery.inArray( jQuery.valHooks.option.get( option ), values ) >= 0 ) { + + // Support: IE6 + // When new option element is added to select box we need to + // force reflow of newly added node in order to workaround delay + // of initialization properties + try { + option.selected = optionSet = true; + + } catch ( _ ) { + + // Will be executed only in IE6 + option.scrollHeight; + } + + } else { + option.selected = false; + } + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + + return options; + } + } + } +}); + +// Radios and checkboxes getter/setter +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + // Support: Webkit + // "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + }; + } +}); + + + + +var nodeHook, boolHook, + attrHandle = jQuery.expr.attrHandle, + ruseDefault = /^(?:checked|selected)$/i, + getSetAttribute = support.getSetAttribute, + getSetInput = support.input; + +jQuery.fn.extend({ + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + } +}); + +jQuery.extend({ + attr: function( elem, name, value ) { + var hooks, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === strundefined ) { + return jQuery.prop( elem, name, value ); + } + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; } + + } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; } }, removeAttr: function( elem, value ) { - var name, + var name, propName, i = 0, - - // Attribute names can contain non-HTML whitespace characters - // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 - attrNames = value && value.match( rnothtmlwhite ); + attrNames = value && value.match( rnotwhite ); if ( attrNames && elem.nodeType === 1 ) { - while ( ( name = attrNames[ i++ ] ) ) { - elem.removeAttribute( name ); + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( jQuery.expr.match.bool.test( name ) ) { + // Set corresponding property to false + if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + elem[ propName ] = false; + // Support: IE<9 + // Also clear defaultChecked/defaultSelected (if appropriate) + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = + elem[ propName ] = false; + } + + // See #9699 for explanation of this approach (setting first, then removal) + } else { + jQuery.attr( elem, name, "" ); + } + + elem.removeAttribute( getSetAttribute ? name : propName ); + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to default in case type is set after value during creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } } } } -} ); +}); -// Hooks for boolean attributes +// Hook for boolean attributes boolHook = { set: function( elem, value, name ) { if ( value === false ) { - // Remove boolean attributes when set to false jQuery.removeAttr( elem, name ); + } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + // IE<8 needs the *property* name + elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); + + // Use defaultChecked and defaultSelected for oldIE } else { - elem.setAttribute( name, name ); + elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; } + return name; } }; +// Retrieve booleans specially jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; - attrHandle[ name ] = function( elem, name, isXML ) { - var ret, handle, - lowercaseName = name.toLowerCase(); + attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ? + function( elem, name, isXML ) { + var ret, handle; + if ( !isXML ) { + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ name ]; + attrHandle[ name ] = ret; + ret = getter( elem, name, isXML ) != null ? + name.toLowerCase() : + null; + attrHandle[ name ] = handle; + } + return ret; + } : + function( elem, name, isXML ) { + if ( !isXML ) { + return elem[ jQuery.camelCase( "default-" + name ) ] ? + name.toLowerCase() : + null; + } + }; +}); - if ( !isXML ) { +// fix oldIE attroperties +if ( !getSetInput || !getSetAttribute ) { + jQuery.attrHooks.value = { + set: function( elem, value, name ) { + if ( jQuery.nodeName( elem, "input" ) ) { + // Does not return so that setAttribute is also used + elem.defaultValue = value; + } else { + // Use nodeHook if defined (#1954); otherwise setAttribute is fine + return nodeHook && nodeHook.set( elem, value, name ); + } + } + }; +} - // Avoid an infinite loop by temporarily removing this function from the getter - handle = attrHandle[ lowercaseName ]; - attrHandle[ lowercaseName ] = ret; - ret = getter( elem, name, isXML ) != null ? - lowercaseName : - null; - attrHandle[ lowercaseName ] = handle; +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = { + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + elem.setAttributeNode( + (ret = elem.ownerDocument.createAttribute( name )) + ); + } + + ret.value = value += ""; + + // Break association with cloned elements by also using setAttribute (#9646) + if ( name === "value" || value === elem.getAttribute( name ) ) { + return value; + } + } + }; + + // Some attributes are constructed with empty-string values when not defined + attrHandle.id = attrHandle.name = attrHandle.coords = + function( elem, name, isXML ) { + var ret; + if ( !isXML ) { + return (ret = elem.getAttributeNode( name )) && ret.value !== "" ? + ret.value : + null; + } + }; + + // Fixing value retrieval on a button requires this module + jQuery.valHooks.button = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + if ( ret && ret.specified ) { + return ret.value; + } + }, + set: nodeHook.set + }; + + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + set: function( elem, value, name ) { + nodeHook.set( elem, value === "" ? false : value, name ); + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }; + }); +} + +if ( !support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Note: IE uppercases css property names, but if we were to .toLowerCase() + // .cssText, that would destroy case senstitivity in URL's, like in "background" + return elem.style.cssText || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = value + "" ); } - return ret; }; -} ); +} -var rfocusable = /^(?:input|select|textarea|button)$/i, +var rfocusable = /^(?:input|select|textarea|button|object)$/i, rclickable = /^(?:a|area)$/i; -jQuery.fn.extend( { +jQuery.fn.extend({ prop: function( name, value ) { return access( this, jQuery.prop, name, value, arguments.length > 1 ); }, removeProp: function( name ) { - return this.each( function() { - delete this[ jQuery.propFix[ name ] || name ]; - } ); + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); } -} ); +}); + +jQuery.extend({ + propFix: { + "for": "htmlFor", + "class": "className" + }, -jQuery.extend( { prop: function( elem, name, value ) { - var ret, hooks, + var ret, hooks, notxml, nType = elem.nodeType; - // Don't get/set properties on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { return; } - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + if ( notxml ) { // Fix name and attach hooks name = jQuery.propFix[ name ] || name; hooks = jQuery.propHooks[ name ]; } if ( value !== undefined ) { - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - return ( elem[ name ] = value ); - } + return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ? + ret : + ( elem[ name ] = value ); - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; + } else { + return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ? + ret : + elem[ name ]; } - - return elem[ name ]; }, propHooks: { tabIndex: { get: function( elem ) { - - // Support: IE <=9 - 11 only - // elem.tabIndex doesn't always return the - // correct value when it hasn't been explicitly set - // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ // Use proper attribute retrieval(#12072) var tabindex = jQuery.find.attr( elem, "tabindex" ); - if ( tabindex ) { - return parseInt( tabindex, 10 ); - } - - if ( - rfocusable.test( elem.nodeName ) || - rclickable.test( elem.nodeName ) && - elem.href - ) { - return 0; - } - - return -1; + return tabindex ? + parseInt( tabindex, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + -1; } } - }, - - propFix: { - "for": "htmlFor", - "class": "className" } -} ); +}); + +// Some attributes require a special call on IE +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !support.hrefNormalized ) { + // href/src property should get the full normalized URL (#10299/#12915) + jQuery.each([ "href", "src" ], function( i, name ) { + jQuery.propHooks[ name ] = { + get: function( elem ) { + return elem.getAttribute( name, 4 ); + } + }; + }); +} -// Support: IE <=11 only -// Accessing the selectedIndex property -// forces the browser to respect setting selected -// on the option -// The getter ensures a default option is selected -// when in an optgroup -// eslint rule "no-unused-expressions" is disabled for this code -// since it considers such accessions noop +// Support: Safari, IE9+ +// mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it if ( !support.optSelected ) { jQuery.propHooks.selected = { get: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - var parent = elem.parentNode; - if ( parent && parent.parentNode ) { - parent.parentNode.selectedIndex; - } - return null; - }, - set: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - var parent = elem.parentNode; if ( parent ) { parent.selectedIndex; + // Make sure that it also works with optgroups, see #5701 if ( parent.parentNode ) { parent.parentNode.selectedIndex; } } + return null; } }; } -jQuery.each( [ +jQuery.each([ "tabIndex", "readOnly", "maxLength", @@ -7743,53 +8267,54 @@ jQuery.each( [ "contentEditable" ], function() { jQuery.propFix[ this.toLowerCase() ] = this; -} ); - +}); +// IE6/7 call enctype encoding +if ( !support.enctype ) { + jQuery.propFix.enctype = "encoding"; +} - // Strip and collapse whitespace according to HTML spec - // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace - function stripAndCollapse( value ) { - var tokens = value.match( rnothtmlwhite ) || []; - return tokens.join( " " ); - } -function getClass( elem ) { - return elem.getAttribute && elem.getAttribute( "class" ) || ""; -} +var rclass = /[\t\r\n\f]/g; -jQuery.fn.extend( { +jQuery.fn.extend({ addClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; + var classes, elem, cur, clazz, j, finalValue, + i = 0, + len = this.length, + proceed = typeof value === "string" && value; if ( jQuery.isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); - } ); + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); } - if ( typeof value === "string" && value ) { - classes = value.match( rnothtmlwhite ) || []; + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( rnotwhite ) || []; - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); if ( cur ) { j = 0; - while ( ( clazz = classes[ j++ ] ) ) { + while ( (clazz = classes[j++]) ) { if ( cur.indexOf( " " + clazz + " " ) < 0 ) { cur += clazz + " "; } } - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); + // only assign if different to avoid unneeded rendering. + finalValue = jQuery.trim( cur ); + if ( elem.className !== finalValue ) { + elem.className = finalValue; } } } @@ -7799,42 +8324,40 @@ jQuery.fn.extend( { }, removeClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; + var classes, elem, cur, clazz, j, finalValue, + i = 0, + len = this.length, + proceed = arguments.length === 0 || typeof value === "string" && value; if ( jQuery.isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); - } ); + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); } + if ( proceed ) { + classes = ( value || "" ).match( rnotwhite ) || []; - if ( !arguments.length ) { - return this.attr( "class", "" ); - } - - if ( typeof value === "string" && value ) { - classes = value.match( rnothtmlwhite ) || []; - - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); if ( cur ) { j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - + while ( (clazz = classes[j++]) ) { // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { cur = cur.replace( " " + clazz + " ", " " ); } } - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); + // only assign if different to avoid unneeded rendering. + finalValue = value ? jQuery.trim( cur ) : ""; + if ( elem.className !== finalValue ) { + elem.className = finalValue; } } } @@ -7850,438 +8373,68 @@ jQuery.fn.extend( { return stateVal ? this.addClass( value ) : this.removeClass( value ); } - if ( jQuery.isFunction( value ) ) { - return this.each( function( i ) { - jQuery( this ).toggleClass( - value.call( this, i, getClass( this ), stateVal ), - stateVal - ); - } ); - } - - return this.each( function() { - var className, i, self, classNames; - - if ( type === "string" ) { - - // Toggle individual class names - i = 0; - self = jQuery( this ); - classNames = value.match( rnothtmlwhite ) || []; - - while ( ( className = classNames[ i++ ] ) ) { - - // Check each className given, space separated list - if ( self.hasClass( className ) ) { - self.removeClass( className ); - } else { - self.addClass( className ); - } - } - - // Toggle whole class name - } else if ( value === undefined || type === "boolean" ) { - className = getClass( this ); - if ( className ) { - - // Store className if set - dataPriv.set( this, "__className__", className ); - } - - // If the element has a class name or if we're passed `false`, - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - if ( this.setAttribute ) { - this.setAttribute( "class", - className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" - ); - } - } - } ); - }, - - hasClass: function( selector ) { - var className, elem, - i = 0; - - className = " " + selector + " "; - while ( ( elem = this[ i++ ] ) ) { - if ( elem.nodeType === 1 && - ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; - } - } - - return false; - } -} ); - - - - -var rreturn = /\r/g; - -jQuery.fn.extend( { - val: function( value ) { - var hooks, ret, isFunction, - elem = this[ 0 ]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || - jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && - "get" in hooks && - ( ret = hooks.get( elem, "value" ) ) !== undefined - ) { - return ret; - } - - ret = elem.value; - - // Handle most common string cases - if ( typeof ret === "string" ) { - return ret.replace( rreturn, "" ); - } - - // Handle cases where value is null/undef or number - return ret == null ? "" : ret; - } - - return; - } - - isFunction = jQuery.isFunction( value ); - - return this.each( function( i ) { - var val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( isFunction ) { - val = value.call( this, i, jQuery( this ).val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - - } else if ( typeof val === "number" ) { - val += ""; - - } else if ( Array.isArray( val ) ) { - val = jQuery.map( val, function( value ) { - return value == null ? "" : value + ""; - } ); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - } ); - } -} ); - -jQuery.extend( { - valHooks: { - option: { - get: function( elem ) { - - var val = jQuery.find.attr( elem, "value" ); - return val != null ? - val : - - // Support: IE <=10 - 11 only - // option.text throws exceptions (#14686, #14858) - // Strip and collapse whitespace - // https://html.spec.whatwg.org/#strip-and-collapse-whitespace - stripAndCollapse( jQuery.text( elem ) ); - } - }, - select: { - get: function( elem ) { - var value, option, i, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one", - values = one ? null : [], - max = one ? index + 1 : options.length; - - if ( index < 0 ) { - i = max; - - } else { - i = one ? index : 0; - } - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // Support: IE <=9 only - // IE8-9 doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - - // Don't return options that are disabled or in a disabled optgroup - !option.disabled && - ( !option.parentNode.disabled || - !nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var optionSet, option, - options = elem.options, - values = jQuery.makeArray( value ), - i = options.length; - - while ( i-- ) { - option = options[ i ]; - - /* eslint-disable no-cond-assign */ - - if ( option.selected = - jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 - ) { - optionSet = true; - } - - /* eslint-enable no-cond-assign */ - } - - // Force browsers to behave consistently when non-matching value is set - if ( !optionSet ) { - elem.selectedIndex = -1; - } - return values; - } - } - } -} ); - -// Radios and checkboxes getter/setter -jQuery.each( [ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - set: function( elem, value ) { - if ( Array.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); - } - } - }; - if ( !support.checkOn ) { - jQuery.valHooks[ this ].get = function( elem ) { - return elem.getAttribute( "value" ) === null ? "on" : elem.value; - }; - } -} ); - - - - -// Return jQuery for attributes-only inclusion - - -var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/; - -jQuery.extend( jQuery.event, { - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; - - cur = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf( "." ) > -1 ) { - - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split( "." ); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf( ":" ) < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join( "." ); - event.rnamespace = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === ( elem.ownerDocument || document ) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { - - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && - dataPriv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( ( !special._default || - special._default.apply( eventPath.pop(), data ) === false ) && - acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - elem[ type ](); - jQuery.event.triggered = undefined; + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } - if ( tmp ) { - elem[ ontype ] = tmp; + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + classNames = value.match( rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); } } - } - } - return event.result; + // Toggle whole class name + } else if ( type === strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed "false", + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); }, - // Piggyback on a donor event to simulate a different one - // Used only for `focus(in | out)` events - simulate: function( type, elem, event ) { - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; } - ); + } - jQuery.event.trigger( e, null, elem ); + return false; } +}); -} ); -jQuery.fn.extend( { - trigger: function( type, data ) { - return this.each( function() { - jQuery.event.trigger( type, data, this ); - } ); - }, - triggerHandler: function( type, data ) { - var elem = this[ 0 ]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -} ); + +// Return jQuery for attributes-only inclusion -jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + - "change select submit keydown keypress keyup contextmenu" ).split( " " ), - function( i, name ) { + "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { // Handle event binding jQuery.fn[ name ] = function( data, fn ) { @@ -8289,85 +8442,100 @@ jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + this.on( name, null, data, fn ) : this.trigger( name ); }; -} ); +}); -jQuery.fn.extend( { +jQuery.fn.extend({ hover: function( fnOver, fnOut ) { return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + }, + + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, + + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); } -} ); +}); +var nonce = jQuery.now(); +var rquery = (/\?/); -support.focusin = "onfocusin" in window; -// Support: Firefox <=44 -// Firefox doesn't have focus(in | out) events -// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 -// -// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 -// focus(in | out) events fire after focus & blur events, -// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order -// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 -if ( !support.focusin ) { - jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { +var rvalidtokens = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g; - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); - }; +jQuery.parseJSON = function( data ) { + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + // Support: Android 2.3 + // Workaround failure to string-cast null input + return window.JSON.parse( data + "" ); + } - jQuery.event.special[ fix ] = { - setup: function() { - var doc = this.ownerDocument || this, - attaches = dataPriv.access( doc, fix ); + var requireNonComma, + depth = null, + str = jQuery.trim( data + "" ); - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this, - attaches = dataPriv.access( doc, fix ) - 1; + // Guard against invalid (and possibly dangerous) input by ensuring that nothing remains + // after removing valid tokens + return str && !jQuery.trim( str.replace( rvalidtokens, function( token, comma, open, close ) { - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - dataPriv.remove( doc, fix ); + // Force termination if we see a misplaced comma + if ( requireNonComma && comma ) { + depth = 0; + } - } else { - dataPriv.access( doc, fix, attaches ); - } - } - }; - } ); -} -var location = window.location; + // Perform no more replacements after returning to outermost depth + if ( depth === 0 ) { + return token; + } -var nonce = jQuery.now(); + // Commas must not follow "[", "{", or "," + requireNonComma = open || comma; -var rquery = ( /\?/ ); + // Determine new depth + // array/object open ("[" or "{"): depth += true - false (increment) + // array/object close ("]" or "}"): depth += false - true (decrement) + // other cases ("," or primitive): depth += true - true (numeric cast) + depth += !close - !open; + // Remove this token + return ""; + }) ) ? + ( Function( "return " + str ) )() : + jQuery.error( "Invalid JSON: " + data ); +}; // Cross-browser xml parsing jQuery.parseXML = function( data ) { - var xml; + var xml, tmp; if ( !data || typeof data !== "string" ) { return null; } - - // Support: IE 9 - 11 only - // IE throws on parseFromString with invalid input. try { - xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data, "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { xml = undefined; } - - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { jQuery.error( "Invalid XML: " + data ); } return xml; @@ -8375,134 +8543,18 @@ jQuery.parseXML = function( data ) { var - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, - rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, - rsubmittable = /^(?:input|select|textarea|keygen)/i; - -function buildParams( prefix, obj, traditional, add ) { - var name; - - if ( Array.isArray( obj ) ) { - - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - - // Item is non-scalar (array or object), encode its numeric index. - buildParams( - prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", - v, - traditional, - add - ); - } - } ); - - } else if ( !traditional && jQuery.type( obj ) === "object" ) { - - // Serialize object item. - for ( name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - - // Serialize scalar item. - add( prefix, obj ); - } -} - -// Serialize an array of form elements or a set of -// key/values into a query string -jQuery.param = function( a, traditional ) { - var prefix, - s = [], - add = function( key, valueOrFunction ) { + // Document location + ajaxLocParts, + ajaxLocation, - // If value is a function, invoke it and use its return value - var value = jQuery.isFunction( valueOrFunction ) ? - valueOrFunction() : - valueOrFunction; - - s[ s.length ] = encodeURIComponent( key ) + "=" + - encodeURIComponent( value == null ? "" : value ); - }; - - // If an array was passed in, assume that it is an array of form elements. - if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - } ); - - } else { - - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ); -}; - -jQuery.fn.extend( { - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, - serializeArray: function() { - return this.map( function() { - - // Can add propHook for "elements" to filter or add form elements - var elements = jQuery.prop( this, "elements" ); - return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { - var type = this.type; - - // Use .is( ":disabled" ) so that fieldset[disabled] works - return this.name && !jQuery( this ).is( ":disabled" ) && - rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && - ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( i, elem ) { - var val = jQuery( this ).val(); - - if ( val == null ) { - return null; - } - - if ( Array.isArray( val ) ) { - return jQuery.map( val, function( val ) { - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ); - } - - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ).get(); - } -} ); - - -var - r20 = /%20/g, rhash = /#.*$/, - rantiCache = /([?&])_=[^&]*/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, - + rts = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL // #7653, #8125, #8152: local protocol detection rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, rnoContent = /^(?:GET|HEAD)$/, rprotocol = /^\/\//, + rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, /* Prefilters * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) @@ -8523,11 +8575,22 @@ var transports = {}, // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression - allTypes = "*/".concat( "*" ), + allTypes = "*/".concat("*"); + +// #8138, IE may throw an exception when accessing +// a field from window.location if document.domain has been set +try { + ajaxLocation = location.href; +} catch( e ) { + // Use the href attribute of an A element + // since IE will modify it given document.location + ajaxLocation = document.createElement( "a" ); + ajaxLocation.href = ""; + ajaxLocation = ajaxLocation.href; +} - // Anchor tag for parsing the document origin - originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; +// Segment location into parts +ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || []; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { @@ -8542,21 +8605,19 @@ function addToPrefiltersOrTransports( structure ) { var dataType, i = 0, - dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || []; if ( jQuery.isFunction( func ) ) { - // For each dataType in the dataTypeExpression - while ( ( dataType = dataTypes[ i++ ] ) ) { - + while ( (dataType = dataTypes[i++]) ) { // Prepend if requested - if ( dataType[ 0 ] === "+" ) { + if ( dataType.charAt( 0 ) === "+" ) { dataType = dataType.slice( 1 ) || "*"; - ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + (structure[ dataType ] = structure[ dataType ] || []).unshift( func ); // Otherwise append } else { - ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + (structure[ dataType ] = structure[ dataType ] || []).push( func ); } } } @@ -8574,16 +8635,14 @@ function inspectPrefiltersOrTransports( structure, options, originalOptions, jqX inspected[ dataType ] = true; jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); - if ( typeof dataTypeOrTransport === "string" && - !seekingTransport && !inspected[ dataTypeOrTransport ] ) { - + if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) { options.dataTypes.unshift( dataTypeOrTransport ); inspect( dataTypeOrTransport ); return false; } else if ( seekingTransport ) { return !( selected = dataTypeOrTransport ); } - } ); + }); return selected; } @@ -8594,12 +8653,12 @@ function inspectPrefiltersOrTransports( structure, options, originalOptions, jqX // that takes "flat" options (not to be deep extended) // Fixes #9887 function ajaxExtend( target, src ) { - var key, deep, + var deep, key, flatOptions = jQuery.ajaxSettings.flatOptions || {}; for ( key in src ) { if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + ( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ]; } } if ( deep ) { @@ -8614,8 +8673,7 @@ function ajaxExtend( target, src ) { * - returns the corresponding response */ function ajaxHandleResponses( s, jqXHR, responses ) { - - var ct, type, finalDataType, firstDataType, + var firstDataType, ct, finalDataType, type, contents = s.contents, dataTypes = s.dataTypes; @@ -8623,7 +8681,7 @@ function ajaxHandleResponses( s, jqXHR, responses ) { while ( dataTypes[ 0 ] === "*" ) { dataTypes.shift(); if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + ct = s.mimeType || jqXHR.getResponseHeader("Content-Type"); } } @@ -8641,10 +8699,9 @@ function ajaxHandleResponses( s, jqXHR, responses ) { if ( dataTypes[ 0 ] in responses ) { finalDataType = dataTypes[ 0 ]; } else { - // Try convertible dataTypes for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) { finalDataType = type; break; } @@ -8652,7 +8709,6 @@ function ajaxHandleResponses( s, jqXHR, responses ) { firstDataType = type; } } - // Or just use first one finalDataType = finalDataType || firstDataType; } @@ -8674,7 +8730,6 @@ function ajaxHandleResponses( s, jqXHR, responses ) { function ajaxConvert( s, response, jqXHR, isSuccess ) { var conv2, current, conv, tmp, prev, converters = {}, - // Work with a copy of dataTypes in case we need to modify it for conversion dataTypes = s.dataTypes.slice(); @@ -8727,7 +8782,6 @@ function ajaxConvert( s, response, jqXHR, isSuccess ) { conv = converters[ prev + " " + tmp[ 0 ] ] || converters[ "* " + tmp[ 0 ] ]; if ( conv ) { - // Condense equivalence converters if ( conv === true ) { conv = converters[ conv2 ]; @@ -8747,16 +8801,13 @@ function ajaxConvert( s, response, jqXHR, isSuccess ) { if ( conv !== true ) { // Unless errors are allowed to bubble, catch and return them - if ( conv && s.throws ) { + if ( conv && s[ "throws" ] ) { response = conv( response ); } else { try { response = conv( response ); } catch ( e ) { - return { - state: "parsererror", - error: conv ? e : "No conversion from " + prev + " to " + current - }; + return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current }; } } } @@ -8767,7 +8818,7 @@ function ajaxConvert( s, response, jqXHR, isSuccess ) { return { state: "success", data: response }; } -jQuery.extend( { +jQuery.extend({ // Counter for holding the number of active queries active: 0, @@ -8777,14 +8828,13 @@ jQuery.extend( { etag: {}, ajaxSettings: { - url: location.href, + url: ajaxLocation, type: "GET", - isLocal: rlocalProtocol.test( location.protocol ), + isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ), global: true, processData: true, async: true, contentType: "application/x-www-form-urlencoded; charset=UTF-8", - /* timeout: 0, data: null, @@ -8806,9 +8856,9 @@ jQuery.extend( { }, contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ + xml: /xml/, + html: /html/, + json: /json/ }, responseFields: { @@ -8828,7 +8878,7 @@ jQuery.extend( { "text html": true, // Evaluate text as a json expression - "text json": JSON.parse, + "text json": jQuery.parseJSON, // Parse text as xml "text xml": jQuery.parseXML @@ -8872,59 +8922,43 @@ jQuery.extend( { // Force options to be an object options = options || {}; - var transport, - + var // Cross-domain detection vars + parts, + // Loop variable + i, // URL without anti-cache param cacheURL, - - // Response headers + // Response headers as string responseHeadersString, - responseHeaders, - // timeout handle timeoutTimer, - // Url cleanup var - urlAnchor, - - // Request state (becomes false upon send and true upon completion) - completed, - // To know if global events are to be dispatched fireGlobals, - // Loop variable - i, - - // uncached part of the url - uncached, - + transport, + // Response headers + responseHeaders, // Create the final options object s = jQuery.ajaxSetup( {}, options ), - // Callbacks context callbackContext = s.context || s, - // Context for global events is callbackContext if it is a DOM node or jQuery collection - globalEventContext = s.context && - ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, - + globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, // Deferreds deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks( "once memory" ), - + completeDeferred = jQuery.Callbacks("once memory"), // Status-dependent callbacks statusCode = s.statusCode || {}, - // Headers (they are sent all at once) requestHeaders = {}, requestHeadersNames = {}, - + // The jqXHR state + state = 0, // Default abort message strAbort = "canceled", - // Fake xhr jqXHR = { readyState: 0, @@ -8932,11 +8966,11 @@ jQuery.extend( { // Builds headers hashtable if needed getResponseHeader: function( key ) { var match; - if ( completed ) { + if ( state === 2 ) { if ( !responseHeaders ) { responseHeaders = {}; - while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; + while ( (match = rheaders.exec( responseHeadersString )) ) { + responseHeaders[ match[1].toLowerCase() ] = match[ 2 ]; } } match = responseHeaders[ key.toLowerCase() ]; @@ -8946,14 +8980,14 @@ jQuery.extend( { // Raw string getAllResponseHeaders: function() { - return completed ? responseHeadersString : null; + return state === 2 ? responseHeadersString : null; }, // Caches the header setRequestHeader: function( name, value ) { - if ( completed == null ) { - name = requestHeadersNames[ name.toLowerCase() ] = - requestHeadersNames[ name.toLowerCase() ] || name; + var lname = name.toLowerCase(); + if ( !state ) { + name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; requestHeaders[ name ] = value; } return this; @@ -8961,7 +8995,7 @@ jQuery.extend( { // Overrides response content-type header overrideMimeType: function( type ) { - if ( completed == null ) { + if ( !state ) { s.mimeType = type; } return this; @@ -8971,16 +9005,14 @@ jQuery.extend( { statusCode: function( map ) { var code; if ( map ) { - if ( completed ) { - - // Execute the appropriate callbacks - jqXHR.always( map[ jqXHR.status ] ); - } else { - - // Lazy-add the new callbacks in a way that preserves old ones + if ( state < 2 ) { for ( code in map ) { + // Lazy-add the new callback in a way that preserves old ones statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; } + } else { + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); } } return this; @@ -8998,41 +9030,30 @@ jQuery.extend( { }; // Attach deferreds - deferred.promise( jqXHR ); + deferred.promise( jqXHR ).complete = completeDeferred.add; + jqXHR.success = jqXHR.done; + jqXHR.error = jqXHR.fail; - // Add protocol if not provided (prefilters might expect it) + // Remove hash character (#7531: and string promotion) + // Add protocol if not provided (#5866: IE7 issue with protocol-less urls) // Handle falsy url in the settings object (#10093: consistency with old signature) // We also use the url parameter if available - s.url = ( ( url || s.url || location.href ) + "" ) - .replace( rprotocol, location.protocol + "//" ); + s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); // Alias method option to type as per ticket #12004 s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list - s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ]; - // A cross-domain request is in order when the origin doesn't match the current origin. + // A cross-domain request is in order when we have a protocol:host:port mismatch if ( s.crossDomain == null ) { - urlAnchor = document.createElement( "a" ); - - // Support: IE <=8 - 11, Edge 12 - 13 - // IE throws exception on accessing the href property if url is malformed, - // e.g. http://example.com:80x/ - try { - urlAnchor.href = s.url; - - // Support: IE <=8 - 11 only - // Anchor's host property isn't correctly set when s.url is relative - urlAnchor.href = urlAnchor.href; - s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== - urlAnchor.protocol + "//" + urlAnchor.host; - } catch ( e ) { - - // If there is an error parsing the URL, assume it is crossDomain, - // it can be rejected by the transport if it is invalid - s.crossDomain = true; - } + parts = rurl.exec( s.url.toLowerCase() ); + s.crossDomain = !!( parts && + ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] || + ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !== + ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) ) + ); } // Convert data if not already a string @@ -9044,17 +9065,16 @@ jQuery.extend( { inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); // If request was aborted inside a prefilter, stop there - if ( completed ) { + if ( state === 2 ) { return jqXHR; } // We can fire global events as of now if asked to - // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) - fireGlobals = jQuery.event && s.global; + fireGlobals = s.global; // Watch for a new set of requests if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger( "ajaxStart" ); + jQuery.event.trigger("ajaxStart"); } // Uppercase the type @@ -9065,36 +9085,28 @@ jQuery.extend( { // Save the URL in case we're toying with the If-Modified-Since // and/or If-None-Match header later on - // Remove hash to simplify url manipulation - cacheURL = s.url.replace( rhash, "" ); + cacheURL = s.url; // More options handling for requests with no content if ( !s.hasContent ) { - // Remember the hash so we can put it back - uncached = s.url.slice( cacheURL.length ); - // If data is available, append data to url if ( s.data ) { - cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; - + cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data ); // #9682: remove data so that it's not used in an eventual retry delete s.data; } - // Add or update anti-cache param if needed + // Add anti-cache in url if needed if ( s.cache === false ) { - cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; - } + s.url = rts.test( cacheURL ) ? - // Put hash and anti-cache on the URL that will be requested (gh-1732) - s.url = cacheURL + uncached; + // If there is already a '_' parameter, set its value + cacheURL.replace( rts, "$1_=" + nonce++ ) : - // Change '%20' to '+' if this is encoded form body content (gh-2658) - } else if ( s.data && s.processData && - ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { - s.data = s.data.replace( r20, "+" ); + // Otherwise add one to the end + cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++; + } } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. @@ -9115,9 +9127,8 @@ jQuery.extend( { // Set the Accepts header for the server, depending on the dataType jqXHR.setRequestHeader( "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? - s.accepts[ s.dataTypes[ 0 ] ] + - ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? + s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : s.accepts[ "*" ] ); @@ -9127,20 +9138,18 @@ jQuery.extend( { } // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && - ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { - + if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { // Abort if not done already and return return jqXHR.abort(); } - // Aborting is no longer a cancellation + // aborting is no longer a cancellation strAbort = "abort"; // Install callbacks on deferreds - completeDeferred.add( s.complete ); - jqXHR.done( s.success ); - jqXHR.fail( s.error ); + for ( i in { success: 1, error: 1, complete: 1 } ) { + jqXHR[ i ]( s[ i ] ); + } // Get transport transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); @@ -9155,31 +9164,24 @@ jQuery.extend( { if ( fireGlobals ) { globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); } - - // If request was aborted inside ajaxSend, stop there - if ( completed ) { - return jqXHR; - } - // Timeout if ( s.async && s.timeout > 0 ) { - timeoutTimer = window.setTimeout( function() { - jqXHR.abort( "timeout" ); + timeoutTimer = setTimeout(function() { + jqXHR.abort("timeout"); }, s.timeout ); } try { - completed = false; + state = 1; transport.send( requestHeaders, done ); } catch ( e ) { - - // Rethrow post-completion exceptions - if ( completed ) { + // Propagate exception as error if not done + if ( state < 2 ) { + done( -1, e ); + // Simply rethrow otherwise + } else { throw e; } - - // Propagate others as results - done( -1, e ); } } @@ -9188,16 +9190,17 @@ jQuery.extend( { var isSuccess, success, error, response, modified, statusText = nativeStatusText; - // Ignore repeat invocations - if ( completed ) { + // Called once + if ( state === 2 ) { return; } - completed = true; + // State is "done" now + state = 2; // Clear timeout if it exists if ( timeoutTimer ) { - window.clearTimeout( timeoutTimer ); + clearTimeout( timeoutTimer ); } // Dereference transport for early garbage collection @@ -9226,11 +9229,11 @@ jQuery.extend( { // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) { - modified = jqXHR.getResponseHeader( "Last-Modified" ); + modified = jqXHR.getResponseHeader("Last-Modified"); if ( modified ) { jQuery.lastModified[ cacheURL ] = modified; } - modified = jqXHR.getResponseHeader( "etag" ); + modified = jqXHR.getResponseHeader("etag"); if ( modified ) { jQuery.etag[ cacheURL ] = modified; } @@ -9252,8 +9255,8 @@ jQuery.extend( { isSuccess = !error; } } else { - - // Extract error from statusText and normalize for non-aborts + // We extract error from statusText + // then normalize statusText and status for non-aborts error = statusText; if ( status || !statusText ) { statusText = "error"; @@ -9288,10 +9291,9 @@ jQuery.extend( { if ( fireGlobals ) { globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - // Handle the global AJAX counter if ( !( --jQuery.active ) ) { - jQuery.event.trigger( "ajaxStop" ); + jQuery.event.trigger("ajaxStop"); } } } @@ -9306,70 +9308,72 @@ jQuery.extend( { getScript: function( url, callback ) { return jQuery.get( url, undefined, callback, "script" ); } -} ); +}); jQuery.each( [ "get", "post" ], function( i, method ) { jQuery[ method ] = function( url, data, callback, type ) { - - // Shift arguments if data argument was omitted + // shift arguments if data argument was omitted if ( jQuery.isFunction( data ) ) { type = type || callback; callback = data; data = undefined; } - // The url can be an options object (which then must have .url) - return jQuery.ajax( jQuery.extend( { + return jQuery.ajax({ url: url, type: method, dataType: type, data: data, success: callback - }, jQuery.isPlainObject( url ) && url ) ); + }); + }; +}); + +// Attach a bunch of functions for handling common AJAX events +jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { + jQuery.fn[ type ] = function( fn ) { + return this.on( type, fn ); }; -} ); +}); jQuery._evalUrl = function( url ) { - return jQuery.ajax( { + return jQuery.ajax({ url: url, - - // Make this explicit, since user can override this through ajaxSetup (#11264) type: "GET", dataType: "script", - cache: true, async: false, global: false, "throws": true - } ); + }); }; -jQuery.fn.extend( { +jQuery.fn.extend({ wrapAll: function( html ) { - var wrap; - - if ( this[ 0 ] ) { - if ( jQuery.isFunction( html ) ) { - html = html.call( this[ 0 ] ); - } + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + if ( this[0] ) { // The elements to wrap the target around - wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); - if ( this[ 0 ].parentNode ) { - wrap.insertBefore( this[ 0 ] ); + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); } - wrap.map( function() { + wrap.map(function() { var elem = this; - while ( elem.firstElementChild ) { - elem = elem.firstElementChild; + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; } return elem; - } ).append( this ); + }).append( this ); } return this; @@ -9377,12 +9381,12 @@ jQuery.fn.extend( { wrapInner: function( html ) { if ( jQuery.isFunction( html ) ) { - return this.each( function( i ) { - jQuery( this ).wrapInner( html.call( this, i ) ); - } ); + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); } - return this.each( function() { + return this.each(function() { var self = jQuery( this ), contents = self.contents(); @@ -9392,214 +9396,342 @@ jQuery.fn.extend( { } else { self.append( html ); } - } ); + }); }, wrap: function( html ) { var isFunction = jQuery.isFunction( html ); - return this.each( function( i ) { - jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html ); - } ); + return this.each(function(i) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); }, - unwrap: function( selector ) { - this.parent( selector ).not( "body" ).each( function() { - jQuery( this ).replaceWith( this.childNodes ); - } ); - return this; + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); } -} ); +}); -jQuery.expr.pseudos.hidden = function( elem ) { - return !jQuery.expr.pseudos.visible( elem ); +jQuery.expr.filters.hidden = function( elem ) { + // Support: Opera <= 12.12 + // Opera reports offsetWidths and offsetHeights less than zero on some elements + return elem.offsetWidth <= 0 && elem.offsetHeight <= 0 || + (!support.reliableHiddenOffsets() && + ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none"); }; -jQuery.expr.pseudos.visible = function( elem ) { - return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); + +jQuery.expr.filters.visible = function( elem ) { + return !jQuery.expr.filters.hidden( elem ); }; -jQuery.ajaxSettings.xhr = function() { - try { - return new window.XMLHttpRequest(); - } catch ( e ) {} -}; +var r20 = /%20/g, + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( jQuery.isArray( obj ) ) { + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + // Item is non-scalar (array or object), encode its numeric index. + buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add ); + } + }); + + } else if ( !traditional && jQuery.type( obj ) === "object" ) { + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, value ) { + // If value is a function, invoke it and return its value + value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value ); + s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); + }; -var xhrSuccessStatus = { + // Set traditional to true for jQuery <= 1.3.2 behavior. + if ( traditional === undefined ) { + traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + }); + + } else { + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } - // File protocol always yields status code 0, assume 200 - 0: 200, + // Return the resulting serialization + return s.join( "&" ).replace( r20, "+" ); +}; - // Support: IE <=9 only - // #1450: sometimes IE returns 1223 when it should be 204 - 1223: 204 +jQuery.fn.extend({ + serialize: function() { + return jQuery.param( this.serializeArray() ); }, + serializeArray: function() { + return this.map(function() { + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + }) + .filter(function() { + var type = this.type; + // Use .is(":disabled") so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + }) + .map(function( i, elem ) { + var val = jQuery( this ).val(); + + return val == null ? + null : + jQuery.isArray( val ) ? + jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }) : + { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }).get(); + } +}); + + +// Create the request object +// (This is still attached to ajaxSettings for backward compatibility) +jQuery.ajaxSettings.xhr = window.ActiveXObject !== undefined ? + // Support: IE6+ + function() { + + // XHR cannot access local files, always use ActiveX for that case + return !this.isLocal && + + // Support: IE7-8 + // oldIE XHR does not support non-RFC2616 methods (#13240) + // See http://msdn.microsoft.com/en-us/library/ie/ms536648(v=vs.85).aspx + // and http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9 + // Although this check for six methods instead of eight + // since IE also does not support "trace" and "connect" + /^(get|post|head|put|delete|options)$/i.test( this.type ) && + + createStandardXHR() || createActiveXHR(); + } : + // For all other browsers, use the standard XMLHttpRequest object + createStandardXHR; + +var xhrId = 0, + xhrCallbacks = {}, xhrSupported = jQuery.ajaxSettings.xhr(); +// Support: IE<10 +// Open requests must be manually aborted on unload (#5280) +if ( window.ActiveXObject ) { + jQuery( window ).on( "unload", function() { + for ( var key in xhrCallbacks ) { + xhrCallbacks[ key ]( undefined, true ); + } + }); +} + +// Determine support properties support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); -support.ajax = xhrSupported = !!xhrSupported; +xhrSupported = support.ajax = !!xhrSupported; -jQuery.ajaxTransport( function( options ) { - var callback, errorCallback; +// Create transport if the browser can provide an xhr +if ( xhrSupported ) { - // Cross domain only allowed if supported through XMLHttpRequest - if ( support.cors || xhrSupported && !options.crossDomain ) { - return { - send: function( headers, complete ) { - var i, - xhr = options.xhr(); - - xhr.open( - options.type, - options.url, - options.async, - options.username, - options.password - ); + jQuery.ajaxTransport(function( options ) { + // Cross domain only allowed if supported through XMLHttpRequest + if ( !options.crossDomain || support.cors ) { - // Apply custom fields if provided - if ( options.xhrFields ) { - for ( i in options.xhrFields ) { - xhr[ i ] = options.xhrFields[ i ]; - } - } + var callback; - // Override mime type if needed - if ( options.mimeType && xhr.overrideMimeType ) { - xhr.overrideMimeType( options.mimeType ); - } + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(), + id = ++xhrId; - // X-Requested-With header - // For cross-domain requests, seeing as conditions for a preflight are - // akin to a jigsaw puzzle, we simply never set it to be sure. - // (it can always be set on a per-request basis or even using ajaxSetup) - // For same-domain requests, won't change header if already provided. - if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { - headers[ "X-Requested-With" ] = "XMLHttpRequest"; - } + // Open the socket + xhr.open( options.type, options.url, options.async, options.username, options.password ); - // Set headers - for ( i in headers ) { - xhr.setRequestHeader( i, headers[ i ] ); - } + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } - // Callback - callback = function( type ) { - return function() { - if ( callback ) { - callback = errorCallback = xhr.onload = - xhr.onerror = xhr.onabort = xhr.onreadystatechange = null; - - if ( type === "abort" ) { - xhr.abort(); - } else if ( type === "error" ) { - - // Support: IE <=9 only - // On a manual native abort, IE9 throws - // errors on any property access that is not readyState - if ( typeof xhr.status !== "number" ) { - complete( 0, "error" ); - } else { - complete( + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } - // File: protocol always yields status 0; see #8605, #14207 - xhr.status, - xhr.statusText - ); + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers["X-Requested-With"] ) { + headers["X-Requested-With"] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + // Support: IE<9 + // IE's ActiveXObject throws a 'Type Mismatch' exception when setting + // request header to a null-value. + // + // To keep consistent with other XHR implementations, cast the value + // to string and ignore `undefined`. + if ( headers[ i ] !== undefined ) { + xhr.setRequestHeader( i, headers[ i ] + "" ); + } + } + + // Do send the request + // This may raise an exception which is actually + // handled in jQuery.ajax (so no try/catch here) + xhr.send( ( options.hasContent && options.data ) || null ); + + // Listener + callback = function( _, isAbort ) { + var status, statusText, responses; + + // Was never called and is aborted or complete + if ( callback && ( isAbort || xhr.readyState === 4 ) ) { + // Clean up + delete xhrCallbacks[ id ]; + callback = undefined; + xhr.onreadystatechange = jQuery.noop; + + // Abort manually if needed + if ( isAbort ) { + if ( xhr.readyState !== 4 ) { + xhr.abort(); } } else { - complete( - xhrSuccessStatus[ xhr.status ] || xhr.status, - xhr.statusText, - - // Support: IE <=9 only - // IE9 has no XHR2 but throws on binary (trac-11426) - // For XHR2 non-text, let the caller handle it (gh-2498) - ( xhr.responseType || "text" ) !== "text" || - typeof xhr.responseText !== "string" ? - { binary: xhr.response } : - { text: xhr.responseText }, - xhr.getAllResponseHeaders() - ); - } - } - }; - }; + responses = {}; + status = xhr.status; + + // Support: IE<10 + // Accessing binary-data responseText throws an exception + // (#11426) + if ( typeof xhr.responseText === "string" ) { + responses.text = xhr.responseText; + } - // Listen to events - xhr.onload = callback(); - errorCallback = xhr.onerror = callback( "error" ); + // Firefox throws an exception when accessing + // statusText for faulty cross-domain requests + try { + statusText = xhr.statusText; + } catch( e ) { + // We normalize with Webkit giving an empty statusText + statusText = ""; + } - // Support: IE 9 only - // Use onreadystatechange to replace onabort - // to handle uncaught aborts - if ( xhr.onabort !== undefined ) { - xhr.onabort = errorCallback; - } else { - xhr.onreadystatechange = function() { - - // Check readyState before timeout as it changes - if ( xhr.readyState === 4 ) { - - // Allow onerror to be called first, - // but that will not handle a native abort - // Also, save errorCallback to a variable - // as xhr.onerror cannot be accessed - window.setTimeout( function() { - if ( callback ) { - errorCallback(); + // Filter status for non standard behaviors + + // If the request is local and we have data: assume a success + // (success with no data won't get notified, that's the best we + // can do given current implementations) + if ( !status && options.isLocal && !options.crossDomain ) { + status = responses.text ? 200 : 404; + // IE - #1450: sometimes returns 1223 when it should be 204 + } else if ( status === 1223 ) { + status = 204; } - } ); + } } - }; - } - // Create the abort callback - callback = callback( "abort" ); - - try { + // Call complete if needed + if ( responses ) { + complete( status, statusText, responses, xhr.getAllResponseHeaders() ); + } + }; - // Do send the request (this may raise an exception) - xhr.send( options.hasContent && options.data || null ); - } catch ( e ) { + if ( !options.async ) { + // if we're in sync mode we fire the callback + callback(); + } else if ( xhr.readyState === 4 ) { + // (IE6 & IE7) if it's in cache and has been + // retrieved directly we need to fire the callback + setTimeout( callback ); + } else { + // Add to the list of active xhr callbacks + xhr.onreadystatechange = xhrCallbacks[ id ] = callback; + } + }, - // #14683: Only rethrow if this hasn't been notified as an error yet + abort: function() { if ( callback ) { - throw e; + callback( undefined, true ); } } - }, + }; + } + }); +} - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } -} ); +// Functions to create xhrs +function createStandardXHR() { + try { + return new window.XMLHttpRequest(); + } catch( e ) {} +} +function createActiveXHR() { + try { + return new window.ActiveXObject( "Microsoft.XMLHTTP" ); + } catch( e ) {} +} -// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) -jQuery.ajaxPrefilter( function( s ) { - if ( s.crossDomain ) { - s.contents.script = false; - } -} ); // Install script dataType -jQuery.ajaxSetup( { +jQuery.ajaxSetup({ accepts: { - script: "text/javascript, application/javascript, " + - "application/ecmascript, application/x-ecmascript" + script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { - script: /\b(?:java|ecma)script\b/ + script: /(?:java|ecma)script/ }, converters: { "text script": function( text ) { @@ -9607,51 +9739,78 @@ jQuery.ajaxSetup( { return text; } } -} ); +}); -// Handle cache's special case and crossDomain +// Handle cache's special case and global jQuery.ajaxPrefilter( "script", function( s ) { if ( s.cache === undefined ) { s.cache = false; } if ( s.crossDomain ) { s.type = "GET"; + s.global = false; } -} ); +}); // Bind script tag hack transport -jQuery.ajaxTransport( "script", function( s ) { +jQuery.ajaxTransport( "script", function(s) { // This transport only deals with cross domain requests if ( s.crossDomain ) { - var script, callback; + + var script, + head = document.head || jQuery("head")[0] || document.documentElement; + return { - send: function( _, complete ) { - script = jQuery( "<script>" ).prop( { - charset: s.scriptCharset, - src: s.url - } ).on( - "load error", - callback = function( evt ) { - script.remove(); - callback = null; - if ( evt ) { - complete( evt.type === "error" ? 404 : 200, evt.type ); + + send: function( _, callback ) { + + script = document.createElement("script"); + + script.async = true; + + if ( s.scriptCharset ) { + script.charset = s.scriptCharset; + } + + script.src = s.url; + + // Attach handlers for all browsers + script.onload = script.onreadystatechange = function( _, isAbort ) { + + if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) { + + // Handle memory leak in IE + script.onload = script.onreadystatechange = null; + + // Remove the script + if ( script.parentNode ) { + script.parentNode.removeChild( script ); + } + + // Dereference the script + script = null; + + // Callback if not abort + if ( !isAbort ) { + callback( 200, "success" ); } } - ); + }; + // Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending // Use native DOM manipulation to avoid our domManip AJAX trickery - document.head.appendChild( script[ 0 ] ); + head.insertBefore( script, head.firstChild ); }, + abort: function() { - if ( callback ) { - callback(); + if ( script ) { + script.onload( undefined, true ); } } }; } -} ); +}); @@ -9660,14 +9819,14 @@ var oldCallbacks = [], rjsonp = /(=)\?(?=&|$)|\?\?/; // Default jsonp settings -jQuery.ajaxSetup( { +jQuery.ajaxSetup({ jsonp: "callback", jsonpCallback: function() { var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); this[ callback ] = true; return callback; } -} ); +}); // Detect, normalize options and install callbacks for jsonp requests jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { @@ -9675,10 +9834,7 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { var callbackName, overwritten, responseContainer, jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? "url" : - typeof s.data === "string" && - ( s.contentType || "" ) - .indexOf( "application/x-www-form-urlencoded" ) === 0 && - rjsonp.test( s.data ) && "data" + typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data" ); // Handle iff the expected data type is "jsonp" or we have a parameter to set @@ -9697,14 +9853,14 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { } // Use data converter to retrieve json after script execution - s.converters[ "script json" ] = function() { + s.converters["script json"] = function() { if ( !responseContainer ) { jQuery.error( callbackName + " was not called" ); } return responseContainer[ 0 ]; }; - // Force json dataType + // force json dataType s.dataTypes[ 0 ] = "json"; // Install callback @@ -9714,24 +9870,16 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { }; // Clean-up function (fires after converters) - jqXHR.always( function() { - - // If previous value didn't exist - remove it - if ( overwritten === undefined ) { - jQuery( window ).removeProp( callbackName ); - - // Otherwise restore preexisting value - } else { - window[ callbackName ] = overwritten; - } + jqXHR.always(function() { + // Restore preexisting value + window[ callbackName ] = overwritten; // Save back as free if ( s[ callbackName ] ) { - - // Make sure that re-using the options doesn't screw things around + // make sure that re-using the options doesn't screw things around s.jsonpCallback = originalSettings.jsonpCallback; - // Save the callback name for future use + // save the callback name for future use oldCallbacks.push( callbackName ); } @@ -9741,70 +9889,38 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { } responseContainer = overwritten = undefined; - } ); + }); // Delegate to script return "script"; } -} ); - - +}); -// Support: Safari 8 only -// In Safari 8 documents created via document.implementation.createHTMLDocument -// collapse sibling forms: the second one becomes a child of the first one. -// Because of that, this security measure has to be disabled in Safari 8. -// https://bugs.webkit.org/show_bug.cgi?id=137337 -support.createHTMLDocument = ( function() { - var body = document.implementation.createHTMLDocument( "" ).body; - body.innerHTML = "<form></form><form></form>"; - return body.childNodes.length === 2; -} )(); -// Argument "data" should be string of html -// context (optional): If specified, the fragment will be created in this context, -// defaults to document +// data: string of html +// context (optional): If specified, the fragment will be created in this context, defaults to document // keepScripts (optional): If true, will include scripts passed in the html string jQuery.parseHTML = function( data, context, keepScripts ) { - if ( typeof data !== "string" ) { - return []; + if ( !data || typeof data !== "string" ) { + return null; } if ( typeof context === "boolean" ) { keepScripts = context; context = false; } + context = context || document; - var base, parsed, scripts; - - if ( !context ) { - - // Stop scripts or inline event handlers from being executed immediately - // by using document.implementation - if ( support.createHTMLDocument ) { - context = document.implementation.createHTMLDocument( "" ); - - // Set the base href for the created document - // so any parsed elements with URLs - // are based on the document's URL (gh-2965) - base = context.createElement( "base" ); - base.href = document.location.href; - context.head.appendChild( base ); - } else { - context = document; - } - } - - parsed = rsingleTag.exec( data ); - scripts = !keepScripts && []; + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; // Single tag if ( parsed ) { - return [ context.createElement( parsed[ 1 ] ) ]; + return [ context.createElement( parsed[1] ) ]; } - parsed = buildFragment( [ data ], context, scripts ); + parsed = jQuery.buildFragment( [ data ], context, scripts ); if ( scripts && scripts.length ) { jQuery( scripts ).remove(); @@ -9814,16 +9930,23 @@ jQuery.parseHTML = function( data, context, keepScripts ) { }; +// Keep a copy of the old load method +var _load = jQuery.fn.load; + /** * Load a url into a page */ jQuery.fn.load = function( url, params, callback ) { - var selector, type, response, + if ( typeof url !== "string" && _load ) { + return _load.apply( this, arguments ); + } + + var selector, response, type, self = this, - off = url.indexOf( " " ); + off = url.indexOf(" "); - if ( off > -1 ) { - selector = stripAndCollapse( url.slice( off ) ); + if ( off >= 0 ) { + selector = jQuery.trim( url.slice( off, url.length ) ); url = url.slice( 0, off ); } @@ -9841,16 +9964,14 @@ jQuery.fn.load = function( url, params, callback ) { // If we have elements to modify, make the request if ( self.length > 0 ) { - jQuery.ajax( { + jQuery.ajax({ url: url, - // If "type" variable is undefined, then "GET" method will be used. - // Make value of this field explicit since - // user can override it through ajaxSetup method - type: type || "GET", + // if "type" variable is undefined, then "GET" method will be used + type: type, dataType: "html", data: params - } ).done( function( responseText ) { + }).done(function( responseText ) { // Save response for use in complete callback response = arguments; @@ -9859,19 +9980,14 @@ jQuery.fn.load = function( url, params, callback ) { // If a selector was specified, locate the right elements in a dummy div // Exclude scripts to avoid IE 'Permission Denied' errors - jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) : + jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) : // Otherwise use the full result responseText ); - // If the request succeeds, this function gets "data", "status", "jqXHR" - // but they are ignored because response was set above. - // If it fails, this function gets "jqXHR", "status", "error" - } ).always( callback && function( jqXHR, status ) { - self.each( function() { - callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] ); - } ); - } ); + }).complete( callback && function( jqXHR, status ) { + self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] ); + }); } return this; @@ -9880,31 +9996,28 @@ jQuery.fn.load = function( url, params, callback ) { -// Attach a bunch of functions for handling common AJAX events -jQuery.each( [ - "ajaxStart", - "ajaxStop", - "ajaxComplete", - "ajaxError", - "ajaxSuccess", - "ajaxSend" -], function( i, type ) { - jQuery.fn[ type ] = function( fn ) { - return this.on( type, fn ); - }; -} ); - +jQuery.expr.filters.animated = function( elem ) { + return jQuery.grep(jQuery.timers, function( fn ) { + return elem === fn.elem; + }).length; +}; -jQuery.expr.pseudos.animated = function( elem ) { - return jQuery.grep( jQuery.timers, function( fn ) { - return elem === fn.elem; - } ).length; -}; +var docElem = window.document.documentElement; +/** + * Gets a window from an element + */ +function getWindow( elem ) { + return jQuery.isWindow( elem ) ? + elem : + elem.nodeType === 9 ? + elem.defaultView || elem.parentWindow : + false; +} jQuery.offset = { setOffset: function( elem, options, i ) { @@ -9913,7 +10026,7 @@ jQuery.offset = { curElem = jQuery( elem ), props = {}; - // Set position first, in-case top/left are set even on static elem + // set position first, in-case top/left are set even on static elem if ( position === "static" ) { elem.style.position = "relative"; } @@ -9922,24 +10035,20 @@ jQuery.offset = { curCSSTop = jQuery.css( elem, "top" ); curCSSLeft = jQuery.css( elem, "left" ); calculatePosition = ( position === "absolute" || position === "fixed" ) && - ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1; + jQuery.inArray("auto", [ curCSSTop, curCSSLeft ] ) > -1; - // Need to be able to calculate position if either - // top or left is auto and position is either absolute or fixed + // need to be able to calculate position if either top or left is auto and position is either absolute or fixed if ( calculatePosition ) { curPosition = curElem.position(); curTop = curPosition.top; curLeft = curPosition.left; - } else { curTop = parseFloat( curCSSTop ) || 0; curLeft = parseFloat( curCSSLeft ) || 0; } if ( jQuery.isFunction( options ) ) { - - // Use jQuery.extend here to allow modification of coordinates argument (gh-1848) - options = options.call( elem, i, jQuery.extend( {}, curOffset ) ); + options = options.call( elem, i, curOffset ); } if ( options.top != null ) { @@ -9951,49 +10060,47 @@ jQuery.offset = { if ( "using" in options ) { options.using.call( elem, props ); - } else { curElem.css( props ); } } }; -jQuery.fn.extend( { +jQuery.fn.extend({ offset: function( options ) { - - // Preserve chaining for setter if ( arguments.length ) { return options === undefined ? this : - this.each( function( i ) { + this.each(function( i ) { jQuery.offset.setOffset( this, options, i ); - } ); + }); } - var doc, docElem, rect, win, - elem = this[ 0 ]; + var docElem, win, + box = { top: 0, left: 0 }, + elem = this[ 0 ], + doc = elem && elem.ownerDocument; - if ( !elem ) { + if ( !doc ) { return; } - // Return zeros for disconnected and hidden (display: none) elements (gh-2310) - // Support: IE <=11 only - // Running getBoundingClientRect on a - // disconnected node in IE throws an error - if ( !elem.getClientRects().length ) { - return { top: 0, left: 0 }; - } - - rect = elem.getBoundingClientRect(); - - doc = elem.ownerDocument; docElem = doc.documentElement; - win = doc.defaultView; + // Make sure it's not a disconnected DOM node + if ( !jQuery.contains( docElem, elem ) ) { + return box; + } + + // If we don't have gBCR, just use 0,0 rather than error + // BlackBerry 5, iOS 3 (original iPhone) + if ( typeof elem.getBoundingClientRect !== strundefined ) { + box = elem.getBoundingClientRect(); + } + win = getWindow( doc ); return { - top: rect.top + win.pageYOffset - docElem.clientTop, - left: rect.left + win.pageXOffset - docElem.clientLeft + top: box.top + ( win.pageYOffset || docElem.scrollTop ) - ( docElem.clientTop || 0 ), + left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 ) }; }, @@ -10003,124 +10110,99 @@ jQuery.fn.extend( { } var offsetParent, offset, - elem = this[ 0 ], - parentOffset = { top: 0, left: 0 }; + parentOffset = { top: 0, left: 0 }, + elem = this[ 0 ]; - // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, - // because it is its only offset parent + // fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent if ( jQuery.css( elem, "position" ) === "fixed" ) { - - // Assume getBoundingClientRect is there when computed position is fixed + // we assume that getBoundingClientRect is available when computed position is fixed offset = elem.getBoundingClientRect(); - } else { - // Get *real* offsetParent offsetParent = this.offsetParent(); // Get correct offsets offset = this.offset(); - if ( !nodeName( offsetParent[ 0 ], "html" ) ) { + if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) { parentOffset = offsetParent.offset(); } // Add offsetParent borders - parentOffset = { - top: parentOffset.top + jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ), - left: parentOffset.left + jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true ) - }; + parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ); + parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true ); } // Subtract parent offsets and element margins + // note: when an element has margin: auto the offsetLeft and marginLeft + // are the same in Safari causing offset.left to incorrectly be 0 return { - top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), - left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true ) + top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), + left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true) }; }, - // This method will return documentElement in the following cases: - // 1) For the element inside the iframe without offsetParent, this method will return - // documentElement of the parent window - // 2) For the hidden or detached element - // 3) For body or html element, i.e. in case of the html node - it will return itself - // - // but those exceptions were never presented as a real life use-cases - // and might be considered as more preferable results. - // - // This logic, however, is not guaranteed and can change at any point in the future offsetParent: function() { - return this.map( function() { - var offsetParent = this.offsetParent; + return this.map(function() { + var offsetParent = this.offsetParent || docElem; - while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) { + while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position" ) === "static" ) ) { offsetParent = offsetParent.offsetParent; } - - return offsetParent || documentElement; - } ); + return offsetParent || docElem; + }); } -} ); +}); // Create scrollLeft and scrollTop methods jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { - var top = "pageYOffset" === prop; + var top = /Y/.test( prop ); jQuery.fn[ method ] = function( val ) { return access( this, function( elem, method, val ) { - - // Coalesce documents and windows - var win; - if ( jQuery.isWindow( elem ) ) { - win = elem; - } else if ( elem.nodeType === 9 ) { - win = elem.defaultView; - } + var win = getWindow( elem ); if ( val === undefined ) { - return win ? win[ prop ] : elem[ method ]; + return win ? (prop in win) ? win[ prop ] : + win.document.documentElement[ method ] : + elem[ method ]; } if ( win ) { win.scrollTo( - !top ? val : win.pageXOffset, - top ? val : win.pageYOffset + !top ? val : jQuery( win ).scrollLeft(), + top ? val : jQuery( win ).scrollTop() ); } else { elem[ method ] = val; } - }, method, val, arguments.length ); + }, method, val, arguments.length, null ); }; -} ); +}); -// Support: Safari <=7 - 9.1, Chrome <=37 - 49 // Add the top/left cssHooks using jQuery.fn.position // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 -// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347 -// getComputedStyle returns percent when specified for top/left/bottom/right; -// rather than make the css module depend on the offset module, just check for it here +// getComputedStyle returns percent when specified for top/left/bottom/right +// rather than make the css module depend on the offset module, we just check for it here jQuery.each( [ "top", "left" ], function( i, prop ) { jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, function( elem, computed ) { if ( computed ) { computed = curCSS( elem, prop ); - - // If curCSS returns percentage, fallback to offset + // if curCSS returns percentage, fallback to offset return rnumnonpx.test( computed ) ? jQuery( elem ).position()[ prop ] + "px" : computed; } } ); -} ); +}); // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, - function( defaultExtra, funcName ) { - - // Margin is only for outerHeight, outerWidth + jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) { + // margin is only for outerHeight, outerWidth jQuery.fn[ funcName ] = function( margin, value ) { var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); @@ -10129,19 +10211,18 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { var doc; if ( jQuery.isWindow( elem ) ) { - - // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729) - return funcName.indexOf( "outer" ) === 0 ? - elem[ "inner" + name ] : - elem.document.documentElement[ "client" + name ]; + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement[ "client" + name ]; } // Get document width or height if ( elem.nodeType === 9 ) { doc = elem.documentElement; - // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], - // whichever is greatest + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest + // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it. return Math.max( elem.body[ "scroll" + name ], doc[ "scroll" + name ], elem.body[ "offset" + name ], doc[ "offset" + name ], @@ -10150,49 +10231,23 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { } return value === undefined ? - // Get width or height on the element, requesting but not forcing parseFloat jQuery.css( elem, type, extra ) : // Set width or height on the element jQuery.style( elem, type, value, extra ); - }, type, chainable ? margin : undefined, chainable ); + }, type, chainable ? margin : undefined, chainable, null ); }; - } ); -} ); - - -jQuery.fn.extend( { - - bind: function( types, data, fn ) { - return this.on( types, null, data, fn ); - }, - unbind: function( types, fn ) { - return this.off( types, null, fn ); - }, - - delegate: function( selector, types, data, fn ) { - return this.on( types, selector, data, fn ); - }, - undelegate: function( selector, types, fn ) { + }); +}); - // ( namespace ) or ( selector, types [, fn] ) - return arguments.length === 1 ? - this.off( selector, "**" ) : - this.off( types, selector || "**", fn ); - } -} ); -jQuery.holdReady = function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } +// The number of elements contained in the matched element set +jQuery.fn.size = function() { + return this.length; }; -jQuery.isArray = Array.isArray; -jQuery.parseJSON = JSON.parse; -jQuery.nodeName = nodeName; + +jQuery.fn.andSelf = jQuery.fn.addBack; @@ -10213,14 +10268,13 @@ jQuery.nodeName = nodeName; if ( typeof define === "function" && define.amd ) { define( "jquery", [], function() { return jQuery; - } ); + }); } var - // Map over jQuery in case of overwrite _jQuery = window.jQuery, @@ -10239,10 +10293,10 @@ jQuery.noConflict = function( deep ) { return jQuery; }; -// Expose jQuery and $ identifiers, even in AMD -// (#7102#comment:10, https://github.com/jquery/jquery/pull/557) +// Expose jQuery and $ identifiers, even in +// AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557) // and CommonJS for browser emulators (#13566) -if ( !noGlobal ) { +if ( typeof noGlobal === strundefined ) { window.jQuery = window.$ = jQuery; } @@ -10250,4 +10304,5 @@ if ( !noGlobal ) { return jQuery; -} ); + +})); diff --git a/doc/html/_static/jquery.js b/doc/html/_static/jquery.js index 644d35e274fd64ddaf6d12af813e820c424176a9..ab28a24729b320bffd3d2f60302af949db39ab85 100644 --- a/doc/html/_static/jquery.js +++ b/doc/html/_static/jquery.js @@ -1,4 +1,4 @@ -/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S), -a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&da(a),q=W.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],cb.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=W.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ia([a],!0),j=a.style.display||j,k=r.css(a,"display"),ia([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=W.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ia([a],!0),m.done(function(){p||ia([a]),W.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=hb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],Array.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=kb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=ab||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(i||h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:ab||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);f<g;f++)if(d=kb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,hb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j}r.Animation=r.extend(kb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return fa(c.elem,a,ba.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(L);for(var c,d=0,e=a.length;d<e;d++)c=a[d],kb.tweeners[c]=kb.tweeners[c]||[],kb.tweeners[c].unshift(b)},prefilters:[ib],prefilter:function(a,b){b?kb.prefilters.unshift(a):kb.prefilters.push(a)}}),r.speed=function(a,b,c){var d=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off?d.duration=0:"number"!=typeof d.duration&&(d.duration in r.fx.speeds?d.duration=r.fx.speeds[d.duration]:d.duration=r.fx.speeds._default),null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){r.isFunction(d.old)&&d.old.call(this),d.queue&&r.dequeue(this,d.queue)},d},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(da).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=kb(this,r.extend({},a),f);(e||W.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=W.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&db.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=W.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),r.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(ab=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),ab=void 0},r.fx.timer=function(a){r.timers.push(a),r.fx.start()},r.fx.interval=13,r.fx.start=function(){bb||(bb=!0,eb())},r.fx.stop=function(){bb=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var lb,mb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), -null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Tb=[],Ub=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Tb.pop()||r.expando+"_"+ub++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Ub.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ub.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Ub,"$1"+e):b.jsonp!==!1&&(b.url+=(vb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Tb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=pb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Vb=a.jQuery,Wb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Wb),b&&a.jQuery===r&&(a.jQuery=Vb),r},b||(a.jQuery=a.$=r),r}); +/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; +if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px") +},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.ActiveXObject&&m(a).on("unload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m}); diff --git a/doc/html/_static/minus.png b/doc/html/_static/minus.png index d96755fdaf8bb2214971e0db9c1fd3077d7c419d..0f22b16b038f9578a40314ff2b5acb88402a1496 100644 Binary files a/doc/html/_static/minus.png and b/doc/html/_static/minus.png differ diff --git a/doc/html/_static/plus.png b/doc/html/_static/plus.png index 7107cec93a979b9a5f64843235a16651d563ce2d..0cfe084cfc8d10d7151a0f00faee3667afe0b24b 100644 Binary files a/doc/html/_static/plus.png and b/doc/html/_static/plus.png differ diff --git a/doc/html/_static/searchtools.js b/doc/html/_static/searchtools.js index 7473859b245fa63f5d8812e2249c8d1ae67425fd..ba82ad4877ca5803883434a08f1aea6afb43f3b6 100644 --- a/doc/html/_static/searchtools.js +++ b/doc/html/_static/searchtools.js @@ -1,52 +1,331 @@ /* - * searchtools.js + * searchtools.js_t * ~~~~~~~~~~~~~~~~ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ -if (!Scorer) { - /** - * Simple result scoring code. - */ - var Scorer = { - // Implement the following function to further tweak the score for each result - // The function takes a result array [filename, title, anchor, descr, score] - // and returns the new score. - /* - score: function(result) { - return result[4]; - }, - */ - - // query matches the full name of an object - objNameMatch: 11, - // or matches in the last dotted part of the object name - objPartialMatch: 6, - // Additive scores depending on the priority of the object - objPrio: {0: 15, // used to be importantResults - 1: 5, // used to be objectResults - 2: -5}, // used to be unimportantResults - // Used when the priority is not in the mapping. - objPrioDefault: 0, - - // query found in title - title: 15, - // query found in terms - term: 5 + +/* Non-minified version JS is _stemmer.js if file is provided */ +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' }; -} -if (!splitQuery) { - function splitQuery(query) { - return query.split(/\s+/); + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; } } + + +/** + * Simple result scoring code. + */ +var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [filename, title, anchor, descr, score] + // and returns the new score. + /* + score: function(result) { + return result[4]; + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: {0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5}, // used to be unimportantResults + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + // query found in terms + term: 5 +}; + + + + + +var splitChars = (function() { + var result = {}; + var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648, + 1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702, + 2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971, + 2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345, + 3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761, + 3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, + 4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125, + 8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695, + 11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587, + 43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141]; + var i, j, start, end; + for (i = 0; i < singles.length; i++) { + result[singles[i]] = true; + } + var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709], + [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161], + [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568], + [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807], + [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047], + [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383], + [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450], + [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547], + [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673], + [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820], + [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946], + [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023], + [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173], + [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332], + [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481], + [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718], + [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791], + [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095], + [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205], + [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687], + [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968], + [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869], + [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102], + [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271], + [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592], + [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822], + [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167], + [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959], + [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143], + [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318], + [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483], + [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101], + [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567], + [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292], + [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444], + [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783], + [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311], + [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511], + [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774], + [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071], + [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263], + [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519], + [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647], + [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967], + [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295], + [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274], + [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007], + [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381], + [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]]; + for (i = 0; i < ranges.length; i++) { + start = ranges[i][0]; + end = ranges[i][1]; + for (j = start; j <= end; j++) { + result[j] = true; + } + } + return result; +})(); + +function splitQuery(query) { + var result = []; + var start = -1; + for (var i = 0; i < query.length; i++) { + if (splitChars[query.charCodeAt(i)]) { + if (start !== -1) { + result.push(query.slice(start, i)); + start = -1; + } + } else if (start === -1) { + start = i; + } + } + if (start !== -1) { + result.push(query.slice(start)); + } + return result; +} + + + + /** * Search Module */ @@ -138,7 +417,7 @@ var Search = { */ query : function(query) { var i; - var stopwords = DOCUMENTATION_OPTIONS.SEARCH_LANGUAGE_STOP_WORDS; + var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"]; // stem the searchterms and add them to the correct list var stemmer = new Stemmer(); @@ -159,10 +438,6 @@ var Search = { } // stem the word var word = stemmer.stemWord(tmp[i].toLowerCase()); - // prevent stemmer from cutting word smaller than two chars - if(word.length < 3 && tmp[i].length >= 3) { - word = tmp[i]; - } var toAppend; // select the correct list if (word[0] == '-') { @@ -260,11 +535,7 @@ var Search = { displayNextItem(); }); } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) { - var suffix = DOCUMENTATION_OPTIONS.SOURCELINK_SUFFIX; - if (suffix === undefined) { - suffix = '.txt'; - } - $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[5] + (item[5].slice(-suffix.length) === suffix ? '' : suffix), + $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[0] + '.txt', dataType: "text", complete: function(jqxhr, textstatus) { var data = jqxhr.responseText; @@ -303,7 +574,6 @@ var Search = { */ performObjectSearch : function(object, otherterms) { var filenames = this._index.filenames; - var docnames = this._index.docnames; var objects = this._index.objects; var objnames = this._index.objnames; var titles = this._index.titles; @@ -357,7 +627,7 @@ var Search = { } else { score += Scorer.objPrioDefault; } - results.push([docnames[match[0]], fullname, '#'+anchor, descr, score, filenames[match[0]]]); + results.push([filenames[match[0]], fullname, '#'+anchor, descr, score]); } } } @@ -369,7 +639,6 @@ var Search = { * search for full-text terms in the index */ performTermsSearch : function(searchterms, excluded, terms, titleterms) { - var docnames = this._index.docnames; var filenames = this._index.filenames; var titles = this._index.titles; @@ -444,7 +713,7 @@ var Search = { // select one (max) score for the file. // for better ranking, we should calculate ranking by using words statistics like basic tf-idf... var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]})); - results.push([docnames[file], titles[file], '', null, score, filenames[file]]); + results.push([filenames[file], titles[file], '', null, score]); } } return results; @@ -479,4 +748,4 @@ var Search = { $(document).ready(function() { Search.init(); -}); +}); \ No newline at end of file diff --git a/doc/html/_static/up-pressed.png b/doc/html/_static/up-pressed.png index acee3b68efbbfb9de3bfa73fce2531380f4bd820..99e7210962b0667e47408b40fdb5dd14749a156e 100644 Binary files a/doc/html/_static/up-pressed.png and b/doc/html/_static/up-pressed.png differ diff --git a/doc/html/_static/up.png b/doc/html/_static/up.png index 2a940a7da7c14e6a36901e83306849ba7efad4d4..26de002e85d3f5df53163e80b61af59bc4a6389b 100644 Binary files a/doc/html/_static/up.png and b/doc/html/_static/up.png differ diff --git a/doc/html/_static/websupport.js b/doc/html/_static/websupport.js index 78e14bb4a1ee080ca01b92b20ed583941db04373..98e7f40b6327e673e382068cdfb3bf3674a06cca 100644 --- a/doc/html/_static/websupport.js +++ b/doc/html/_static/websupport.js @@ -4,7 +4,7 @@ * * sphinx.websupport utilities for all documentation. * - * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -301,7 +301,7 @@ li.hide(); // Determine where in the parents children list to insert this comment. - for(var i=0; i < siblings.length; i++) { + for(i=0; i < siblings.length; i++) { if (comp(comment, siblings[i]) <= 0) { $('#cd' + siblings[i].id) .parent() diff --git a/doc/html/actions/index.html b/doc/html/actions/index.html index ed184c653b33ac5193797b4a9080f3280310114d..5a1d1b275f86273cc4103e055379b5a42d74a62a 100644 --- a/doc/html/actions/index.html +++ b/doc/html/actions/index.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>ProMod3 Actions — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="Documentation For Users" href="../users.html" /> <link rel="next" title="Building ProMod3" href="../buildsystem.html" /> <link rel="prev" title="Getting Started" href="../gettingstarted.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -37,58 +50,58 @@ <div class="section" id="project-actions"> <span id="promod-actions"></span><h1>ProMod3 Actions<a class="headerlink" href="#project-actions" title="Permalink to this headline">¶</a></h1> <p>A pure command line interface of ProMod3 is provided by actions. -You can execute <code class="docutils literal notranslate"><span class="pre">pm</span> <span class="pre">help</span></code> for a list of possible actions and for every action, -you can type <code class="docutils literal notranslate"><span class="pre">pm</span> <span class="pre"><ACTION></span> <span class="pre">-h</span></code> to get a description on its usage.</p> +You can execute <code class="docutils literal"><span class="pre">pm</span> <span class="pre">help</span></code> for a list of possible actions and for every action, +you can type <code class="docutils literal"><span class="pre">pm</span> <span class="pre"><ACTION></span> <span class="pre">-h</span></code> to get a description on its usage.</p> <p>Here we list the most prominent actions with simple examples.</p> <div class="section" id="building-models"> <span id="promod-build-model"></span><h2>Building models<a class="headerlink" href="#building-models" title="Permalink to this headline">¶</a></h2> <p>You can run a full protein homology modelling pipeline from the command line with</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> pm build-model <span class="o">[</span>-h<span class="o">]</span> <span class="o">(</span>-f <FILE> <span class="p">|</span> -c <FILE> <span class="p">|</span> -j <OBJECT><span class="p">|</span><FILE><span class="o">)</span> +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> pm build-model <span class="o">[</span>-h<span class="o">]</span> <span class="o">(</span>-f <FILE> <span class="p">|</span> -c <FILE> <span class="p">|</span> -j <OBJECT><span class="p">|</span><FILE><span class="o">)</span> <span class="go"> (-p <FILE> | -e <FILE>) [-s <FILE>] [-o <FILENAME>]</span> <span class="go"> [-r] [-t]</span> </pre></div> </div> <p>Example usage:</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> pm build-model -f aln.fasta -p tpl.pdb +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> pm build-model -f aln.fasta -p tpl.pdb </pre></div> </div> -<p>This reads a target-template alignment from <code class="file docutils literal notranslate"><span class="pre">aln.fasta</span></code> and a matching -structure from <code class="file docutils literal notranslate"><span class="pre">tpl.pdb</span></code> and produces a gap-less model which is stored as -<code class="file docutils literal notranslate"><span class="pre">model.pdb</span></code>. The output filename can be controlled with the <code class="docutils literal notranslate"><span class="pre">-o</span></code> flag.</p> -<p>Target-template alignments can be provided in FASTA (<code class="docutils literal notranslate"><span class="pre">-f</span></code>), CLUSTAL (<code class="docutils literal notranslate"><span class="pre">-c</span></code>) -or as JSON files/objects (<code class="docutils literal notranslate"><span class="pre">-j</span></code>). Files can be plain or gzipped. +<p>This reads a target-template alignment from <code class="file docutils literal"><span class="pre">aln.fasta</span></code> and a matching +structure from <code class="file docutils literal"><span class="pre">tpl.pdb</span></code> and produces a gap-less model which is stored as +<code class="file docutils literal"><span class="pre">model.pdb</span></code>. The output filename can be controlled with the <code class="docutils literal"><span class="pre">-o</span></code> flag.</p> +<p>Target-template alignments can be provided in FASTA (<code class="docutils literal"><span class="pre">-f</span></code>), CLUSTAL (<code class="docutils literal"><span class="pre">-c</span></code>) +or as JSON files/objects (<code class="docutils literal"><span class="pre">-j</span></code>). Files can be plain or gzipped. At least one alignment must be given and you cannot mix file formats. Multiple alignment files can be given and target chains will be appended in the given order. The chains of the target model are named with default chain names -(A, B, C, …, see <a class="reference internal" href="../modelling/pipeline.html#promod3.modelling.BuildRawModel" title="promod3.modelling.BuildRawModel"><code class="xref py py-meth docutils literal notranslate"><span class="pre">BuildRawModel()</span></code></a>). +(A, B, C, ..., see <a class="reference internal" href="../modelling/pipeline.html#promod3.modelling.BuildRawModel" title="promod3.modelling.BuildRawModel"><code class="xref py py-meth docutils literal"><span class="pre">BuildRawModel()</span></code></a>). Notes on the input formats:</p> <ul> <li><p class="first">Leading/trailing whitespaces of sequence names will always be deleted</p> </li> <li><p class="first">FASTA input example:</p> -<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>>target +<div class="highlight-none"><div class="highlight"><pre><span></span>>target HGFHVHEFGDNTNGCMSSGPHFNPYGKEHGAPVDENRHLG >2jlp-1.A|55 RAIHVHQFGDLSQGCESTGPHYNPLAVPH------PQHPG </pre></div> </div> -<p>Target sequence is either named “trg” or “target” or the first sequence is +<p>Target sequence is either named “trg” or “target” or the first sequence is used. Template sequence names can encode an identifier for the chain to attach to it and optionally an offset (here: 55, see below for details). Leading whitespaces of fasta headers will be deleted</p> </li> <li><p class="first">CLUSTAL input follows the same logic as FASTA input</p> </li> -<li><p class="first">JSON input: filenames are not allowed to start with ‘{‘. -JSON objects contain an entry with key ‘alignmentlist’. -That in turn is an array of objects with keys ‘target’ and ‘template’. +<li><p class="first">JSON input: filenames are not allowed to start with ‘{‘. +JSON objects contain an entry with key ‘alignmentlist’. +That in turn is an array of objects with keys ‘target’ and ‘template’. Those in turn are objects with keys -‘name’ (string id. for sequence), -‘seqres’ (string for aligned sequence) and optionally for templates -‘offset’ (number of residues to skip in structure file attached to it). +‘name’ (string id. for sequence), +‘seqres’ (string for aligned sequence) and optionally for templates +‘offset’ (number of residues to skip in structure file attached to it). Example:</p> -<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="nt">"alignmentlist"</span><span class="p">:</span> <span class="p">[</span> <span class="p">{</span> +<div class="highlight-json"><div class="highlight"><pre><span></span><span class="p">{</span><span class="nt">"alignmentlist"</span><span class="p">:</span> <span class="p">[</span> <span class="p">{</span> <span class="nt">"target"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"name"</span><span class="p">:</span> <span class="s2">"mytrg"</span><span class="p">,</span> <span class="nt">"seqres"</span><span class="p">:</span> <span class="s2">"HGFHVHEFGDNTNGCMSSGPHFNPYGKEHGAPVDENRHLG"</span> @@ -103,10 +116,10 @@ Example:</p> </div> </li> </ul> -<p>Structures can be provided in PDB (<code class="docutils literal notranslate"><span class="pre">-p</span></code>) or in any format readable by the -<a class="reference external" href="https://www.openstructure.org/docs/1.11/io/io/#ost.io.LoadEntity" title="(in OpenStructure v1.11.0)"><code class="xref py py-func docutils literal notranslate"><span class="pre">ost.io.LoadEntity()</span></code></a> method (<code class="docutils literal notranslate"><span class="pre">-e</span></code>). In the latter case, the format is -chosen by file ending. Recognized File Extensions: <code class="docutils literal notranslate"><span class="pre">.ent</span></code>, <code class="docutils literal notranslate"><span class="pre">.pdb</span></code>, -<code class="docutils literal notranslate"><span class="pre">.ent.gz</span></code>, <code class="docutils literal notranslate"><span class="pre">.pdb.gz</span></code>, <code class="docutils literal notranslate"><span class="pre">.cif</span></code>, <code class="docutils literal notranslate"><span class="pre">.cif.gz</span></code>. At least one structure must be +<p>Structures can be provided in PDB (<code class="docutils literal"><span class="pre">-p</span></code>) or in any format readable by the +<a class="reference external" href="https://www.openstructure.org/docs/2.0/io/io/#ost.io.LoadEntity" title="(in OpenStructure v2.0.0)"><code class="xref py py-func docutils literal"><span class="pre">ost.io.LoadEntity()</span></code></a> method (<code class="docutils literal"><span class="pre">-e</span></code>). In the latter case, the format is +chosen by file ending. Recognized File Extensions: <code class="docutils literal"><span class="pre">.ent</span></code>, <code class="docutils literal"><span class="pre">.pdb</span></code>, +<code class="docutils literal"><span class="pre">.ent.gz</span></code>, <code class="docutils literal"><span class="pre">.pdb.gz</span></code>, <code class="docutils literal"><span class="pre">.cif</span></code>, <code class="docutils literal"><span class="pre">.cif.gz</span></code>. At least one structure must be given and you cannot mix file formats. Multiple structures can be given and each structure may have multiple chains, but care must be taken to identify which chain to attach to which template sequence. Chains for each sequence are @@ -114,24 +127,24 @@ identified based on the sequence name of the templates in the alignments. Valid sequence names are:</p> <ul class="simple"> <li>anything, if only one structure with one chain</li> -<li>“<FILE>.<CHAIN>”, where <FILE> is the base file name of an imported structure +<li>“<FILE>.<CHAIN>”, where <FILE> is the base file name of an imported structure with no extensions and <CHAIN> is the identifier of the chain in the imported structure.</li> -<li>“<FILE>” if only one chain in file</li> -<li>“<CHAIN>” if only one file imported</li> -<li>“<CHAINID>|<OFFSET>”, where <CHAINID> identifies the chain as above and +<li>“<FILE>” if only one chain in file</li> +<li>“<CHAIN>” if only one file imported</li> +<li>“<CHAINID>|<OFFSET>”, where <CHAINID> identifies the chain as above and <OFFSET> is the number of residues to skip for that chain to reach the first residue in the aligned sequence. Leading/trailing whitespaces of <CHAINID> and <OFFSET> are ignored.</li> </ul> -<p>Example: <code class="docutils literal notranslate"><span class="pre">...</span> <span class="pre">-p</span> <span class="pre">data/2jlp.pdb.gz</span></code>, where the pdb file has chains <code class="docutils literal notranslate"><span class="pre">A</span></code>, -<code class="docutils literal notranslate"><span class="pre">B</span></code>, <code class="docutils literal notranslate"><span class="pre">C</span></code> and the template sequence is named <code class="docutils literal notranslate"><span class="pre">2jlp.A|55</span></code>.</p> -<p>You can optionally specify sequence profiles to be added (<code class="docutils literal notranslate"><span class="pre">-s</span></code>) and linked +<p>Example: <code class="docutils literal"><span class="pre">...</span> <span class="pre">-p</span> <span class="pre">data/2jlp.pdb.gz</span></code>, where the pdb file has chains <code class="docutils literal"><span class="pre">A</span></code>, +<code class="docutils literal"><span class="pre">B</span></code>, <code class="docutils literal"><span class="pre">C</span></code> and the template sequence is named <code class="docutils literal"><span class="pre">2jlp.A|55</span></code>.</p> +<p>You can optionally specify sequence profiles to be added (<code class="docutils literal"><span class="pre">-s</span></code>) and linked to the corresponding target sequences. This has an impact on loop scoring with the database approach. The profiles can be provided as plain files or gzipped. Following file extensions are understood: .hhm, .hhm.gz, .pssm, .pssm.gz. -Consider to use <a class="reference external" href="https://www.openstructure.org/docs/1.11/bindings/hhblits/#ost.bindings.hhblits.HHblits.A3MToProfile" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.bindings.hhblits.HHblits.A3MToProfile()</span></code></a> if you have a +Consider to use <a class="reference external" href="https://www.openstructure.org/docs/2.0/bindings/hhblits/#ost.bindings.hhblits.HHblits.A3MToProfile" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.bindings.hhblits.HHblits.A3MToProfile()</span></code></a> if you have a file in a3m format at hand.</p> <ul class="simple"> <li>The profiles are mapped based on exact matches towards the gapless @@ -142,23 +155,23 @@ i.e. one profile is mapped to several chains in case of homo-oligomers</li> target sequences</li> </ul> <p>Example usage:</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> pm build-model -f aln.fasta -p tpl.pdb -s prof.hhm +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> pm build-model -f aln.fasta -p tpl.pdb -s prof.hhm </pre></div> </div> <p>A fast torsion angle based sampling is performed in case of Monte Carlo -sampling. You can enforce the usage of structural fragments with <code class="docutils literal notranslate"><span class="pre">-r</span></code> +sampling. You can enforce the usage of structural fragments with <code class="docutils literal"><span class="pre">-r</span></code> but this increases runtime due to searching the required fragments. -Setup of the according <a class="reference internal" href="../modelling/algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.modelling.FraggerHandle</span></code></a> +Setup of the according <a class="reference internal" href="../modelling/algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal"><span class="pre">promod3.modelling.FraggerHandle</span></code></a> objects is performed in the -<a class="reference internal" href="../core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser" title="promod3.core.pm3argparse.PM3ArgumentParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">PM3ArgumentParser</span></code></a> class as described in -detail <a class="reference internal" href="../core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.AddFragments" title="promod3.core.pm3argparse.PM3ArgumentParser.AddFragments"><code class="xref py py-meth docutils literal notranslate"><span class="pre">here</span></code></a>.</p> +<a class="reference internal" href="../core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser" title="promod3.core.pm3argparse.PM3ArgumentParser"><code class="xref py py-class docutils literal"><span class="pre">PM3ArgumentParser</span></code></a> class as described in +detail <a class="reference internal" href="../core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.AddFragments" title="promod3.core.pm3argparse.PM3ArgumentParser.AddFragments"><code class="xref py py-meth docutils literal"><span class="pre">here</span></code></a>.</p> <p>The default modelling pipeline in ProMod3 is optimized to generate a gap-free model of the region in the target sequence(s) that is covered with template information. Terminal extensions without template coverage are negelected. -You can enforce a model of the full target sequence(s) by adding <code class="docutils literal notranslate"><span class="pre">-t</span></code>. +You can enforce a model of the full target sequence(s) by adding <code class="docutils literal"><span class="pre">-t</span></code>. The terminal parts will be modelled with a crude Monte Carlo approach. Be aware that the accuracy of those termini is likely to be limited. Termini of length 1 -won’t be modelled.</p> +won’t be modelled.</p> <p>Possible exit codes of the action:</p> <ul class="simple"> <li>0: all went well</li> @@ -167,66 +180,66 @@ won’t be modelled.</p> <li>3: failed to perform modelling (internal error)</li> <li>4: failed to write results to file</li> <li>other non-zero: failure in argument checking -(see <a class="reference internal" href="../core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser" title="promod3.core.pm3argparse.PM3ArgumentParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.core.pm3argparse.PM3ArgumentParser</span></code></a>)</li> +(see <a class="reference internal" href="../core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser" title="promod3.core.pm3argparse.PM3ArgumentParser"><code class="xref py py-class docutils literal"><span class="pre">promod3.core.pm3argparse.PM3ArgumentParser</span></code></a>)</li> </ul> </div> <div class="section" id="sidechain-modelling"> <h2>Sidechain Modelling<a class="headerlink" href="#sidechain-modelling" title="Permalink to this headline">¶</a></h2> <p>You can (re-)construct the sidechains in a model from the command line.</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> usage: build-sidechains <span class="o">[</span>-h<span class="o">]</span> <span class="o">(</span>-p <FILE> <span class="p">|</span> -e <FILE><span class="o">)</span> <span class="o">[</span>-o <FILENAME><span class="o">]</span> <span class="o">[</span>-k<span class="o">]</span> <span class="o">[</span>-n<span class="o">]</span> +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> usage: build-sidechains <span class="o">[</span>-h<span class="o">]</span> <span class="o">(</span>-p <FILE> <span class="p">|</span> -e <FILE><span class="o">)</span> <span class="o">[</span>-o <FILENAME><span class="o">]</span> <span class="o">[</span>-k<span class="o">]</span> <span class="o">[</span>-n<span class="o">]</span> <span class="go"> [-r] [-i] [-s]</span> </pre></div> </div> <p>Example usage:</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> pm build-sidechains -p input.pdb +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> pm build-sidechains -p input.pdb </pre></div> </div> <p>This reads a structure stored in in.pdb, strips all sidechains, detects and models disulfid bonds and reconstructs all sidechains with the -flexible rotamer model. The result is stored as <code class="file docutils literal notranslate"><span class="pre">out.pdb</span></code>. -The output filename can be controlled with the <code class="docutils literal notranslate"><span class="pre">-o</span></code> flag.</p> -<p>A structure can be provided in PDB (<code class="docutils literal notranslate"><span class="pre">-p</span></code>) or in any format readable by the -<a class="reference external" href="https://www.openstructure.org/docs/1.11/io/io/#ost.io.LoadEntity" title="(in OpenStructure v1.11.0)"><code class="xref py py-func docutils literal notranslate"><span class="pre">ost.io.LoadEntity()</span></code></a> method (<code class="docutils literal notranslate"><span class="pre">-e</span></code>). In the latter case, the format is -chosen by file ending. Recognized File Extensions: <code class="docutils literal notranslate"><span class="pre">.ent</span></code>, <code class="docutils literal notranslate"><span class="pre">.pdb</span></code>, -<code class="docutils literal notranslate"><span class="pre">.ent.gz</span></code>, <code class="docutils literal notranslate"><span class="pre">.pdb.gz</span></code>, <code class="docutils literal notranslate"><span class="pre">.cif</span></code>, <code class="docutils literal notranslate"><span class="pre">.cif.gz</span></code>.</p> +flexible rotamer model. The result is stored as <code class="file docutils literal"><span class="pre">out.pdb</span></code>. +The output filename can be controlled with the <code class="docutils literal"><span class="pre">-o</span></code> flag.</p> +<p>A structure can be provided in PDB (<code class="docutils literal"><span class="pre">-p</span></code>) or in any format readable by the +<a class="reference external" href="https://www.openstructure.org/docs/2.0/io/io/#ost.io.LoadEntity" title="(in OpenStructure v2.0.0)"><code class="xref py py-func docutils literal"><span class="pre">ost.io.LoadEntity()</span></code></a> method (<code class="docutils literal"><span class="pre">-e</span></code>). In the latter case, the format is +chosen by file ending. Recognized File Extensions: <code class="docutils literal"><span class="pre">.ent</span></code>, <code class="docutils literal"><span class="pre">.pdb</span></code>, +<code class="docutils literal"><span class="pre">.ent.gz</span></code>, <code class="docutils literal"><span class="pre">.pdb.gz</span></code>, <code class="docutils literal"><span class="pre">.cif</span></code>, <code class="docutils literal"><span class="pre">.cif.gz</span></code>.</p> <p>Several flags control the modelling behaviour:</p> <dl class="option"> <dt id="cmdoption-k"> -<code class="descname">-k</code><code class="descclassname"></code><code class="descclassname">, </code><code class="descname">--keep-sidechains</code><code class="descclassname"></code><a class="headerlink" href="#cmdoption-k" title="Permalink to this definition">¶</a></dt> +<span id="cmdoption--keep-sidechains"></span><code class="descname">-k</code><code class="descclassname"></code><code class="descclassname">, </code><code class="descname">--keep-sidechains</code><code class="descclassname"></code><a class="headerlink" href="#cmdoption-k" title="Permalink to this definition">¶</a></dt> <dd><p>Keep existing sidechains.</p> </dd></dl> <dl class="option"> <dt id="cmdoption-n"> -<code class="descname">-n</code><code class="descclassname"></code><code class="descclassname">, </code><code class="descname">--no-disulfids</code><code class="descclassname"></code><a class="headerlink" href="#cmdoption-n" title="Permalink to this definition">¶</a></dt> +<span id="cmdoption--no-disulfids"></span><code class="descname">-n</code><code class="descclassname"></code><code class="descclassname">, </code><code class="descname">--no-disulfids</code><code class="descclassname"></code><a class="headerlink" href="#cmdoption-n" title="Permalink to this definition">¶</a></dt> <dd><p>Do not build disulfid bonds before sidechain optimization</p> </dd></dl> <dl class="option"> <dt id="cmdoption-r"> -<code class="descname">-r</code><code class="descclassname"></code><code class="descclassname">, </code><code class="descname">--rigid-rotamers</code><code class="descclassname"></code><a class="headerlink" href="#cmdoption-r" title="Permalink to this definition">¶</a></dt> +<span id="cmdoption--rigid-rotamers"></span><code class="descname">-r</code><code class="descclassname"></code><code class="descclassname">, </code><code class="descname">--rigid-rotamers</code><code class="descclassname"></code><a class="headerlink" href="#cmdoption-r" title="Permalink to this definition">¶</a></dt> <dd><p>Do not use rotamers with subrotamers</p> </dd></dl> <dl class="option"> <dt id="cmdoption-i"> -<code class="descname">-i</code><code class="descclassname"></code><code class="descclassname">, </code><code class="descname">--backbone-independent</code><code class="descclassname"></code><a class="headerlink" href="#cmdoption-i" title="Permalink to this definition">¶</a></dt> +<span id="cmdoption--backbone-independent"></span><code class="descname">-i</code><code class="descclassname"></code><code class="descclassname">, </code><code class="descname">--backbone-independent</code><code class="descclassname"></code><a class="headerlink" href="#cmdoption-i" title="Permalink to this definition">¶</a></dt> <dd><p>Use backbone independent rotamer library -(from <a class="reference internal" href="../sidechain/loading.html#promod3.sidechain.LoadLib" title="promod3.sidechain.LoadLib"><code class="xref py py-meth docutils literal notranslate"><span class="pre">promod3.sidechain.LoadLib()</span></code></a>) instead of the default backbone -dependent one (from <a class="reference internal" href="../sidechain/loading.html#promod3.sidechain.LoadBBDepLib" title="promod3.sidechain.LoadBBDepLib"><code class="xref py py-meth docutils literal notranslate"><span class="pre">promod3.sidechain.LoadBBDepLib()</span></code></a>)</p> +(from <a class="reference internal" href="../sidechain/loading.html#promod3.sidechain.LoadLib" title="promod3.sidechain.LoadLib"><code class="xref py py-meth docutils literal"><span class="pre">promod3.sidechain.LoadLib()</span></code></a>) instead of the default backbone +dependent one (from <a class="reference internal" href="../sidechain/loading.html#promod3.sidechain.LoadBBDepLib" title="promod3.sidechain.LoadBBDepLib"><code class="xref py py-meth docutils literal"><span class="pre">promod3.sidechain.LoadBBDepLib()</span></code></a>)</p> </dd></dl> <dl class="option"> <dt id="cmdoption-s"> -<code class="descname">-s</code><code class="descclassname"></code><code class="descclassname">, </code><code class="descname">--no-subrotamer-optimization</code><code class="descclassname"></code><a class="headerlink" href="#cmdoption-s" title="Permalink to this definition">¶</a></dt> +<span id="cmdoption--no-subrotamer-optimization"></span><code class="descname">-s</code><code class="descclassname"></code><code class="descclassname">, </code><code class="descname">--no-subrotamer-optimization</code><code class="descclassname"></code><a class="headerlink" href="#cmdoption-s" title="Permalink to this definition">¶</a></dt> <dd><p>Dont do subrotamer optimization if flexible rotamer model is used</p> </dd></dl> <dl class="option"> <dt id="cmdoption-f"> -<code class="descname">-f</code><code class="descclassname"></code><code class="descclassname">, </code><code class="descname">--energy_function</code><code class="descclassname"></code><a class="headerlink" href="#cmdoption-f" title="Permalink to this definition">¶</a></dt> +<span id="cmdoption--energy_function"></span><code class="descname">-f</code><code class="descclassname"></code><code class="descclassname">, </code><code class="descname">--energy_function</code><code class="descclassname"></code><a class="headerlink" href="#cmdoption-f" title="Permalink to this definition">¶</a></dt> <dd><p>The energy function to be used. Default is SCWRL4, can be any function -supported by <a class="reference internal" href="../modelling/sidechain_reconstruction.html#promod3.modelling.ReconstructSidechains" title="promod3.modelling.ReconstructSidechains"><code class="xref py py-meth docutils literal notranslate"><span class="pre">promod3.modelling.ReconstructSidechains()</span></code></a>.</p> +supported by <a class="reference internal" href="../modelling/sidechain_reconstruction.html#promod3.modelling.ReconstructSidechains" title="promod3.modelling.ReconstructSidechains"><code class="xref py py-meth docutils literal"><span class="pre">promod3.modelling.ReconstructSidechains()</span></code></a>.</p> </dd></dl> </div> @@ -239,39 +252,14 @@ supported by <a class="reference internal" href="../modelling/sidechain_reconstr </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">ProMod3 Actions</a><ul> +<li><a class="reference internal" href="#building-models">Building models</a></li> +<li><a class="reference internal" href="#sidechain-modelling">Sidechain Modelling</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> @@ -283,26 +271,23 @@ supported by <a class="reference internal" href="../modelling/sidechain_reconstr </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/actions/index.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -311,11 +296,11 @@ supported by <a class="reference internal" href="../modelling/sidechain_reconstr ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/actions/index.rst.txt" + <a href="../_sources/actions/index.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/actions/index_dev.html b/doc/html/actions/index_dev.html index 3da75334a8eb905913d22b739d3cc26764f432c2..67a5965342612a3774545b48b53dc844be10c55a 100644 --- a/doc/html/actions/index_dev.html +++ b/doc/html/actions/index_dev.html @@ -1,22 +1,34 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>test_actions - Testing Actions — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="ProMod3’s Share Of CMake" href="../cmake/index.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="Documentation For Developers" href="../developers.html" /> + <link rel="next" title="ProMod3‘s Share Of CMake" href="../cmake/index.html" /> <link rel="prev" title="Contributing" href="../contributing.html" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -35,7 +48,7 @@ <div class="body" role="main"> <div class="section" id="module-test_actions"> -<span id="test-actions-testing-actions"></span><h1><a class="reference internal" href="#module-test_actions" title="test_actions: Testing Actions"><code class="xref py py-mod docutils literal notranslate"><span class="pre">test_actions</span></code></a> - Testing Actions<a class="headerlink" href="#module-test_actions" title="Permalink to this headline">¶</a></h1> +<span id="test-actions-testing-actions"></span><h1><a class="reference internal" href="#module-test_actions" title="test_actions: Testing Actions"><code class="xref py py-mod docutils literal"><span class="pre">test_actions</span></code></a> - Testing Actions<a class="headerlink" href="#module-test_actions" title="Permalink to this headline">¶</a></h1> <p>This module is <strong>not</strong> part of the ProMod3 binary distribution. That is the productive bit running to produce models. It is only part of the source distribution intended to help developing ProMod3. Basically it supports you @@ -44,20 +57,20 @@ and stay available to monitor later changes.</p> <div class="admonition note"> <p class="first admonition-title">Note</p> <p class="last">A couple of different paths will be mentioned in the following. To make -things easier to tell apart, a prefix <code class="file docutils literal notranslate"><span class="pre"><SOURCE></span></code> refers to the code -repository, <code class="file docutils literal notranslate"><span class="pre"><BUILD></span></code> to the build directory tree.</p> +things easier to tell apart, a prefix <code class="file docutils literal"><span class="pre"><SOURCE></span></code> refers to the code +repository, <code class="file docutils literal"><span class="pre"><BUILD></span></code> to the build directory tree.</p> </div> <p>Inside the development environment, the module is only available to unit tests -in the <code class="file docutils literal notranslate"><span class="pre"><SOURCE>/actions/tests</span></code> directory. There is one special thing -about using it in your tests for an action, emerging from the way <code class="docutils literal notranslate"><span class="pre">make</span></code> runs +in the <code class="file docutils literal"><span class="pre"><SOURCE>/actions/tests</span></code> directory. There is one special thing +about using it in your tests for an action, emerging from the way <code class="docutils literal"><span class="pre">make</span></code> runs unit tests as set up via CMake. Python modules are imported from the source -directory, here this is <code class="file docutils literal notranslate"><span class="pre"><SOURCE>/actions/tests</span></code>, while the tests run -inside <code class="file docutils literal notranslate"><span class="pre"><BUILD>/tests</span></code>, here this is <code class="file docutils literal notranslate"><span class="pre"><BUILD>/tests/actions</span></code>. When +directory, here this is <code class="file docutils literal"><span class="pre"><SOURCE>/actions/tests</span></code>, while the tests run +inside <code class="file docutils literal"><span class="pre"><BUILD>/tests</span></code>, here this is <code class="file docutils literal"><span class="pre"><BUILD>/tests/actions</span></code>. When Python imports a module, its usually compiled into bytecode. This new file would clutter up the source repository, it would always show up as untracked -file on <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">status</span></code>. To prevent this, tell Python to stop producing +file on <code class="docutils literal"><span class="pre">git</span> <span class="pre">status</span></code>. To prevent this, tell Python to stop producing bytecode right at the beginning of your test-script:</p> -<div class="highlight-default notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 +<div class="highlight-default"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 2 3 4 @@ -87,21 +100,21 @@ something, add new functionality, etc..</p> <p>In the next couple of paragraphs, we will walk through setting up a new unit test script for an imaginary action. We will continuously extend the file started above, so keep an eye on line numbers. Lets just assume your action is -called <code class="docutils literal notranslate"><span class="pre">do-awesome</span></code> for the rest of this section.</p> +called <code class="docutils literal"><span class="pre">do-awesome</span></code> for the rest of this section.</p> <div class="section" id="the-test-script"> <h3>The Test Script<a class="headerlink" href="#the-test-script" title="Permalink to this headline">¶</a></h3> <p>The script to supervise your action needs to be placed in -<code class="file docutils literal notranslate"><span class="pre"><SOURCE>/actions/tests</span></code> and follow the naming convention -<code class="file docutils literal notranslate"><span class="pre">test_action_<NAME>.py</span></code>, where <code class="file docutils literal notranslate"><span class="pre"><NAME></span></code> is the name for your -action. So here we create a file <code class="file docutils literal notranslate"><span class="pre">test_action_do_awesome.py</span></code> (recognise -the underscore between <code class="docutils literal notranslate"><span class="pre">do</span></code> and <code class="docutils literal notranslate"><span class="pre">awesome</span></code> instead of a hyphen, that’s +<code class="file docutils literal"><span class="pre"><SOURCE>/actions/tests</span></code> and follow the naming convention +<code class="file docutils literal"><span class="pre">test_action_<NAME>.py</span></code>, where <code class="file docutils literal"><span class="pre"><NAME></span></code> is the name for your +action. So here we create a file <code class="file docutils literal"><span class="pre">test_action_do_awesome.py</span></code> (recognise +the underscore between <code class="docutils literal"><span class="pre">do</span></code> and <code class="docutils literal"><span class="pre">awesome</span></code> instead of a hyphen, that’s <a class="reference external" href="https://www.python.org/dev/peps/pep-0008/">PEP 8</a>).</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> touch <SOURCE>/actions/tests/test_action_do_awesome.py +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> touch <SOURCE>/actions/tests/test_action_do_awesome.py <span class="gp">$</span> </pre></div> </div> <p>As a starter, we disable bytecode compilation in the script:</p> -<div class="highlight-default notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 +<div class="highlight-default"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 2 3 4 @@ -117,9 +130,9 @@ the underscore between <code class="docutils literal notranslate"><span class="p <h3>CMake Integration<a class="headerlink" href="#cmake-integration" title="Permalink to this headline">¶</a></h3> <p>As always, when introducing new material to ProMod3, it has to be announced to the CMake build system. For action unit tests, fire up -<code class="file docutils literal notranslate"><span class="pre"><SOURCE>/actions/tests/CMakeLists.txt</span></code> in your favourite text editor and +<code class="file docutils literal"><span class="pre"><SOURCE>/actions/tests/CMakeLists.txt</span></code> in your favourite text editor and add your new script:</p> -<div class="highlight-cmake notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 +<div class="highlight-cmake"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 2 3 4 @@ -134,65 +147,65 @@ add your new script:</p> <span class="nf">promod3_unittest(</span><span class="no">MODULE</span><span class="w"> </span><span class="nb">actions</span><span class="w"> </span><span class="no">SOURCES</span><span class="w"> </span><span class="s">"${ACTION_UNIT_TESTS}"</span><span class="w"> </span><span class="no">TARGET</span><span class="w"> </span><span class="nb">actions</span><span class="nf">)</span><span class="w"></span> </pre></div> </td></tr></table></div> -<p>The important thing is to leave <code class="file docutils literal notranslate"><span class="pre">test_actions.py</span></code> as last item in the +<p>The important thing is to leave <code class="file docutils literal"><span class="pre">test_actions.py</span></code> as last item in the list. This script contains the tests around the -<a class="reference internal" href="#test_actions.ActionTestCase" title="test_actions.ActionTestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">test_actions.ActionTestCase</span></code></a> class, which is the foundation of the +<a class="reference internal" href="#test_actions.ActionTestCase" title="test_actions.ActionTestCase"><code class="xref py py-class docutils literal"><span class="pre">test_actions.ActionTestCase</span></code></a> class, which is the foundation of the tests for your action. If this class is broken, we are lost. Putting it as the last element in the list, CMake will execute this script first, before any other action test script is run.</p> </div> <div class="section" id="creating-a-test-subclass"> <h3>Creating a Test Subclass<a class="headerlink" href="#creating-a-test-subclass" title="Permalink to this headline">¶</a></h3> -<p><a class="reference internal" href="#test_actions.ActionTestCase" title="test_actions.ActionTestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">test_actions.ActionTestCase</span></code></a> is sort of a template class for your +<p><a class="reference internal" href="#test_actions.ActionTestCase" title="test_actions.ActionTestCase"><code class="xref py py-class docutils literal"><span class="pre">test_actions.ActionTestCase</span></code></a> is sort of a template class for your tests. By spawning off from this you inherit a bunch of useful methods for your testing. To make it work, the childclass needs to be set up properly. But -first, <code class="file docutils literal notranslate"><span class="pre">test_actions.py</span></code> has to be loaded as a module:</p> -<div class="highlight-default notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>6</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">test_actions</span> +first, <code class="file docutils literal"><span class="pre">test_actions.py</span></code> has to be loaded as a module:</p> +<div class="highlight-default"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>6</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">test_actions</span> </pre></div> </td></tr></table></div> <p>To showcase, the test cases, we explain how one would (and does) test the -<code class="docutils literal notranslate"><span class="pre">help</span></code> action of <code class="docutils literal notranslate"><span class="pre">pm</span></code>. +<code class="docutils literal"><span class="pre">help</span></code> action of <code class="docutils literal"><span class="pre">pm</span></code>. First, we create the childclass for the action. -Go for <code class="xref py py-class docutils literal notranslate"><span class="pre"><NAME>ActionTests</span></code> as a naming scheme:</p> -<div class="highlight-default notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 7 +Go for <code class="xref py py-class docutils literal"><span class="pre"><NAME>ActionTests</span></code> as a naming scheme:</p> +<div class="highlight-default"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 7 8 9 10</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">HelpActionTests</span><span class="p">(</span><span class="n">test_actions</span><span class="o">.</span><span class="n">ActionTestCase</span><span class="p">):</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="k">def</span> <span class="fm">__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="n">test_actions</span><span class="o">.</span><span class="n">ActionTestCase</span><span class="o">.</span><span class="fm">__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="bp">self</span><span class="o">.</span><span class="n">pm_action</span> <span class="o">=</span> <span class="s1">'help'</span> </pre></div> </td></tr></table></div> -<p>Pay attention that in your own class, you must set <code class="xref py py-attr docutils literal notranslate"><span class="pre">pm_action</span></code> to make -everything work. Also <code class="xref py py-meth docutils literal notranslate"><span class="pre">__init__()</span></code> needs certain parameters, as everything -is derived from the <a class="reference external" href="https://docs.python.org/3.6/library/unittest.html#unittest.TestCase" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.TestCase</span></code></a> class.</p> +<p>Pay attention that in your own class, you must set <code class="xref py py-attr docutils literal"><span class="pre">pm_action</span></code> to make +everything work. Also <code class="xref py py-meth docutils literal"><span class="pre">__init__()</span></code> needs certain parameters, as everything +is derived from the <a class="reference external" href="https://docs.python.org/3.6/library/unittest.html#unittest.TestCase" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">unittest.TestCase</span></code></a> class.</p> </div> <div class="section" id="must-have-tests"> <h3>Must Have Tests<a class="headerlink" href="#must-have-tests" title="Permalink to this headline">¶</a></h3> <p>What needs testing without exclusion are the exit codes of actions. Those states will be placed in the userlevel documentation. This topic is already -covered in <a class="reference internal" href="#test_actions.ActionTestCase" title="test_actions.ActionTestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">test_actions.ActionTestCase</span></code></a> by <a class="reference internal" href="#test_actions.ActionTestCase.RunExitStatusTest" title="test_actions.ActionTestCase.RunExitStatusTest"><code class="xref py py-meth docutils literal notranslate"><span class="pre">RunExitStatusTest()</span></code></a>. -As an example, testing for <code class="docutils literal notranslate"><span class="pre">$?=0</span></code> could work like this:</p> -<div class="highlight-default notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>11 +covered in <a class="reference internal" href="#test_actions.ActionTestCase" title="test_actions.ActionTestCase"><code class="xref py py-class docutils literal"><span class="pre">test_actions.ActionTestCase</span></code></a> by <a class="reference internal" href="#test_actions.ActionTestCase.RunExitStatusTest" title="test_actions.ActionTestCase.RunExitStatusTest"><code class="xref py py-meth docutils literal"><span class="pre">RunExitStatusTest()</span></code></a>. +As an example, testing for <code class="docutils literal"><span class="pre">$?=0</span></code> could work like this:</p> +<div class="highlight-default"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>11 12</pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="k">def</span> <span class="nf">testExit0</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">RunExitStatusTest</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">list</span><span class="p">())</span> </pre></div> </td></tr></table></div> -<p>That will call the action stored in <code class="xref py py-attr docutils literal notranslate"><span class="pre">pm_action</span></code> with the provided list of -parameters and check that <code class="docutils literal notranslate"><span class="pre">0</span></code> is returned on the command line.</p> +<p>That will call the action stored in <code class="xref py py-attr docutils literal"><span class="pre">pm_action</span></code> with the provided list of +parameters and check that <code class="docutils literal"><span class="pre">0</span></code> is returned on the command line.</p> <p>In a more general way, you need to test that your action is working as intended. Do not forget some negative testing, with the idea in mind what happens if a user throws dirty input data in.</p> </div> <div class="section" id="making-the-script-executable"> <h3>Making the Script Executable<a class="headerlink" href="#making-the-script-executable" title="Permalink to this headline">¶</a></h3> -<p>In ProMod3, unit tests are run via <a class="reference external" href="https://www.OpenStructure.org">OST</a>’s <a class="reference external" href="https://www.openstructure.org/docs/1.11/base/testutils/#module-ost.testutils" title="(in OpenStructure v1.11.0)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ost.testutils</span></code></a> and Python’s -<a class="reference external" href="https://docs.python.org/3.6/library/unittest.html#unittest.TestCase" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.TestCase</span></code></a>. Those are called when the test module is executed +<p>In ProMod3, unit tests are run via <a class="reference external" href="https://www.OpenStructure.org">OST</a>‘s <a class="reference external" href="https://www.openstructure.org/docs/2.0/base/testutils/#module-ost.testutils" title="(in OpenStructure v2.0.0)"><code class="xref py py-mod docutils literal"><span class="pre">ost.testutils</span></code></a> and Python‘s +<a class="reference external" href="https://docs.python.org/3.6/library/unittest.html#unittest.TestCase" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">unittest.TestCase</span></code></a>. Those are called when the test module is executed as a script:</p> -<div class="highlight-default notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>13 +<div class="highlight-default"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>13 14 15</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">"__main__"</span><span class="p">:</span> - <span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">testutils</span> + <span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">testutils</span> <span class="n">testutils</span><span class="o">.</span><span class="n">RunTests</span><span class="p">()</span> </pre></div> </td></tr></table></div> @@ -200,40 +213,40 @@ as a script:</p> </div> <div class="section" id="running-the-test-script"> <h3>Running the Test Script<a class="headerlink" href="#running-the-test-script" title="Permalink to this headline">¶</a></h3> -<p>Unit tests are executed via <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">check</span></code> and so are ProMod3 action tests. -But for every test script, we also provide a private <code class="docutils literal notranslate"><span class="pre">make</span></code> target, ending -with <code class="file docutils literal notranslate"><span class="pre">_run</span></code>. To solely run the tests for the awesome action, hit</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> make test_action_do_awesome.py_run +<p>Unit tests are executed via <code class="docutils literal"><span class="pre">make</span> <span class="pre">check</span></code> and so are ProMod3 action tests. +But for every test script, we also provide a private <code class="docutils literal"><span class="pre">make</span></code> target, ending +with <code class="file docutils literal"><span class="pre">_run</span></code>. To solely run the tests for the awesome action, hit</p> +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> make test_action_do_awesome.py_run </pre></div> </div> </div> <div class="section" id="output-of-test-actions-actiontestcase"> -<h3>Output Of <a class="reference internal" href="#test_actions.ActionTestCase" title="test_actions.ActionTestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">test_actions.ActionTestCase</span></code></a><a class="headerlink" href="#output-of-test-actions-actiontestcase" title="Permalink to this headline">¶</a></h3> +<h3>Output Of <a class="reference internal" href="#test_actions.ActionTestCase" title="test_actions.ActionTestCase"><code class="xref py py-class docutils literal"><span class="pre">test_actions.ActionTestCase</span></code></a><a class="headerlink" href="#output-of-test-actions-actiontestcase" title="Permalink to this headline">¶</a></h3> <p>When running the test script you will notice that its not really talkative. -Basically you do not see output to <code class="file docutils literal notranslate"><span class="pre">stdout</span></code>/ <code class="file docutils literal notranslate"><span class="pre">stderr</span></code> of your +Basically you do not see output to <code class="file docutils literal"><span class="pre">stdout</span></code>/ <code class="file docutils literal"><span class="pre">stderr</span></code> of your action, while the test script fires it a couple of times. That is by design. When running the full unit test suite, usually nobody wants to see the output of <strong>everything</strong> tested and working. The interesting bits are where we fail. But for developing a new application you certainly need all the output you can -get. For this, some functions in <a class="reference internal" href="#test_actions.ActionTestCase" title="test_actions.ActionTestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">test_actions.ActionTestCase</span></code></a> have a -parameter <code class="xref py py-attr docutils literal notranslate"><span class="pre">verbose</span></code>. That triggers specific functions to flush captured +get. For this, some functions in <a class="reference internal" href="#test_actions.ActionTestCase" title="test_actions.ActionTestCase"><code class="xref py py-class docutils literal"><span class="pre">test_actions.ActionTestCase</span></code></a> have a +parameter <code class="xref py py-attr docutils literal"><span class="pre">verbose</span></code>. That triggers specific functions to flush captured output onto the command line. The idea is to turn it on for development, but once done, disable it to keep output of unit tests low.</p> -<p>To get the test for exit code <code class="docutils literal notranslate"><span class="pre">0</span></code> talking to you, just do</p> -<div class="highlight-default notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>11 +<p>To get the test for exit code <code class="docutils literal"><span class="pre">0</span></code> talking to you, just do</p> +<div class="highlight-default"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>11 12</pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="k">def</span> <span class="nf">testExit0</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">RunExitStatusTest</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">list</span><span class="p">(),</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> </pre></div> </td></tr></table></div> <p>and</p> -<div class="highlight-default notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>11 +<div class="highlight-default"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>11 12</pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="k">def</span> <span class="nf">testExit0</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">RunExitStatusTest</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">list</span><span class="p">())</span> </pre></div> </td></tr></table></div> -<p>keeps it silent (<code class="xref py py-attr docutils literal notranslate"><span class="pre">verbose</span></code> is set to <code class="docutils literal notranslate"><span class="pre">False</span></code> by default). If enabled, -output will be separated into <code class="file docutils literal notranslate"><span class="pre">stdout</span></code> and <code class="file docutils literal notranslate"><span class="pre">stderr</span></code>:</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> make test_action_do_awesome.py_run +<p>keeps it silent (<code class="xref py py-attr docutils literal"><span class="pre">verbose</span></code> is set to <code class="docutils literal"><span class="pre">False</span></code> by default). If enabled, +output will be separated into <code class="file docutils literal"><span class="pre">stdout</span></code> and <code class="file docutils literal"><span class="pre">stderr</span></code>:</p> +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> make test_action_do_awesome.py_run <span class="go"><Lots of output from the build process></span> <span class="go">running checks test_action_do_awesome.py</span> <span class="go">stdout of '<BUILD>/stage/bin/pm do-awesome'</span> @@ -255,20 +268,20 @@ output will be separated into <code class="file docutils literal notranslate"><s <dt id="test_actions.ActionTestCase"> <em class="property">class </em><code class="descclassname">test_actions.</code><code class="descname">ActionTestCase</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#test_actions.ActionTestCase" title="Permalink to this definition">¶</a></dt> <dd><p>Class to help developing actions. Comes with a lot of convenience wrappers -around what should be tested and serves as a recorder for test calls… -just for in two years when you come back to rewrite the whole action…</p> -<p>While inheriting this class, <a class="reference internal" href="#test_actions.ActionTestCase.pm_action" title="test_actions.ActionTestCase.pm_action"><code class="xref py py-attr docutils literal notranslate"><span class="pre">pm_action</span></code></a> needs to be defined. +around what should be tested and serves as a recorder for test calls... +just for in two years when you come back to rewrite the whole action...</p> +<p>While inheriting this class, <a class="reference internal" href="#test_actions.ActionTestCase.pm_action" title="test_actions.ActionTestCase.pm_action"><code class="xref py py-attr docutils literal"><span class="pre">pm_action</span></code></a> needs to be defined. Otherwise the whole idea does not work.</p> <dl class="attribute"> <dt id="test_actions.ActionTestCase.pm_bin"> <code class="descname">pm_bin</code><a class="headerlink" href="#test_actions.ActionTestCase.pm_bin" title="Permalink to this definition">¶</a></dt> -<dd><p>This is the path of the <code class="docutils literal notranslate"><span class="pre">pm</span></code> binary. Automatically set by calling -<code class="xref py py-meth docutils literal notranslate"><span class="pre">__init__()</span></code> inside the initialisation of your class.</p> +<dd><p>This is the path of the <code class="docutils literal"><span class="pre">pm</span></code> binary. Automatically set by calling +<code class="xref py py-meth docutils literal"><span class="pre">__init__()</span></code> inside the initialisation of your class.</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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></td> </tr> </tbody> </table> @@ -278,13 +291,13 @@ Otherwise the whole idea does not work.</p> <dt id="test_actions.ActionTestCase.pm_action"> <code class="descname">pm_action</code><a class="headerlink" href="#test_actions.ActionTestCase.pm_action" title="Permalink to this definition">¶</a></dt> <dd><p>The action to be tested. Needs to be set by your initialisation routine, -<strong>after</strong> calling <code class="xref py py-meth docutils literal notranslate"><span class="pre">__init__()</span></code> from here. Skip the -“pm-” in front of the action name.</p> +<strong>after</strong> calling <code class="xref py py-meth docutils literal"><span class="pre">__init__()</span></code> from here. Skip the +“pm-” in front of the action name.</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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></td> </tr> </tbody> </table> @@ -293,22 +306,22 @@ Otherwise the whole idea does not work.</p> <dl class="method"> <dt id="test_actions.ActionTestCase.RunAction"> <code class="descname">RunAction</code><span class="sig-paren">(</span><em>arguments</em>, <em>verbose=False</em><span class="sig-paren">)</span><a class="headerlink" href="#test_actions.ActionTestCase.RunAction" title="Permalink to this definition">¶</a></dt> -<dd><p>Call an action, return the exit status (<code class="docutils literal notranslate"><span class="pre">$?</span></code> shell variable). May be -set to <code class="docutils literal notranslate"><span class="pre">verbose</span></code> to print the actions terminal output. The action to -be executed needs to be stored in <a class="reference internal" href="#test_actions.ActionTestCase.pm_action" title="test_actions.ActionTestCase.pm_action"><code class="xref py py-attr docutils literal notranslate"><span class="pre">pm_action</span></code></a> first.</p> -<p>If in verbose mode, output to <code class="file docutils literal notranslate"><span class="pre">stdout</span></code> of the action will be -printed first followed by <code class="file docutils literal notranslate"><span class="pre">stderr</span></code>.</p> +<dd><p>Call an action, return the exit status (<code class="docutils literal"><span class="pre">$?</span></code> shell variable). May be +set to <code class="docutils literal"><span class="pre">verbose</span></code> to print the actions terminal output. The action to +be executed needs to be stored in <a class="reference internal" href="#test_actions.ActionTestCase.pm_action" title="test_actions.ActionTestCase.pm_action"><code class="xref py py-attr docutils literal"><span class="pre">pm_action</span></code></a> first.</p> +<p>If in verbose mode, output to <code class="file docutils literal"><span class="pre">stdout</span></code> of the action will be +printed first followed by <code class="file docutils literal"><span class="pre">stderr</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"><ul class="first simple"> -<li><strong>arguments</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – A list of arguments for the call.</li> -<li><strong>verbose</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – If <code class="docutils literal notranslate"><span class="pre">True</span></code>, report output of the action.</li> +<li><strong>arguments</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – A list of arguments for the call.</li> +<li><strong>verbose</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – If <code class="docutils literal"><span class="pre">True</span></code>, report output of the action.</li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">The exit code of the action (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>).</p> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">The exit code of the action (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>).</p> </td> </tr> </tbody> @@ -324,9 +337,9 @@ printed first followed by <code class="file docutils literal notranslate"><span <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>exit_code</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The expected return code, <code class="docutils literal notranslate"><span class="pre">$?</span></code> in a shell.</li> -<li><strong>arguments</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – A list of arguments for the call.</li> -<li><strong>verbose</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – If <code class="docutils literal notranslate"><span class="pre">True</span></code>, report output of the action.</li> +<li><strong>exit_code</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The expected return code, <code class="docutils literal"><span class="pre">$?</span></code> in a shell.</li> +<li><strong>arguments</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – A list of arguments for the call.</li> +<li><strong>verbose</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – If <code class="docutils literal"><span class="pre">True</span></code>, report output of the action.</li> </ul> </td> </tr> @@ -338,7 +351,7 @@ printed first followed by <code class="file docutils literal notranslate"><span <dt id="test_actions.ActionTestCase.testPMExists"> <code class="descname">testPMExists</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#test_actions.ActionTestCase.testPMExists" title="Permalink to this definition">¶</a></dt> <dd><p>This is an internal test, executed when the source code of the test -class is run as unit test. Verifies that <a class="reference internal" href="#test_actions.ActionTestCase.pm_bin" title="test_actions.ActionTestCase.pm_bin"><code class="xref py py-attr docutils literal notranslate"><span class="pre">pm_bin</span></code></a> is an existing +class is run as unit test. Verifies that <a class="reference internal" href="#test_actions.ActionTestCase.pm_bin" title="test_actions.ActionTestCase.pm_bin"><code class="xref py py-attr docutils literal"><span class="pre">pm_bin</span></code></a> is an existing file (also complains if a directory is found instead).</p> </dd></dl> @@ -354,57 +367,51 @@ file (also complains if a directory is found instead).</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../users.html">Users</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#"><code class="docutils literal"><span class="pre">test_actions</span></code> - Testing Actions</a><ul> +<li><a class="reference internal" href="#creating-an-action-unit-test-script">Creating an Action Unit Test Script</a><ul> +<li><a class="reference internal" href="#the-test-script">The Test Script</a></li> +<li><a class="reference internal" href="#cmake-integration">CMake Integration</a></li> +<li><a class="reference internal" href="#creating-a-test-subclass">Creating a Test Subclass</a></li> +<li><a class="reference internal" href="#must-have-tests">Must Have Tests</a></li> +<li><a class="reference internal" href="#making-the-script-executable">Making the Script Executable</a></li> +<li><a class="reference internal" href="#running-the-test-script">Running the Test Script</a></li> +<li><a class="reference internal" href="#output-of-test-actions-actiontestcase">Output Of <code class="docutils literal"><span class="pre">test_actions.ActionTestCase</span></code></a></li> </ul> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> +</li> +<li><a class="reference internal" href="#unit-test-actions-api">Unit Test Actions API</a></li> +</ul> +</li> </ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../developers.html">Documentation For Developers</a><ul> <li>Previous: <a href="../contributing.html" title="previous chapter">Contributing</a></li> - <li>Next: <a href="../cmake/index.html" title="next chapter">ProMod3’s Share Of CMake</a></li> + <li>Next: <a href="../cmake/index.html" title="next chapter">ProMod3‘s Share Of CMake</a></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/actions/index_dev.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -413,11 +420,11 @@ file (also complains if a directory is found instead).</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/actions/index_dev.rst.txt" + <a href="../_sources/actions/index_dev.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/buildsystem.html b/doc/html/buildsystem.html index c558b9f49de0d324d1f326f43f796f88c134fe36..50b1089f7036fe7bd2b6a25dda4c114845f2c1d0 100644 --- a/doc/html/buildsystem.html +++ b/doc/html/buildsystem.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Building ProMod3 — ProMod3 3.0.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" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="index.html" /> + <link rel="up" title="Documentation For Users" href="users.html" /> <link rel="next" title="ProMod3 and Containers" href="container/index.html" /> <link rel="prev" title="ProMod3 Actions" href="actions/index.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -39,7 +52,7 @@ <div class="section" id="dependencies"> <h2>Dependencies<a class="headerlink" href="#dependencies" title="Permalink to this headline">¶</a></h2> <p>ProMod3 is build on top of <a class="reference external" href="https://www.OpenStructure.org">OpenStructure</a> (OST), requiring at least version -2.0.0. OST must be configured and compiled with <code class="docutils literal notranslate"><span class="pre">ENABLE_MM=1</span></code> to +2.0.0. OST must be configured and compiled with <code class="docutils literal"><span class="pre">ENABLE_MM=1</span></code> to use <a class="reference external" href="http://openmm.org">OpenMM</a>. To create the build system, <a class="reference external" href="https://cmake.org/">CMake</a> is required. The same versions of <a class="reference external" href="https://www.python.org/">Python</a> and <a class="reference external" href="https://www.boost.org/">Boost</a> are needed as used in OST. For <a class="reference external" href="http://eigen.tuxfamily.org/index.php?title=Main_Page">Eigen 3</a> we need at least version 3.3.0. To build the documentation, <a class="reference external" href="http://sphinx-doc.org/">Sphinx</a> is @@ -62,46 +75,46 @@ compiled with Python 2.7.</p> <p>CMake is used to configure the build system and in the end produces makefiles and certain directories needed for building ProMod3. Basically it is called right from a shell with the directory containing the top-level -<code class="file docutils literal notranslate"><span class="pre">CMakeLists.txt</span></code> as an argument. The preferred approach is to generate a +<code class="file docutils literal"><span class="pre">CMakeLists.txt</span></code> as an argument. The preferred approach is to generate a build folder and configure and compile in there:</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">#</span> execute this in the ProMod3 root folder +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">#</span> execute this in the ProMod3 root folder <span class="gp">$</span> mkdir build <span class="gp">$</span> <span class="nb">cd</span> build <span class="gp">$</span> cmake .. -DOST_ROOT<span class="o">=</span><PATH TO OST> </pre></div> </div> <p>For us, at least pointer to the OST installation directory is needed, -handed over to CMake by <code class="docutils literal notranslate"><span class="pre">-D</span></code> into the variable <code class="docutils literal notranslate"><span class="pre">OST_ROOT</span></code> (e.g. OST -headers would be located in <code class="docutils literal notranslate"><span class="pre">OST_ROOT/include/ost</span></code>).</p> +handed over to CMake by <code class="docutils literal"><span class="pre">-D</span></code> into the variable <code class="docutils literal"><span class="pre">OST_ROOT</span></code> (e.g. OST +headers would be located in <code class="docutils literal"><span class="pre">OST_ROOT/include/ost</span></code>).</p> <p>Similarly, one can specify folders for Boost, Python and Eigen 3 if multiple versions exist and/or they are not installed in a default location. -These are set with the <code class="docutils literal notranslate"><span class="pre">BOOST_ROOT</span></code> (make sure that’s the same as for OST), -<code class="docutils literal notranslate"><span class="pre">PYTHON_ROOT</span></code> and <code class="docutils literal notranslate"><span class="pre">EIGEN3_INCLUDE_DIR</span></code>.</p> +These are set with the <code class="docutils literal"><span class="pre">BOOST_ROOT</span></code> (make sure that’s the same as for OST), +<code class="docutils literal"><span class="pre">PYTHON_ROOT</span></code> and <code class="docutils literal"><span class="pre">EIGEN3_INCLUDE_DIR</span></code>.</p> <p>Here is a list of more options used within ProMod3:</p> <ul class="simple"> -<li><code class="docutils literal notranslate"><span class="pre">DISABLE_DOCUMENTATION</span></code> Don’t build documentation, don’t search for Sphinx</li> -<li><code class="docutils literal notranslate"><span class="pre">DISABLE_DOCTEST</span></code> Don’t run example code from documentation on -<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">check</span></code> (implicit by <code class="docutils literal notranslate"><span class="pre">DISABLE_DOCUMENTATION</span></code>)</li> -<li><code class="docutils literal notranslate"><span class="pre">DISABLE_LINKCHECK</span></code> Don’t test links from documentation on <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">check</span></code> -(implicit by <code class="docutils literal notranslate"><span class="pre">DISABLE_DOCUMENTATION</span></code>)</li> -<li><code class="docutils literal notranslate"><span class="pre">ENABLE_SSE</span></code> Allow for more agressive optimization by adding -msse4 flag to +<li><code class="docutils literal"><span class="pre">DISABLE_DOCUMENTATION</span></code> Don’t build documentation, don’t search for Sphinx</li> +<li><code class="docutils literal"><span class="pre">DISABLE_DOCTEST</span></code> Don’t run example code from documentation on +<code class="docutils literal"><span class="pre">make</span> <span class="pre">check</span></code> (implicit by <code class="docutils literal"><span class="pre">DISABLE_DOCUMENTATION</span></code>)</li> +<li><code class="docutils literal"><span class="pre">DISABLE_LINKCHECK</span></code> Don’t test links from documentation on <code class="docutils literal"><span class="pre">make</span> <span class="pre">check</span></code> +(implicit by <code class="docutils literal"><span class="pre">DISABLE_DOCUMENTATION</span></code>)</li> +<li><code class="docutils literal"><span class="pre">ENABLE_SSE</span></code> Allow for more agressive optimization by adding -msse4 flag to the compiler. At some places within the code, we use SSE intrinsics explicitely. This is only enabled if OST has been compiled with single precision. -(<code class="docutils literal notranslate"><span class="pre">OST_DOUBLE_PRECISION</span></code> flag)</li> +(<code class="docutils literal"><span class="pre">OST_DOUBLE_PRECISION</span></code> flag)</li> </ul> <p>Since we use OST in the background, some of its options for CMake are also relevant, here. Basically they need to be set to exactly the same value. Even if ProMod3 builds with different settings, it may start producing funny results at an unexpected point. If you do not know the values, grep the option -in the <code class="file docutils literal notranslate"><span class="pre">CMakeCache.txt</span></code> of OST:</p> +in the <code class="file docutils literal"><span class="pre">CMakeCache.txt</span></code> of OST:</p> <ul class="simple"> -<li><code class="docutils literal notranslate"><span class="pre">OPTIMIZE</span></code></li> -<li><code class="docutils literal notranslate"><span class="pre">OST_DOUBLE_PRECISION</span></code></li> +<li><code class="docutils literal"><span class="pre">OPTIMIZE</span></code></li> +<li><code class="docutils literal"><span class="pre">OST_DOUBLE_PRECISION</span></code></li> </ul> -<p>Instead of calling CMake by yourself, there is the <code class="file docutils literal notranslate"><span class="pre">conf-scripts</span></code> +<p>Instead of calling CMake by yourself, there is the <code class="file docutils literal"><span class="pre">conf-scripts</span></code> directory, providing smallish scripts to invoke CMake the right way for various systems. Usually those scripts just need the OST path -and the location of the top-level <code class="file docutils literal notranslate"><span class="pre">CMakeLists.txt</span></code>.</p> +and the location of the top-level <code class="file docutils literal"><span class="pre">CMakeLists.txt</span></code>.</p> <p>As mentioned earlier, we highly recommend to use out-of-source builds. This way, you can have several builds with different configurations. Also if anything goes wrong, just remove the build directory to get to a clean state @@ -111,39 +124,39 @@ really got rebuild and similar things required.</p> <div class="section" id="running-make"> <h2>Running Make<a class="headerlink" href="#running-make" title="Permalink to this headline">¶</a></h2> <p>After configuring, you want to build ProMod3 by</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> make +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> make </pre></div> </div> -<p>to populate the <code class="file docutils literal notranslate"><span class="pre">stage</span></code> directory with a ready-to-go version of the +<p>to populate the <code class="file docutils literal"><span class="pre">stage</span></code> directory with a ready-to-go version of the latest code.</p> -<p id="index-0">Beside the usual <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">all</span></code> and other default targets, there are a few +<p id="index-0">Beside the usual <code class="docutils literal"><span class="pre">make</span> <span class="pre">all</span></code> and other default targets, there are a few special targets:</p> <ul class="simple"> -<li><code class="docutils literal notranslate"><span class="pre">check</span></code> <span class="target" id="index-1"></span>make check Runs unit tests and if CMake was invoked in -its standard configuration also documentation examples (<code class="docutils literal notranslate"><span class="pre">doctest</span></code>) and -links in the doc. (<code class="docutils literal notranslate"><span class="pre">linkcheck</span></code>) are checked</li> -<li><code class="docutils literal notranslate"><span class="pre">html</span></code> <span class="target" id="index-2"></span>make html Creates documentation as web page using the -Sphinx <code class="docutils literal notranslate"><span class="pre">html</span></code> builder</li> -<li><code class="docutils literal notranslate"><span class="pre">man</span></code> <span class="target" id="index-3"></span>make man Creates a manual page using the Sphinx <code class="docutils literal notranslate"><span class="pre">man</span></code> +<li><code class="docutils literal"><span class="pre">check</span></code> <span class="target" id="index-1"></span>make check Runs unit tests and if CMake was invoked in +its standard configuration also documentation examples (<code class="docutils literal"><span class="pre">doctest</span></code>) and +links in the doc. (<code class="docutils literal"><span class="pre">linkcheck</span></code>) are checked</li> +<li><code class="docutils literal"><span class="pre">html</span></code> <span class="target" id="index-2"></span>make html Creates documentation as web page using the +Sphinx <code class="docutils literal"><span class="pre">html</span></code> builder</li> +<li><code class="docutils literal"><span class="pre">man</span></code> <span class="target" id="index-3"></span>make man Creates a manual page using the Sphinx <code class="docutils literal"><span class="pre">man</span></code> builder</li> -<li><code class="docutils literal notranslate"><span class="pre">doc</span></code> <span class="target" id="index-4"></span>make doc Creates documentation using the <code class="docutils literal notranslate"><span class="pre">html</span></code> and -<code class="docutils literal notranslate"><span class="pre">man</span></code> targets</li> -<li><code class="docutils literal notranslate"><span class="pre">help</span></code> <span class="target" id="index-5"></span>make help Prints a list of targets available</li> +<li><code class="docutils literal"><span class="pre">doc</span></code> <span class="target" id="index-4"></span>make doc Creates documentation using the <code class="docutils literal"><span class="pre">html</span></code> and +<code class="docutils literal"><span class="pre">man</span></code> targets</li> +<li><code class="docutils literal"><span class="pre">help</span></code> <span class="target" id="index-5"></span>make help Prints a list of targets available</li> </ul> </div> <div class="section" id="installing-project"> <h2>Installing ProMod3<a class="headerlink" href="#installing-project" title="Permalink to this headline">¶</a></h2> <p>If you wish to install ProMod3 (note that you can also safely keep it all in -the <code class="file docutils literal notranslate"><span class="pre">stage</span></code> directory), you can use</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> make install +the <code class="file docutils literal"><span class="pre">stage</span></code> directory), you can use</p> +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> make install </pre></div> </div> -<p>By default, this will copy the <code class="file docutils literal notranslate"><span class="pre">stage</span></code> directory to <code class="file docutils literal notranslate"><span class="pre">/usr/local</span></code>. To -override this, you can add the <code class="docutils literal notranslate"><span class="pre">-DCMAKE_INSTALL_PREFIX=<INSTALL</span> <span class="pre">PATH></span></code> flag to -your <code class="docutils literal notranslate"><span class="pre">cmake</span></code> call.</p> +<p>By default, this will copy the <code class="file docutils literal"><span class="pre">stage</span></code> directory to <code class="file docutils literal"><span class="pre">/usr/local</span></code>. To +override this, you can add the <code class="docutils literal"><span class="pre">-DCMAKE_INSTALL_PREFIX=<INSTALL</span> <span class="pre">PATH></span></code> flag to +your <code class="docutils literal"><span class="pre">cmake</span></code> call.</p> <p>After the installation, you should be able to delete the whole source folder. To -ensure that everything works, you can use a set of automated “sanity checks”. -Please follow the instructions in <code class="file docutils literal notranslate"><span class="pre">extras/sanity_checks/README</span></code> to setup +ensure that everything works, you can use a set of automated “sanity checks”. +Please follow the instructions in <code class="file docutils literal"><span class="pre">extras/sanity_checks/README</span></code> to setup and run those tests after moving the source folder. If everything works, you can safely delete the whole source folder.</p> </div> @@ -156,39 +169,16 @@ safely delete the whole source folder.</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="actions/index.html">ProMod3 Actions</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Building ProMod3</a></li> -<li class="toctree-l2"><a class="reference internal" href="container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="user_contributions.html">Contributing</a></li> + <h3><a href="index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Building ProMod3</a><ul> +<li><a class="reference internal" href="#dependencies">Dependencies</a></li> +<li><a class="reference internal" href="#using-cmake">Using CMake</a></li> +<li><a class="reference internal" href="#running-make">Running Make</a></li> +<li><a class="reference internal" href="#installing-project">Installing ProMod3</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> @@ -200,26 +190,23 @@ safely delete the whole source folder.</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="_sources/buildsystem.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -228,11 +215,11 @@ safely delete the whole source folder.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="_sources/buildsystem.rst.txt" + <a href="_sources/buildsystem.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/changelog.html b/doc/html/changelog.html index 884961adc8141e93b58c605a8a6b2fdc0535b9c1..ab212521632947dc7b584fac966ae602c026e1d0 100644 --- a/doc/html/changelog.html +++ b/doc/html/changelog.html @@ -1,21 +1,32 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Changelog — ProMod3 3.0.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" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="index.html" /> <link rel="prev" title="References" href="references.html" /> <link rel="stylesheet" href="_static/custom.css" type="text/css" /> @@ -23,7 +34,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -164,26 +176,19 @@ selected loops, reconstruct hydrogens and minimize energy with MM</li> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul> -<li class="toctree-l1"><a class="reference internal" href="users.html">Users</a></li> + <h3><a href="index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Changelog</a><ul> +<li><a class="reference internal" href="#release-3-0-0">Release 3.0.0</a></li> +<li><a class="reference internal" href="#release-2-1-0">Release 2.1.0</a></li> +<li><a class="reference internal" href="#release-2-0-0">Release 2.0.0</a></li> +<li><a class="reference internal" href="#release-1-3-0">Release 1.3.0</a></li> +<li><a class="reference internal" href="#release-1-2-0">Release 1.2.0</a></li> +<li><a class="reference internal" href="#release-1-1-0">Release 1.1.0</a></li> +<li><a class="reference internal" href="#release-1-0">Release 1.0</a></li> </ul> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="references.html">References</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Changelog</a></li> +</li> </ul> - <div class="relations"> <h3>Related Topics</h3> <ul> @@ -192,26 +197,23 @@ selected loops, reconstruct hydrogens and minimize energy with MM</li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="_sources/changelog.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -220,11 +222,11 @@ selected loops, reconstruct hydrogens and minimize energy with MM</li> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="_sources/changelog.rst.txt" + <a href="_sources/changelog.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/cmake/index.html b/doc/html/cmake/index.html index 31637ea7048b9e59d9f4e78a45e52189d9a380a9..a428cfebdfbcbaa6ae8fb92b90055a842119c8b5 100644 --- a/doc/html/cmake/index.html +++ b/doc/html/cmake/index.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>ProMod3’s Share Of CMake — ProMod3 3.0.0 documentation</title> + + <title>ProMod3‘s Share Of CMake — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="Documentation For Developers" href="../developers.html" /> <link rel="next" title="Using Binary Files In ProMod3" href="../portableIO.html" /> <link rel="prev" title="test_actions - Testing Actions" href="../actions/index_dev.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -35,40 +48,40 @@ <div class="body" role="main"> <div class="section" id="project-s-share-of-cmake"> -<span id="pm3-cmake-doc"></span><h1>ProMod3’s Share Of CMake<a class="headerlink" href="#project-s-share-of-cmake" title="Permalink to this headline">¶</a></h1> +<span id="pm3-cmake-doc"></span><h1>ProMod3‘s Share Of CMake<a class="headerlink" href="#project-s-share-of-cmake" title="Permalink to this headline">¶</a></h1> <div class="section" id="introduction"> <h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2> -<p>This section describes the set of ProMod3’s own set of CMake functions (or -macros) fed from the <code class="file docutils literal notranslate"><span class="pre">cmake_support</span></code> directory. Those could be easily put +<p>This section describes the set of ProMod3‘s own set of CMake functions (or +macros) fed from the <code class="file docutils literal"><span class="pre">cmake_support</span></code> directory. Those could be easily put into three categories of varying relevance for you:</p> <ol class="arabic simple"> <li>Functions used to integrate your contribution into ProMod3. Its all about adding files to the documentation, declaring unit tests and code management. -Almost all of them have their home in the file <code class="file docutils literal notranslate"><span class="pre">PROMOD3.cmake</span></code>.</li> +Almost all of them have their home in the file <code class="file docutils literal"><span class="pre">PROMOD3.cmake</span></code>.</li> <li>Then there is a set of functions needed to set up CMake itself. Those are little helpers to find tools, external packages and such. These are found in -<code class="file docutils literal notranslate"><span class="pre">Find<DEPENDENCY>.cmake</span></code> files.</li> +<code class="file docutils literal"><span class="pre">Find<DEPENDENCY>.cmake</span></code> files.</li> <li>The last and probably least relevant category for you is also to be found in -<code class="file docutils literal notranslate"><span class="pre">PROMOD3.cmake</span></code>. There is a set of functions used to define more +<code class="file docutils literal"><span class="pre">PROMOD3.cmake</span></code>. There is a set of functions used to define more CMake functionality. You only need to consider those if you dare to extend this set up.</li> </ol> <p>Best practices for using our home-brew CMake functions are found in the -various <code class="file docutils literal notranslate"><span class="pre">CMakeLists.txt</span></code> files in the project’s directory tree.</p> +various <code class="file docutils literal"><span class="pre">CMakeLists.txt</span></code> files in the project’s directory tree.</p> </div> <div class="section" id="functions-for-module-action-maintenance"> <h2>Functions For Module/ Action Maintenance<a class="headerlink" href="#functions-for-module-action-maintenance" title="Permalink to this headline">¶</a></h2> <div class="section" id="module-definition"> <h3>Module definition<a class="headerlink" href="#module-definition" title="Permalink to this headline">¶</a></h3> -<p>Default dependencies in a module <code class="docutils literal notranslate"><span class="pre">NAME</span></code>:</p> +<p>Default dependencies in a module <code class="docutils literal"><span class="pre">NAME</span></code>:</p> <ul class="simple"> -<li><code class="docutils literal notranslate"><span class="pre">_NAME</span></code> depends on <code class="docutils literal notranslate"><span class="pre">NAME_pymod</span></code> and <code class="docutils literal notranslate"><span class="pre">promod3_NAME</span></code> (if that exists)</li> -<li><code class="docutils literal notranslate"><span class="pre">promod3_NAME</span></code> depends on <code class="docutils literal notranslate"><span class="pre">promod3_NAME_headers</span></code></li> +<li><code class="docutils literal"><span class="pre">_NAME</span></code> depends on <code class="docutils literal"><span class="pre">NAME_pymod</span></code> and <code class="docutils literal"><span class="pre">promod3_NAME</span></code> (if that exists)</li> +<li><code class="docutils literal"><span class="pre">promod3_NAME</span></code> depends on <code class="docutils literal"><span class="pre">promod3_NAME_headers</span></code></li> </ul> <dl class="command"> <dt id="command:module"> <code class="descname">module</code><a class="headerlink" href="#command:module" title="Permalink to this definition">¶</a></dt> -<dd><div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nf">module(</span><span class="no">NAME</span><span class="w"> </span><span class="nb">name</span><span class="w"></span> +<dd><div class="highlight-cmake"><div class="highlight"><pre><span></span><span class="nf">module(</span><span class="no">NAME</span><span class="w"> </span><span class="nb">name</span><span class="w"></span> <span class="w"> </span><span class="no">SOURCES</span><span class="w"> </span><span class="nb">source1</span><span class="w"> </span><span class="nb">source2</span><span class="w"></span> <span class="w"> </span><span class="no">HEADERS</span><span class="w"> </span><span class="nb">header1</span><span class="w"> </span><span class="nb">header2</span><span class="w"> </span><span class="p">[</span><span class="no">IN_DIR</span><span class="w"> </span><span class="nb">dir</span><span class="p">]</span><span class="w"></span> <span class="w"> </span><span class="p">[</span><span class="nb">header3</span><span class="w"> </span><span class="nb">header4</span><span class="w"> </span><span class="p">[</span><span class="no">IN_DIR</span><span class="w"> </span><span class="nb">dir</span><span class="p">]]</span><span class="w"></span> @@ -78,38 +91,38 @@ various <code class="file docutils literal notranslate"><span class="pre">CMakeL </pre></div> </div> <p>Define a ProMod3 module from a set of C++ files. This will define the -following make targets (where <code class="docutils literal notranslate"><span class="pre">NAME</span></code> is the provided module name):</p> +following make targets (where <code class="docutils literal"><span class="pre">NAME</span></code> is the provided module name):</p> <ul class="simple"> -<li><code class="docutils literal notranslate"><span class="pre">promod3_NAME</span></code>: builds library <code class="file docutils literal notranslate"><span class="pre">libpromod3_NAME</span></code></li> -<li><code class="docutils literal notranslate"><span class="pre">promod3_NAME_headers</span></code>: copies all header files</li> +<li><code class="docutils literal"><span class="pre">promod3_NAME</span></code>: builds library <code class="file docutils literal"><span class="pre">libpromod3_NAME</span></code></li> +<li><code class="docutils literal"><span class="pre">promod3_NAME_headers</span></code>: copies all header files</li> </ul> <p>The parameters are:</p> <dl class="docutils"> -<dt><code class="docutils literal notranslate"><span class="pre">NAME</span></code></dt> +<dt><code class="docutils literal"><span class="pre">NAME</span></code></dt> <dd>Specify the name of the module.</dd> -<dt><code class="docutils literal notranslate"><span class="pre">SOURCES</span></code></dt> +<dt><code class="docutils literal"><span class="pre">SOURCES</span></code></dt> <dd>Set of C++ source files to be compiled.</dd> -<dt><code class="docutils literal notranslate"><span class="pre">HEADERS</span></code></dt> +<dt><code class="docutils literal"><span class="pre">HEADERS</span></code></dt> <dd>Set of C++ header files to be copied. If the headers are located in a different directory than the current one, you must group them by directory -and provide the directory name <code class="docutils literal notranslate"><span class="pre">dir</span></code> with <code class="docutils literal notranslate"><span class="pre">IN_DIR</span> <span class="pre">dir</span></code> after listing the +and provide the directory name <code class="docutils literal"><span class="pre">dir</span></code> with <code class="docutils literal"><span class="pre">IN_DIR</span> <span class="pre">dir</span></code> after listing the header files in said directory.</dd> -<dt><code class="docutils literal notranslate"><span class="pre">DEPENDS_ON</span></code></dt> -<dd>Add dependencies on other targets (e.g. <code class="docutils literal notranslate"><span class="pre">promod3_MOD</span></code> for another +<dt><code class="docutils literal"><span class="pre">DEPENDS_ON</span></code></dt> +<dd>Add dependencies on other targets (e.g. <code class="docutils literal"><span class="pre">promod3_MOD</span></code> for another ProMod3 module).</dd> -<dt><code class="docutils literal notranslate"><span class="pre">HEADER_OUTPUT_DIR</span></code></dt> +<dt><code class="docutils literal"><span class="pre">HEADER_OUTPUT_DIR</span></code></dt> <dd>Define alternative folder to which to copy header files. Default is -<code class="file docutils literal notranslate"><span class="pre">promod3/NAME</span></code>.</dd> -<dt><code class="docutils literal notranslate"><span class="pre">LINK</span></code></dt> +<code class="file docutils literal"><span class="pre">promod3/NAME</span></code>.</dd> +<dt><code class="docutils literal"><span class="pre">LINK</span></code></dt> <dd>Add dependencies to external libraries. You may use some predefines set of -libraries here, such as <code class="docutils literal notranslate"><span class="pre">${OST_LIBRARIES}</span></code> and <code class="docutils literal notranslate"><span class="pre">${BOOST_LIBRARIES}</span></code>.</dd> +libraries here, such as <code class="docutils literal"><span class="pre">${OST_LIBRARIES}</span></code> and <code class="docutils literal"><span class="pre">${BOOST_LIBRARIES}</span></code>.</dd> </dl> </dd></dl> <dl class="command"> <dt id="command:pymod"> <code class="descname">pymod</code><a class="headerlink" href="#command:pymod" title="Permalink to this definition">¶</a></dt> -<dd><div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nf">pymod(</span><span class="no">NAME</span><span class="w"> </span><span class="nb">name</span><span class="w"></span> +<dd><div class="highlight-cmake"><div class="highlight"><pre><span></span><span class="nf">pymod(</span><span class="no">NAME</span><span class="w"> </span><span class="nb">name</span><span class="w"></span> <span class="w"> </span><span class="no">CPP</span><span class="w"> </span><span class="nb">source1</span><span class="w"> </span><span class="nb">source2</span><span class="w"></span> <span class="w"> </span><span class="no">PY</span><span class="w"> </span><span class="nb">source</span><span class="w"> </span><span class="nb">source2</span><span class="w"> </span><span class="p">[</span><span class="no">IN_DIR</span><span class="w"> </span><span class="nb">dir</span><span class="p">]</span><span class="w"></span> <span class="w"> </span><span class="p">[</span><span class="nb">source3</span><span class="w"> </span><span class="nb">source4</span><span class="w"> </span><span class="p">[</span><span class="no">IN_DIR</span><span class="w"> </span><span class="nb">dir</span><span class="p">]]</span><span class="w"></span> @@ -121,56 +134,56 @@ libraries here, such as <code class="docutils literal notranslate"><span class=" </div> <p>Define the Python interface of a ProMod3 module from a set of C++ wrappers and/or Python files. This will define the following make targets -(where <code class="docutils literal notranslate"><span class="pre">NAME</span></code> is the provided module name):</p> +(where <code class="docutils literal"><span class="pre">NAME</span></code> is the provided module name):</p> <ul class="simple"> -<li><code class="docutils literal notranslate"><span class="pre">_NAME</span></code>: builds library <code class="file docutils literal notranslate"><span class="pre">_NAME</span></code> for Python wrapper around C++</li> -<li><code class="docutils literal notranslate"><span class="pre">NAME_pymod</span></code>: copies (and/or translates) all Python files</li> +<li><code class="docutils literal"><span class="pre">_NAME</span></code>: builds library <code class="file docutils literal"><span class="pre">_NAME</span></code> for Python wrapper around C++</li> +<li><code class="docutils literal"><span class="pre">NAME_pymod</span></code>: copies (and/or translates) all Python files</li> </ul> <p>The parameters are:</p> <dl class="docutils"> -<dt><code class="docutils literal notranslate"><span class="pre">NAME</span></code></dt> +<dt><code class="docutils literal"><span class="pre">NAME</span></code></dt> <dd>Specify the name of the module.</dd> -<dt><code class="docutils literal notranslate"><span class="pre">CPP</span></code></dt> +<dt><code class="docutils literal"><span class="pre">CPP</span></code></dt> <dd>Set of C++ source files to be compiled.</dd> -<dt><code class="docutils literal notranslate"><span class="pre">PY</span></code></dt> +<dt><code class="docutils literal"><span class="pre">PY</span></code></dt> <dd><p class="first">Set of Python source files to be copied. If the files are located in a different directory than the current one, you must group them by directory -and provide the directory name <code class="docutils literal notranslate"><span class="pre">dir</span></code> with <code class="docutils literal notranslate"><span class="pre">IN_DIR</span> <span class="pre">dir</span></code> after listing the +and provide the directory name <code class="docutils literal"><span class="pre">dir</span></code> with <code class="docutils literal"><span class="pre">IN_DIR</span> <span class="pre">dir</span></code> after listing the header files in said directory.</p> <p class="last">If a Python source file needs to be translated by CMake, provide the -dictionary after putting <code class="docutils literal notranslate"><span class="pre">TRANSLATE</span></code>. This assumes a <code class="docutils literal notranslate"><span class="pre"><FILE>.py.in</span></code> for -<code class="docutils literal notranslate"><span class="pre"><FILE>.py</span></code>. <code class="docutils literal notranslate"><span class="pre">END_TRANSLATE</span></code> marks the end of the translation +dictionary after putting <code class="docutils literal"><span class="pre">TRANSLATE</span></code>. This assumes a <code class="docutils literal"><span class="pre"><FILE>.py.in</span></code> for +<code class="docutils literal"><span class="pre"><FILE>.py</span></code>. <code class="docutils literal"><span class="pre">END_TRANSLATE</span></code> marks the end of the translation dictionary.</p> </dd> -<dt><code class="docutils literal notranslate"><span class="pre">OUTPUT_DIR</span></code></dt> +<dt><code class="docutils literal"><span class="pre">OUTPUT_DIR</span></code></dt> <dd>Define alternative folder (within Python tree) to place python files. -Default is <code class="file docutils literal notranslate"><span class="pre">promod3/NAME</span></code>.</dd> -<dt><code class="docutils literal notranslate"><span class="pre">DEPENDS_ON</span></code></dt> -<dd>Add dependencies on other targets (e.g. <code class="docutils literal notranslate"><span class="pre">promod3_MOD</span></code> for another +Default is <code class="file docutils literal"><span class="pre">promod3/NAME</span></code>.</dd> +<dt><code class="docutils literal"><span class="pre">DEPENDS_ON</span></code></dt> +<dd>Add dependencies on other targets (e.g. <code class="docutils literal"><span class="pre">promod3_MOD</span></code> for another ProMod3 module).</dd> -<dt><code class="docutils literal notranslate"><span class="pre">NEED_CONFIG_HEADER</span></code></dt> +<dt><code class="docutils literal"><span class="pre">NEED_CONFIG_HEADER</span></code></dt> <dd>Makes the module depending on the config_header target, which provides the -headers in the <code class="file docutils literal notranslate"><span class="pre">config</span></code> directory.</dd> +headers in the <code class="file docutils literal"><span class="pre">config</span></code> directory.</dd> </dl> </dd></dl> <dl class="command"> <dt id="command:convert_module_data"> <code class="descname">convert_module_data</code><a class="headerlink" href="#command:convert_module_data" title="Permalink to this definition">¶</a></dt> -<dd><div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nf">convert_module_data(</span><span class="no">MODULE</span><span class="w"> </span><span class="nb">name</span><span class="w"></span> +<dd><div class="highlight-cmake"><div class="highlight"><pre><span></span><span class="nf">convert_module_data(</span><span class="no">MODULE</span><span class="w"> </span><span class="nb">name</span><span class="w"></span> <span class="w"> </span><span class="no">FILE</span><span class="w"> </span><span class="nb">file</span><span class="w"></span> <span class="w"> </span><span class="no">SCRIPT</span><span class="w"> </span><span class="nb">script</span><span class="w"></span> <span class="w"> </span><span class="p">[</span><span class="no">ARGS</span><span class="w"> </span><span class="nb">args</span><span class="p">]</span><span class="nf">)</span><span class="w"></span> </pre></div> </div> <p>Use a Python script to convert a portable binary file to a non-portable one. -Calls <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">SCRIPT</span> <span class="pre">in_path</span> <span class="pre">out_path</span> <span class="pre">ARGS</span></code> (with access to OST and +Calls <code class="docutils literal"><span class="pre">python</span> <span class="pre">SCRIPT</span> <span class="pre">in_path</span> <span class="pre">out_path</span> <span class="pre">ARGS</span></code> (with access to OST and ProMod3), -where <code class="docutils literal notranslate"><span class="pre">in_path</span></code> = <code class="file docutils literal notranslate"><span class="pre">portable_FILE</span></code> -(within path of current <code class="file docutils literal notranslate"><span class="pre">CMakeLists.txt</span></code>) -and <code class="docutils literal notranslate"><span class="pre">out_path</span></code> = <code class="file docutils literal notranslate"><span class="pre">share/promod3/MODULE_data/FILE</span></code> -(within the <code class="file docutils literal notranslate"><span class="pre">stage</span></code> directory). -If given, <code class="docutils literal notranslate"><span class="pre">args</span></code> can also be multiple arguments (must be put in “” then).</p> +where <code class="docutils literal"><span class="pre">in_path</span></code> = <code class="file docutils literal"><span class="pre">portable_FILE</span></code> +(within path of current <code class="file docutils literal"><span class="pre">CMakeLists.txt</span></code>) +and <code class="docutils literal"><span class="pre">out_path</span></code> = <code class="file docutils literal"><span class="pre">share/promod3/MODULE_data/FILE</span></code> +(within the <code class="file docutils literal"><span class="pre">stage</span></code> directory). +If given, <code class="docutils literal"><span class="pre">args</span></code> can also be multiple arguments (must be put in “” then).</p> </dd></dl> </div> @@ -179,7 +192,7 @@ If given, <code class="docutils literal notranslate"><span class="pre">args</spa <dl class="command"> <dt id="command:promod3_unittest"> <code class="descname">promod3_unittest</code><a class="headerlink" href="#command:promod3_unittest" title="Permalink to this definition">¶</a></dt> -<dd><div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nf">promod3_unittest(</span><span class="no">MODULE</span><span class="w"> </span><span class="nb">name</span><span class="w"></span> +<dd><div class="highlight-cmake"><div class="highlight"><pre><span></span><span class="nf">promod3_unittest(</span><span class="no">MODULE</span><span class="w"> </span><span class="nb">name</span><span class="w"></span> <span class="w"> </span><span class="no">SOURCES</span><span class="w"> </span><span class="nb">source1</span><span class="w"> </span><span class="p">[</span><span class="nb">source2</span><span class="w"> </span><span class="p">...]</span><span class="w"></span> <span class="w"> </span><span class="p">[</span><span class="no">LINK</span><span class="w"> </span><span class="na">library1/</span><span class="w"> </span><span class="nb">linker</span><span class="w"> </span><span class="nb">flag1</span><span class="w"> </span><span class="p">[</span><span class="na">library2/</span><span class="w"> </span><span class="nb">linker</span><span class="w"> </span><span class="nb">flag2</span><span class="w"> </span><span class="p">...]]</span><span class="w"></span> <span class="w"> </span><span class="p">[</span><span class="no">DATA</span><span class="w"> </span><span class="nb">data1</span><span class="w"> </span><span class="p">[</span><span class="nb">data2</span><span class="w"> </span><span class="p">...]]</span><span class="w"></span> @@ -189,43 +202,43 @@ If given, <code class="docutils literal notranslate"><span class="pre">args</spa </div> <p>Add unit tests to ProMod3. Unit tests should go in module-wise so all source files containing test code go by a single call of -<span class="target" id="index-0-command:promod3_unittest"></span><a class="reference internal" href="#command:promod3_unittest" title="promod3_unittest"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">promod3_unittest()</span></code></a>. Test data also needs to be registered +<span class="target" id="index-0-command:promod3_unittest"></span><a class="reference internal" href="#command:promod3_unittest" title="promod3_unittest"><code class="xref cmake cmake-command docutils literal"><span class="pre">promod3_unittest()</span></code></a>. Test data also needs to be registered here, since it will be copied to the build directory. That way, inside your code you do not need to set a special path to your data. Additionally, since it is out of the source tree, you may change test data as you like, without -the Git repository noticing. Calling <span class="target" id="index-1-command:promod3_unittest"></span><a class="reference internal" href="#command:promod3_unittest" title="promod3_unittest"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">promod3_unittest()</span></code></a> will -create a set of certain <code class="docutils literal notranslate"><span class="pre">make</span></code> targets for you, beside feeding <code class="docutils literal notranslate"><span class="pre">codetest</span></code>.</p> +the Git repository noticing. Calling <span class="target" id="index-1-command:promod3_unittest"></span><a class="reference internal" href="#command:promod3_unittest" title="promod3_unittest"><code class="xref cmake cmake-command docutils literal"><span class="pre">promod3_unittest()</span></code></a> will +create a set of certain <code class="docutils literal"><span class="pre">make</span></code> targets for you, beside feeding <code class="docutils literal"><span class="pre">codetest</span></code>.</p> <p>The parameters are:</p> <dl class="docutils"> -<dt><code class="docutils literal notranslate"><span class="pre">MODULE</span></code></dt> +<dt><code class="docutils literal"><span class="pre">MODULE</span></code></dt> <dd>Specify the name of the module these tests are made for. Needs to be set, -needs to be a single word. Ends up in <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">help</span></code> as a prefix, nothing +needs to be a single word. Ends up in <code class="docutils literal"><span class="pre">make</span> <span class="pre">help</span></code> as a prefix, nothing will break if it does not match the name of any existing module.</dd> -<dt><code class="docutils literal notranslate"><span class="pre">SOURCES</span></code></dt> +<dt><code class="docutils literal"><span class="pre">SOURCES</span></code></dt> <dd>Describe a set of files hosting unit test code here. If its a wild mix of C++ and Python files does not matter, CMake will sort this out for -you. But the programming language makes a difference for the <code class="docutils literal notranslate"><span class="pre">make</span></code> +you. But the programming language makes a difference for the <code class="docutils literal"><span class="pre">make</span></code> targets produced. C++ files will all be gathered in a single -<code class="docutils literal notranslate"><span class="pre">test_suite_<MODULE>_run</span></code> target (there is also a <code class="docutils literal notranslate"><span class="pre">_xml</span></code> target but -this is for tools for automated testing). Python code works on a ‘one -target per file’ basis. So <code class="file docutils literal notranslate"><span class="pre">test_foo.py</span></code> will have own target -<code class="docutils literal notranslate"><span class="pre">test_foo.py_run</span></code>.</dd> -<dt><code class="docutils literal notranslate"><span class="pre">LINK</span></code></dt> +<code class="docutils literal"><span class="pre">test_suite_<MODULE>_run</span></code> target (there is also a <code class="docutils literal"><span class="pre">_xml</span></code> target but +this is for tools for automated testing). Python code works on a ‘one +target per file’ basis. So <code class="file docutils literal"><span class="pre">test_foo.py</span></code> will have own target +<code class="docutils literal"><span class="pre">test_foo.py_run</span></code>.</dd> +<dt><code class="docutils literal"><span class="pre">LINK</span></code></dt> <dd>Add additional libraries and linker flags for C++ source files. Has no effect on Python tests.</dd> -<dt><code class="docutils literal notranslate"><span class="pre">DATA</span></code></dt> +<dt><code class="docutils literal"><span class="pre">DATA</span></code></dt> <dd>Define test data. Instead of giving data directories its own -<code class="file docutils literal notranslate"><span class="pre">CMakeLists.txt</span></code>, those files are added here. Usually located -somewhere in a dedicated <code class="file docutils literal notranslate"><span class="pre">data</span></code> subtree, files need to be given with +<code class="file docutils literal"><span class="pre">CMakeLists.txt</span></code>, those files are added here. Usually located +somewhere in a dedicated <code class="file docutils literal"><span class="pre">data</span></code> subtree, files need to be given with a path relative to this directory. That path will then be created in the build directory.</dd> -<dt><code class="docutils literal notranslate"><span class="pre">TARGET</span></code></dt> +<dt><code class="docutils literal"><span class="pre">TARGET</span></code></dt> <dd>This defines an additional dependency for the unit test. That is, before running this unit test, this target will be built.</dd> -<dt><code class="docutils literal notranslate"><span class="pre">BASE_TARGET</span></code></dt> +<dt><code class="docutils literal"><span class="pre">BASE_TARGET</span></code></dt> <dd>This defines an alternative base target to which to add this unit test. By default all unit tests are registered to be executed with the -<code class="docutils literal notranslate"><span class="pre">codetest</span></code> target. This can be overridden by using this argument.</dd> +<code class="docutils literal"><span class="pre">codetest</span></code> target. This can be overridden by using this argument.</dd> </dl> </dd></dl> @@ -235,23 +248,23 @@ By default all unit tests are registered to be executed with the <dl class="command"> <dt id="command:add_doc_source"> <code class="descname">add_doc_source</code><a class="headerlink" href="#command:add_doc_source" title="Permalink to this definition">¶</a></dt> -<dd><div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nf">add_doc_source(</span><span class="no">NAME</span><span class="w"> </span><span class="nb">name</span><span class="w"></span> +<dd><div class="highlight-cmake"><div class="highlight"><pre><span></span><span class="nf">add_doc_source(</span><span class="no">NAME</span><span class="w"> </span><span class="nb">name</span><span class="w"></span> <span class="w"> </span><span class="no">RST</span><span class="w"> </span><span class="nb">rst1</span><span class="w"> </span><span class="p">[</span><span class="nb">rst2...</span><span class="p">]</span><span class="nf">)</span><span class="w"></span> </pre></div> </div> <p>Add reStructuredText sources for the doc build system. This is most preferable -used in <code class="file docutils literal notranslate"><span class="pre">doc</span></code> directories for keeping the documentation sorted per -module. This does not create any <code class="docutils literal notranslate"><span class="pre">make</span></code> targets. Lists filled here will all -be evaluated in the <code class="file docutils literal notranslate"><span class="pre">doc/CMakeLists.txt</span></code> of the repository root.</p> +used in <code class="file docutils literal"><span class="pre">doc</span></code> directories for keeping the documentation sorted per +module. This does not create any <code class="docutils literal"><span class="pre">make</span></code> targets. Lists filled here will all +be evaluated in the <code class="file docutils literal"><span class="pre">doc/CMakeLists.txt</span></code> of the repository root.</p> <p>The parameters are:</p> <dl class="docutils"> -<dt><code class="docutils literal notranslate"><span class="pre">NAME</span></code></dt> +<dt><code class="docutils literal"><span class="pre">NAME</span></code></dt> <dd>Specify the name of the module this branch of documentation belongs to. Needs to be set, needs to be a single word. Using module names is best practice, while nothing will break if it does not refer to an existing one. -You will find a directory in <code class="file docutils literal notranslate"><span class="pre">doc/source</span></code> with that name in the build +You will find a directory in <code class="file docutils literal"><span class="pre">doc/source</span></code> with that name in the build root.</dd> -<dt><code class="docutils literal notranslate"><span class="pre">RST</span></code></dt> +<dt><code class="docutils literal"><span class="pre">RST</span></code></dt> <dd>Describe a set of files containing the documentation. Feed it a single file name or a CMake list.</dd> </dl> @@ -260,7 +273,7 @@ name or a CMake list.</dd> <dl class="command"> <dt id="command:add_doc_dependency"> <code class="descname">add_doc_dependency</code><a class="headerlink" href="#command:add_doc_dependency" title="Permalink to this definition">¶</a></dt> -<dd><div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nf">add_doc_dependency(</span><span class="no">NAME</span><span class="w"> </span><span class="nb">name</span><span class="w"></span> +<dd><div class="highlight-cmake"><div class="highlight"><pre><span></span><span class="nf">add_doc_dependency(</span><span class="no">NAME</span><span class="w"> </span><span class="nb">name</span><span class="w"></span> <span class="w"> </span><span class="no">DEP</span><span class="w"> </span><span class="nb">dependency1</span><span class="w"> </span><span class="p">[</span><span class="nb">dependency2...</span><span class="p">]</span><span class="nf">)</span><span class="w"></span> </pre></div> </div> @@ -268,14 +281,14 @@ name or a CMake list.</dd> dependencies when it comes to building documentation. Mostly for internal use.</p> <p>The parameters are:</p> <dl class="docutils"> -<dt><code class="docutils literal notranslate"><span class="pre">NAME</span></code></dt> +<dt><code class="docutils literal"><span class="pre">NAME</span></code></dt> <dd>Specify a name the dependencies belong to. This name needs to be already known in the doc build system. Names of Python modules are good, otherwise -names introduced by <span class="target" id="index-0-command:add_doc_source"></span><a class="reference internal" href="#command:add_doc_source" title="add_doc_source"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">add_doc_source()</span></code></a> work well. Dependencies +names introduced by <span class="target" id="index-0-command:add_doc_source"></span><a class="reference internal" href="#command:add_doc_source" title="add_doc_source"><code class="xref cmake cmake-command docutils literal"><span class="pre">add_doc_source()</span></code></a> work well. Dependencies will be create for all reStructuredText files listed by -<span class="target" id="index-1-command:add_doc_source"></span><a class="reference internal" href="#command:add_doc_source" title="add_doc_source"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">add_doc_source()</span></code></a> under this name and for all <code class="docutils literal notranslate"><span class="pre">make</span></code> +<span class="target" id="index-1-command:add_doc_source"></span><a class="reference internal" href="#command:add_doc_source" title="add_doc_source"><code class="xref cmake cmake-command docutils literal"><span class="pre">add_doc_source()</span></code></a> under this name and for all <code class="docutils literal"><span class="pre">make</span></code> targets related to the documentation.</dd> -<dt><code class="docutils literal notranslate"><span class="pre">DEP</span></code></dt> +<dt><code class="docutils literal"><span class="pre">DEP</span></code></dt> <dd>Hand over a dependency here or a CMake list. Files work, if given with absolute path.</dd> </dl> @@ -287,23 +300,23 @@ absolute path.</dd> <dl class="command"> <dt id="command:pm_action"> <code class="descname">pm_action</code><a class="headerlink" href="#command:pm_action" title="Permalink to this definition">¶</a></dt> -<dd><div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nf">pm_action(</span><span class="no">ACTION</span><span class="w"> </span><span class="nb">action-script</span><span class="w"></span> +<dd><div class="highlight-cmake"><div class="highlight"><pre><span></span><span class="nf">pm_action(</span><span class="no">ACTION</span><span class="w"> </span><span class="nb">action-script</span><span class="w"></span> <span class="w"> </span><span class="no">TARGET</span><span class="w"> </span><span class="nb">target</span><span class="nf">)</span><span class="w"></span> </pre></div> </div> -<p>Add an action to ProMod3. Actions are scripts called by the <code class="docutils literal notranslate"><span class="pre">pm</span></code> launcher -and should all live in the <code class="file docutils literal notranslate"><span class="pre">actions</span></code> directory as executable files. +<p>Add an action to ProMod3. Actions are scripts called by the <code class="docutils literal"><span class="pre">pm</span></code> launcher +and should all live in the <code class="file docutils literal"><span class="pre">actions</span></code> directory as executable files. Adding an action means connecting its file with the given target to be copied -to the <code class="file docutils literal notranslate"><span class="pre">libexec</span></code> directory. No dedicated <code class="docutils literal notranslate"><span class="pre">make</span></code> target will be +to the <code class="file docutils literal"><span class="pre">libexec</span></code> directory. No dedicated <code class="docutils literal"><span class="pre">make</span></code> target will be created.</p> <p>The parameters are:</p> <dl class="docutils"> -<dt><code class="docutils literal notranslate"><span class="pre">ACTION</span></code></dt> -<dd>Name of the action to be added. Should start with <code class="file docutils literal notranslate"><span class="pre">pm-</span></code>. Needs to be +<dt><code class="docutils literal"><span class="pre">ACTION</span></code></dt> +<dd>Name of the action to be added. Should start with <code class="file docutils literal"><span class="pre">pm-</span></code>. Needs to be an existing file in the same directory as the invoking -<code class="file docutils literal notranslate"><span class="pre">CMakeLists.txt</span></code>.</dd> -<dt><code class="docutils literal notranslate"><span class="pre">TARGET</span></code></dt> -<dd>Provide a <code class="docutils literal notranslate"><span class="pre">make</span></code> target to trigger copying the action’s script file. The +<code class="file docutils literal"><span class="pre">CMakeLists.txt</span></code>.</dd> +<dt><code class="docutils literal"><span class="pre">TARGET</span></code></dt> +<dd>Provide a <code class="docutils literal"><span class="pre">make</span></code> target to trigger copying the action’s script file. The target has to be created <strong>before</strong> any action may be attached to it.</dd> </dl> </dd></dl> @@ -319,57 +332,48 @@ target has to be created <strong>before</strong> any action may be attached to i </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../users.html">Users</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">ProMod3‘s Share Of CMake</a><ul> +<li><a class="reference internal" href="#introduction">Introduction</a></li> +<li><a class="reference internal" href="#functions-for-module-action-maintenance">Functions For Module/ Action Maintenance</a><ul> +<li><a class="reference internal" href="#module-definition">Module definition</a></li> +<li><a class="reference internal" href="#unit-tests">Unit Tests</a></li> +<li><a class="reference internal" href="#documentation">Documentation</a></li> +<li><a class="reference internal" href="#actions">Actions</a></li> </ul> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> +</li> +</ul> +</li> </ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../developers.html">Documentation For Developers</a><ul> - <li>Previous: <a href="../actions/index_dev.html" title="previous chapter"><code class="docutils literal notranslate"><span class="pre">test_actions</span></code> - Testing Actions</a></li> + <li>Previous: <a href="../actions/index_dev.html" title="previous chapter"><code class="docutils literal"><span class="pre">test_actions</span></code> - Testing Actions</a></li> <li>Next: <a href="../portableIO.html" title="next chapter">Using Binary Files In ProMod3</a></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/cmake/index.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -378,11 +382,11 @@ target has to be created <strong>before</strong> any action may be attached to i ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/cmake/index.rst.txt" + <a href="../_sources/cmake/index.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/container/docker.html b/doc/html/container/docker.html index 902e498e011cd6a2694bbe103c3b6307feebfb18..aaf0cd3df123050f0c7a2d1603464eedf3e9a566 100644 --- a/doc/html/container/docker.html +++ b/doc/html/container/docker.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Docker — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="ProMod3 and Containers" href="index.html" /> <link rel="next" title="Singularity" href="singularity.html" /> <link rel="prev" title="ProMod3 and Containers" href="index.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -37,19 +50,19 @@ <div class="section" id="docker"> <h1>Docker<a class="headerlink" href="#docker" title="Permalink to this headline">¶</a></h1> <div class="section" id="project-s-own-docker-registry"> -<h2>ProMod3’s Own Docker Registry<a class="headerlink" href="#project-s-own-docker-registry" title="Permalink to this headline">¶</a></h2> +<h2>ProMod3‘s Own Docker Registry<a class="headerlink" href="#project-s-own-docker-registry" title="Permalink to this headline">¶</a></h2> <p>For the current stable release of ProMod3, its <a class="reference external" href="https://git.scicore.unibas.ch/schwede/ProMod3">GitLab project</a> is equipped with its own <a class="reference external" href="https://git.scicore.unibas.ch/schwede/ProMod3/container_registry">registry for Docker images</a>. There you can explore the current tag and simply pull a ready made built:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker pull registry.scicore.unibas.ch/schwede/promod3:<TAG> +<div class="highlight-bash"><div class="highlight"><pre><span></span>docker pull registry.scicore.unibas.ch/schwede/promod3:<TAG> </pre></div> </div> </div> <div class="section" id="build-docker-image"> <h2>Build Docker Image<a class="headerlink" href="#build-docker-image" title="Permalink to this headline">¶</a></h2> <p>In order to build the image:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker build --tag <IMAGE_NAME> -f Dockerfile <PATH_TO_DOCKERFILE_DIR> +<div class="highlight-bash"><div class="highlight"><pre><span></span>docker build --tag <IMAGE_NAME> -f Dockerfile <PATH_TO_DOCKERFILE_DIR> </pre></div> </div> <p>You can chose any image name (tag) eg. promod.</p> @@ -62,23 +75,23 @@ path. Eg. assuming that we have a struc.pdb file in /home/<USER>/pdbs dire a script.py in /home/<USER> we could mount the /home/<USER> to /home in docker as above by specifying -v /home/<USER>:/home. To run the script we thus need to provide the (relative) path to the script and (relative) path to the file eg:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker run --rm -v /home/<USER>:/home <IMAGE_NAME> script.py <span class="se">\</span> +<div class="highlight-bash"><div class="highlight"><pre><span></span>docker run --rm -v /home/<USER>:/home <IMAGE_NAME> script.py <span class="se">\</span> pdbs/struct.pdb </pre></div> </div> <p>or with absolute paths:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker run --rm -v /home/<USER>:/home <IMAGE_NAME> /home/script.py <span class="se">\</span> +<div class="highlight-bash"><div class="highlight"><pre><span></span>docker run --rm -v /home/<USER>:/home <IMAGE_NAME> /home/script.py <span class="se">\</span> /home/pdbs/struct.pdb </pre></div> </div> <p>An alternative is to mount the current working directory into the docker home:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker run --rm -v <span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span>:/home <IMAGE_NAME> script.py pdbs/struct.pdb +<div class="highlight-bash"><div class="highlight"><pre><span></span>docker run --rm -v <span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span>:/home <IMAGE_NAME> script.py pdbs/struct.pdb </pre></div> </div> </div> <div class="section" id="the-compound-library"> <span id="docker-compound-lib"></span><h2>The Compound Library<a class="headerlink" href="#the-compound-library" title="Permalink to this headline">¶</a></h2> -<p>At build time of the container, a <a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/compoundlib/#ost.conop.CompoundLib" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">CompoundLib</span></code></a> is generated. +<p>At build time of the container, a <a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/compoundlib/#ost.conop.CompoundLib" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">CompoundLib</span></code></a> is generated. Compound libraries contain information on chemical compounds, such as their connectivity, chemical class and one-letter-code. The compound library has several uses, but the most important one is to provide the connectivy @@ -101,12 +114,12 @@ The files are rather large, it is therefore recommended to download the gzipped version.</p> <p>After downloading the file use <strong class="program">chemdict_tool</strong> in the container to convert the mmCIF dictionary into our internal format:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker run --rm -v <span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span>:/home --entrypoint chemdict_tool <IMAGE_NAME> <span class="se">\</span> +<div class="highlight-bash"><div class="highlight"><pre><span></span>docker run --rm -v <span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span>:/home --entrypoint chemdict_tool <IMAGE_NAME> <span class="se">\</span> create components.cif.gz compounds.chemlib </pre></div> </div> <p>To run a script with the upated compound library, use the -v option for mounting/overriding:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker run --rm -v /home/<USER>:/home <span class="se">\</span> +<div class="highlight-bash"><div class="highlight"><pre><span></span>docker run --rm -v /home/<USER>:/home <span class="se">\</span> -v <COMPLIB_DIR_LOCALHOST>/compounds.chemlib:<COMPLIB_DIR_CONTAINER>/compounds.chemlib <span class="se">\</span> <IMAGE_NAME> script.py pdbs/struct.pdb </pre></div> @@ -118,10 +131,10 @@ If you didnt change anything in the Dockerfile, the latter should be /usr/local/share/openstructure</p> <p>You can check whether the default lib is successfully overriden by looking at the output when running a Python script with following code in the container:</p> -<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">promod3</span> <span class="c1"># required to setup default lib</span> +<div class="highlight-python"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">promod3</span> <span class="c1"># required to setup default lib</span> <span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">conop</span> <span class="n">lib</span> <span class="o">=</span> <span class="n">conop</span><span class="o">.</span><span class="n">GetDefaultLib</span><span class="p">()</span> -<span class="k">print</span><span class="p">(</span><span class="n">lib</span><span class="o">.</span><span class="n">GetCreationDate</span><span class="p">())</span> +<span class="nb">print</span><span class="p">(</span><span class="n">lib</span><span class="o">.</span><span class="n">GetCreationDate</span><span class="p">())</span> </pre></div> </div> </div> @@ -134,39 +147,16 @@ output when running a Python script with following code in the container:</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 Actions</a></li> -<li class="toctree-l2"><a class="reference internal" href="../buildsystem.html">Building ProMod3</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Docker</a><ul> +<li><a class="reference internal" href="#project-s-own-docker-registry">ProMod3‘s Own Docker Registry</a></li> +<li><a class="reference internal" href="#build-docker-image">Build Docker Image</a></li> +<li><a class="reference internal" href="#run-scripts-and-actions-with-pm-executable">Run scripts and actions with pm executable</a></li> +<li><a class="reference internal" href="#the-compound-library">The Compound Library</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> @@ -180,26 +170,23 @@ output when running a Python script with following code in the container:</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/container/docker.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -208,11 +195,11 @@ output when running a Python script with following code in the container:</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/container/docker.rst.txt" + <a href="../_sources/container/docker.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/container/index.html b/doc/html/container/index.html index e3fb30aaba394e6feb6fbe34926086f03315884f..abc61252dde1b09dcbf12ba2382bd45be0cacfbb 100644 --- a/doc/html/container/index.html +++ b/doc/html/container/index.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>ProMod3 and Containers — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="Documentation For Users" href="../users.html" /> <link rel="next" title="Docker" href="docker.html" /> <link rel="prev" title="Building ProMod3" href="../buildsystem.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -54,41 +67,7 @@ some sugar on top.</p> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 Actions</a></li> -<li class="toctree-l2"><a class="reference internal" href="../buildsystem.html">Building ProMod3</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> @@ -99,26 +78,23 @@ some sugar on top.</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/container/index.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -127,11 +103,11 @@ some sugar on top.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/container/index.rst.txt" + <a href="../_sources/container/index.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/container/singularity.html b/doc/html/container/singularity.html index 350fdff0995327d654d06a3e7786669061c5742f..196c7eaeb7f6d728fac372aed0dd5901e294c691 100644 --- a/doc/html/container/singularity.html +++ b/doc/html/container/singularity.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Singularity — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="ProMod3 and Containers" href="index.html" /> <link rel="next" title="modelling - Protein Modelling" href="../modelling/index.html" /> <link rel="prev" title="Docker" href="docker.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -36,10 +49,10 @@ <div class="section" id="singularity"> <h1>Singularity<a class="headerlink" href="#singularity" title="Permalink to this headline">¶</a></h1> -<p>We do not provide a “standalone” Singularity image, but rather bootstrap from a +<p>We do not provide a “standalone” Singularity image, but rather bootstrap from a Docker image.</p> <p>Build the image with:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo singularity build promod.img Singularity +<div class="highlight-bash"><div class="highlight"><pre><span></span>sudo singularity build promod.img Singularity </pre></div> </div> <div class="section" id="available-apps"> @@ -58,38 +71,38 @@ Docker image.</p> </dd> </dl> <p>To see the help for each individual app run:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>singularity run-help --app <APP NAME> <PATH TO PROMOD IMAGE> +<div class="highlight-bash"><div class="highlight"><pre><span></span>singularity run-help --app <APP NAME> <PATH TO PROMOD IMAGE> </pre></div> </div> <p>Eg.:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>singularity run-help --app PM promod.img +<div class="highlight-bash"><div class="highlight"><pre><span></span>singularity run-help --app PM promod.img </pre></div> </div> <p>To list all available ProMod3 modelling actions:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>singularity run --app PM promod.img <span class="nb">help</span> +<div class="highlight-bash"><div class="highlight"><pre><span></span>singularity run --app PM promod.img <span class="nb">help</span> </pre></div> </div> </div> <div class="section" id="the-compound-library"> <h2>The Compound Library<a class="headerlink" href="#the-compound-library" title="Permalink to this headline">¶</a></h2> -<p>You’ll have the exact same problem with outdated compound libraries as in the +<p>You’ll have the exact same problem with outdated compound libraries as in the raw Docker image. You can find more information on that matter in the Docker section of the documentation: <a class="reference internal" href="docker.html#docker-compound-lib"><span class="std std-ref">The Compound Library</span></a>.</p> <p>The same trick of mounting an up to date compound library from the local host into the container applies. The two relevant commands for Singularity are building a new library and mount it.</p> <p>Build a new library:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>singularity run --app ChemdictTool <IMAGE> create components.cif.gz <span class="se">\</span> +<div class="highlight-bash"><div class="highlight"><pre><span></span>singularity run --app ChemdictTool <IMAGE> create components.cif.gz <span class="se">\</span> compounds.chemlib </pre></div> </div> <p>Run some script with an updated compound library from localhost:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>singularity run <span class="se">\</span> +<div class="highlight-bash"><div class="highlight"><pre><span></span>singularity run <span class="se">\</span> -B <COMPLIB_DIR_LOCALHOST>/compounds.chemlib:<COMPLIB_DIR_CONTAINER>/compounds.chemlib <span class="se">\</span> --app PM <IMAGE> my_script.py </pre></div> </div> -<p>Same as for the Docker, if you didn’t meddle with the original Dockerfile, +<p>Same as for the Docker, if you didn’t meddle with the original Dockerfile, <COMPLIB_DIR_CONTAINER> should be /usr/local/share/openstructure. <COMPLIB_DIR_LOCALHOST> is the directory that contains the compound lib with the name compounds.chemlib that you created before. Make sure that everything works @@ -105,39 +118,14 @@ in the Docker documentation: <a class="reference internal" href="docker.html#doc </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 Actions</a></li> -<li class="toctree-l2"><a class="reference internal" href="../buildsystem.html">Building ProMod3</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Singularity</a><ul> +<li><a class="reference internal" href="#available-apps">Available apps</a></li> +<li><a class="reference internal" href="#the-compound-library">The Compound Library</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> @@ -145,32 +133,29 @@ in the Docker documentation: <a class="reference internal" href="docker.html#doc <li><a href="../users.html">Documentation For Users</a><ul> <li><a href="index.html">ProMod3 and Containers</a><ul> <li>Previous: <a href="docker.html" title="previous chapter">Docker</a></li> - <li>Next: <a href="../modelling/index.html" title="next chapter"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> + <li>Next: <a href="../modelling/index.html" title="next chapter"><code class="docutils literal"><span class="pre">modelling</span></code> - Protein Modelling</a></li> </ul></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/container/singularity.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -179,11 +164,11 @@ in the Docker documentation: <a class="reference internal" href="docker.html#doc ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/container/singularity.rst.txt" + <a href="../_sources/container/singularity.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/contributing.html b/doc/html/contributing.html index 3a7b0fc95a68d2a1682f37ea2f1e1133054042c5..39048603718cb1826aaa45aab017d9b59709d956 100644 --- a/doc/html/contributing.html +++ b/doc/html/contributing.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Contributing — ProMod3 3.0.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" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="index.html" /> + <link rel="up" title="Documentation For Developers" href="developers.html" /> <link rel="next" title="test_actions - Testing Actions" href="actions/index_dev.html" /> <link rel="prev" title="ProMod3 Setup" href="dev_setup.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -46,8 +59,8 @@ as examples and to be consistent with what you already find here.</p> <div class="section" id="how-to-share-your-own-script"> <h2>How To Share Your Own Script<a class="headerlink" href="#how-to-share-your-own-script" title="Permalink to this headline">¶</a></h2> <p>If you have a useful script using ProMod3 that you want to share, it should go -as a subfolder into the <code class="file docutils literal notranslate"><span class="pre">extras/external_scripts</span></code> folder. Make sure to -describe the use and purpose of the script in a short <code class="file docutils literal notranslate"><span class="pre">README</span></code> including +as a subfolder into the <code class="file docutils literal"><span class="pre">extras/external_scripts</span></code> folder. Make sure to +describe the use and purpose of the script in a short <code class="file docutils literal"><span class="pre">README</span></code> including working commands on how to use it.</p> </div> <div class="section" id="how-to-start-your-own-module"> @@ -55,69 +68,69 @@ working commands on how to use it.</p> <p>This is just a walk-through how the topics from above work together when you start your own module. For the entry point, lets assume that you already cloned the repository into a directory and just changed into it.</p> -<p>All new features should take off from the <code class="docutils literal notranslate"><span class="pre">develop</span></code> branch. That way, they +<p>All new features should take off from the <code class="docutils literal"><span class="pre">develop</span></code> branch. That way, they work fine with all the other new fellows waiting for release right from the beginning. Therefore you need to switch branches as a first step. Git will tell you for which branch you went, a story of failure otherwise.</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> git checkout develop +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> git checkout develop <span class="go">Switched to branch 'develop'</span> </pre></div> </div> <p>Sitting on top of the right code basis, you should just spawn your own branch -from it. As an example, your feature will go by the name of ‘sidechain’.</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> git checkout -b sidechain +from it. As an example, your feature will go by the name of ‘sidechain’.</p> +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> git checkout -b sidechain <span class="go">Switched to a new branch 'sidechain'</span> </pre></div> </div> <p>This time, Git should tell you about going for <strong>a new</strong> branch.</p> <p>Before starting to create anything for real, now is the perfect moment to install our very own Git hook to check some coding rules on commit.</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> cp extras/pre_commit/pre-commit .git/hooks/ +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> cp extras/pre_commit/pre-commit .git/hooks/ </pre></div> </div> <p>With that in place, changes which break our coding standards will abort any commit.</p> <p>Now create the directory structure where your project will live. Here is the list of directories which are likely to be used in every project.</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> mkdir -p sidechain/doc +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> mkdir -p sidechain/doc <span class="gp">$</span> mkdir -p sidechain/pymod <span class="gp">$</span> mkdir -p sidechain/tests </pre></div> </div> -<p>If you run <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">status</span></code> at this point, you will see basically nothing. That +<p>If you run <code class="docutils literal"><span class="pre">git</span> <span class="pre">status</span></code> at this point, you will see basically nothing. That is, Git does not admire empty directories. Before you bring your module under version control, create a couple of files which are always needed.</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> touch sidechain/pymod/__init__.py +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> touch sidechain/pymod/__init__.py <span class="gp">$</span> <span class="nb">echo</span> <span class="s2">":mod:\`~promod3.sidechain\` - ProMod3 side chain optimiser"</span> <span class="se">\</span> >> sidechain/doc/index.rst <span class="gp">$</span> <span class="nb">echo</span> <span class="s2">"=========================================================="</span> <span class="se">\</span> <span class="s2">"======================"</span> >> sidechain/doc/index.rst </pre></div> </div> -<p>Having an empty <code class="file docutils literal notranslate"><span class="pre">__init__.py</span></code> is perfectly fine for Python, it just -announces a directory as a module. But a blank <code class="file docutils literal notranslate"><span class="pre">index.rst</span></code> has the chance +<p>Having an empty <code class="file docutils literal"><span class="pre">__init__.py</span></code> is perfectly fine for Python, it just +announces a directory as a module. But a blank <code class="file docutils literal"><span class="pre">index.rst</span></code> has the chance to give Sphinx quite a headache so you already fill it with a headline for your documentation.</p> <p>For integration with <strong class="command">make</strong>, the build system needs to now about the new module and its members. This goes for setting up new CMake files and extending some around the directory root.</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> touch sidechain/CMakeLists.txt +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> touch sidechain/CMakeLists.txt <span class="gp">$</span> touch sidechain/pymod/CMakeLists.txt <span class="gp">$</span> touch sidechain/doc/CMakeLists.txt </pre></div> </div> <p>Each of those files still needs a bit of content. The simplest one comes from -the module’s root, <code class="file docutils literal notranslate"><span class="pre">sidechain/CMakeLists.txt</span></code>:</p> -<div class="highlight-cmake notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 +the module’s root, <code class="file docutils literal"><span class="pre">sidechain/CMakeLists.txt</span></code>:</p> +<div class="highlight-cmake"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nf">add_subdirectory(</span><span class="nb">pymod</span><span class="nf">)</span><span class="w"></span> <span class="nf">add_subdirectory(</span><span class="nb">doc</span><span class="nf">)</span><span class="w"></span> </pre></div> </td></tr></table></div> <p>Those two directives just tell CMake to go and look in directories -<code class="file docutils literal notranslate"><span class="pre">pymod</span></code> and <code class="file docutils literal notranslate"><span class="pre">doc</span></code> below the current path for more CMake -configurations. The next level in <code class="file docutils literal notranslate"><span class="pre">CMakeLists.txt</span></code> magic comes for the -<code class="file docutils literal notranslate"><span class="pre">doc</span></code> directory:</p> -<div class="highlight-cmake notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 +<code class="file docutils literal"><span class="pre">pymod</span></code> and <code class="file docutils literal"><span class="pre">doc</span></code> below the current path for more CMake +configurations. The next level in <code class="file docutils literal"><span class="pre">CMakeLists.txt</span></code> magic comes for the +<code class="file docutils literal"><span class="pre">doc</span></code> directory:</p> +<div class="highlight-cmake"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 2 3 4 @@ -128,21 +141,21 @@ configurations. The next level in <code class="file docutils literal notranslate <span class="nf">add_doc_source(</span><span class="no">NAME</span><span class="w"> </span><span class="nb">sidechain</span><span class="w"> </span><span class="no">RST</span><span class="w"> </span><span class="o">${</span><span class="nt">SIDECHAIN_RST</span><span class="o">}</span><span class="nf">)</span><span class="w"></span> </pre></div> </td></tr></table></div> -<p><code class="docutils literal notranslate"><span class="pre">add_doc_source</span></code> is our custom CMake macro to register +<p><code class="docutils literal"><span class="pre">add_doc_source</span></code> is our custom CMake macro to register reST files for the documentation. On running -<strong class="command">make</strong>, those files are placed in a <code class="file docutils literal notranslate"><span class="pre">doc/source</span></code> directory tree +<strong class="command">make</strong>, those files are placed in a <code class="file docutils literal"><span class="pre">doc/source</span></code> directory tree within the build directory. Each new submodule in your project should be -covered by its own documentation entity, extending the list in <code class="docutils literal notranslate"><span class="pre">RST</span></code>. +covered by its own documentation entity, extending the list in <code class="docutils literal"><span class="pre">RST</span></code>. Maintaining readability, its good practice to store this list in a separate -variable, called <code class="docutils literal notranslate"><span class="pre">SIDECHAIN_RST</span></code> here.</p> +variable, called <code class="docutils literal"><span class="pre">SIDECHAIN_RST</span></code> here.</p> <p>For the actual code, you should keep in mind that a Python module may be rather complex. There is for sure Python code, there could be a bit of C++ and conditional compilation. In rare cases you also want to modify the directory structure of the package. All this has to be declared in the -<code class="file docutils literal notranslate"><span class="pre">pymod</span></code> subtree. We cannot enumerate all specialities but there should be +<code class="file docutils literal"><span class="pre">pymod</span></code> subtree. We cannot enumerate all specialities but there should be a couple of examples around in this repository. Here is the most basic -<code class="file docutils literal notranslate"><span class="pre">CMakeLists.txt</span></code>:</p> -<div class="highlight-cmake notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 +<code class="file docutils literal"><span class="pre">CMakeLists.txt</span></code>:</p> +<div class="highlight-cmake"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 2 3 4 @@ -155,12 +168,12 @@ a couple of examples around in this repository. Here is the most basic </td></tr></table></div> <p>Source files should be again listed in a dedicated variable. Later, you probably add some C++ code and settings diverging from the defaults via the -<code class="docutils literal notranslate"><span class="pre">pymod</span></code> macro. This is where things clutter up quite quickly. As set up here, -your project would be added as a module <code class="docutils literal notranslate"><span class="pre">sidechain</span></code> in the ProMod3 +<code class="docutils literal"><span class="pre">pymod</span></code> macro. This is where things clutter up quite quickly. As set up here, +your project would be added as a module <code class="docutils literal"><span class="pre">sidechain</span></code> in the ProMod3 Python package tree.</p> -<p>The final step towards CMake is to register your module’s directory in the -top level <code class="file docutils literal notranslate"><span class="pre">CMakeLists.txt</span></code>:</p> -<div class="highlight-cmake notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 +<p>The final step towards CMake is to register your module’s directory in the +top level <code class="file docutils literal"><span class="pre">CMakeLists.txt</span></code>:</p> +<div class="highlight-cmake"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 2 3 4 @@ -196,44 +209,44 @@ directory as shown in line 8.</p> <p>This was the final step to set up the build system. Running CMake at this point would create the build environment in place. But building software in your code repository has several drawbacks. First of all, it puts all kind of -new files in the directory tree and <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">status</span></code> would show them all. Then -its very likely, that manual intervention is needed after <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">clean</span></code>. Plus, +new files in the directory tree and <code class="docutils literal"><span class="pre">git</span> <span class="pre">status</span></code> would show them all. Then +its very likely, that manual intervention is needed after <code class="docutils literal"><span class="pre">make</span> <span class="pre">clean</span></code>. Plus, this would be very static. Imagine at one point you want to switch on all debugging flags for your C++ code. So you either clean the whole repository and rebuild or you go by two separated repositories copying code changes from A -to B. The solution to this is instead of ‘in place’ you go ‘out of source’. You +to B. The solution to this is instead of ‘in place’ you go ‘out of source’. You still can stay in your repository while being out of the source tree by using -sub-directories. ProMod3 comes with a dedicated prefix ‘build*’ in -<code class="file docutils literal notranslate"><span class="pre">.gitignore</span></code>. Have a directory <code class="file docutils literal notranslate"><span class="pre">build</span></code> and <code class="file docutils literal notranslate"><span class="pre">build-dbg</span></code> and it -will not show up in <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">status</span></code>.</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> mkdir build +sub-directories. ProMod3 comes with a dedicated prefix ‘build*’ in +<code class="file docutils literal"><span class="pre">.gitignore</span></code>. Have a directory <code class="file docutils literal"><span class="pre">build</span></code> and <code class="file docutils literal"><span class="pre">build-dbg</span></code> and it +will not show up in <code class="docutils literal"><span class="pre">git</span> <span class="pre">status</span></code>.</p> +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> mkdir build <span class="gp">$</span> <span class="nb">cd</span> build </pre></div> </div> <p>To actually create all the makefiles and generated files, you may use one of -the configuration scripts from the <code class="file docutils literal notranslate"><span class="pre">conf-scripts</span></code> directory. Usually +the configuration scripts from the <code class="file docutils literal"><span class="pre">conf-scripts</span></code> directory. Usually those scripts only need to be pointed to an OST staging tree. Even if you are on a system not covered by available scripts, their code may help you at the CMake command. Once you managed to conquer a new system, feel free to add a new configuration script. The following example assumes Fedora 19.</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> ../conf-scripts/fedora-19-conf ../../ost.git/stage +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> ../conf-scripts/fedora-19-conf ../../ost.git/stage </pre></div> </div> <p>From this point, <strong class="command">make</strong> should work and you could start adding your -files to the repository using <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">add</span></code>.</p> -<p>Up to now, we did not cover the <code class="file docutils literal notranslate"><span class="pre">tests</span></code> branch of a new module. But its +files to the repository using <code class="docutils literal"><span class="pre">git</span> <span class="pre">add</span></code>.</p> +<p>Up to now, we did not cover the <code class="file docutils literal"><span class="pre">tests</span></code> branch of a new module. But its good practice to develop new functionality along tests and that right from the beginning. At some point, new code needs testing anyway to see if it does what it should, so just do this by writing unit tests. Test sources are stored in -files with a prefix <code class="file docutils literal notranslate"><span class="pre">test_</span></code> and usually come per submodule instead of -sporting a single monolithic <code class="file docutils literal notranslate"><span class="pre">test_sidechain_reconstruction.py</span></code>.</p> +files with a prefix <code class="file docutils literal"><span class="pre">test_</span></code> and usually come per submodule instead of +sporting a single monolithic <code class="file docutils literal"><span class="pre">test_sidechain_reconstruction.py</span></code>.</p> <p>Python code is evaluated using its own <a class="reference external" href="https://docs.python.org/3.6/library/unittest.html">unit testing framework</a> with a little help from <a class="reference external" href="https://www.OpenStructure.org">OST</a> (C++ uses the Boost <a class="reference external" href="https://www.boost.org/doc/libs/1_53_0/libs/test/doc/html/index.html">Test Library</a>). The -basic scheme is to import your module, subclass <a class="reference external" href="https://docs.python.org/3.6/library/unittest.html#unittest.TestCase" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.TestCase</span></code></a> and -make the whole file runnable as script using the most common <a class="reference external" href="https://docs.python.org/3.6/library/__main__.html"><a class="reference external" href="https://docs.python.org/3.6/reference/import.html#__name__" title="(in Python v3.6)"><code class="xref py py-attr docutils literal notranslate"><span class="pre">__name__</span></code></a></a> +basic scheme is to import your module, subclass <a class="reference external" href="https://docs.python.org/3.6/library/unittest.html#unittest.TestCase" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">unittest.TestCase</span></code></a> and +make the whole file runnable as script using the most common <a class="reference external" href="https://docs.python.org/3.6/library/__main__.html"><a class="reference external" href="https://docs.python.org/3.6/reference/import.html#__name__" title="(in Python v3.6)"><code class="xref py py-attr docutils literal"><span class="pre">__name__</span></code></a></a> attribute. As an example we test the -<a class="reference internal" href="modelling/sidechain_reconstruction.html#promod3.modelling.ReconstructSidechains" title="promod3.modelling.ReconstructSidechains"><code class="xref py py-func docutils literal notranslate"><span class="pre">promod3.modelling.ReconstructSidechains()</span></code></a> function:</p> -<div class="highlight-default notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 +<a class="reference internal" href="modelling/sidechain_reconstruction.html#promod3.modelling.ReconstructSidechains" title="promod3.modelling.ReconstructSidechains"><code class="xref py py-func docutils literal"><span class="pre">promod3.modelling.ReconstructSidechains()</span></code></a> function:</p> +<div class="highlight-default"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 2 3 4 @@ -252,8 +265,8 @@ attribute. As an example we test the 17 18 19</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">unittest</span> -<span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">modelling</span> -<span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">io</span><span class="p">,</span><span class="n">mol</span> +<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">modelling</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">mol</span> <span class="kn">import</span> <span class="nn">os</span> <span class="k">class</span> <span class="nc">ReconstructTests</span><span class="p">(</span><span class="n">unittest</span><span class="o">.</span><span class="n">TestCase</span><span class="p">):</span> @@ -268,25 +281,25 @@ attribute. As an example we test the <span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">GetAtomCount</span><span class="p">(),</span> <span class="n">prot_rec</span><span class="o">.</span><span class="n">GetAtomCount</span><span class="p">())</span> <span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">"__main__"</span><span class="p">:</span> - <span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">testutils</span> + <span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">testutils</span> <span class="n">testutils</span><span class="o">.</span><span class="n">RunTests</span><span class="p">()</span> </pre></div> </td></tr></table></div> -<p>To hook up your tests with <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">codetest</span></code> (and to create a -<code class="docutils literal notranslate"><span class="pre">test_reconstruct_sidechains.py_run</span></code> target), everything has to be introduced to CMake. -First, tell CMake to search <code class="file docutils literal notranslate"><span class="pre">tests</span></code> for a <code class="file docutils literal notranslate"><span class="pre">CMakeLists.txt</span></code> file -by extending the list of sub-directories in <code class="file docutils literal notranslate"><span class="pre">sidechain/CMakeLists.txt</span></code>:</p> -<div class="highlight-cmake notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 +<p>To hook up your tests with <code class="docutils literal"><span class="pre">make</span> <span class="pre">codetest</span></code> (and to create a +<code class="docutils literal"><span class="pre">test_reconstruct_sidechains.py_run</span></code> target), everything has to be introduced to CMake. +First, tell CMake to search <code class="file docutils literal"><span class="pre">tests</span></code> for a <code class="file docutils literal"><span class="pre">CMakeLists.txt</span></code> file +by extending the list of sub-directories in <code class="file docutils literal"><span class="pre">sidechain/CMakeLists.txt</span></code>:</p> +<div class="highlight-cmake"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 2 3</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nf">add_subdirectory(</span><span class="nb">pymod</span><span class="nf">)</span><span class="w"></span> <span class="w"> </span><span class="nf">add_subdirectory(</span><span class="nb">doc</span><span class="nf">)</span><span class="w"></span> <span class="w"> </span><span class="nf">add_subdirectory(</span><span class="nb">tests</span><span class="nf">)</span><span class="w"></span> </pre></div> </td></tr></table></div> -<p>Then fill <code class="file docutils literal notranslate"><span class="pre">sidechain/tests/CMakeLists.txt</span></code> with your new test script and -<code class="docutils literal notranslate"><span class="pre">make</span></code> will recognise the changes next time it is run and fix the rest for +<p>Then fill <code class="file docutils literal"><span class="pre">sidechain/tests/CMakeLists.txt</span></code> with your new test script and +<code class="docutils literal"><span class="pre">make</span></code> will recognise the changes next time it is run and fix the rest for you.</p> -<div class="highlight-cmake notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 +<div class="highlight-cmake"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 2 3 4 @@ -312,17 +325,17 @@ you.</p> </pre></div> </td></tr></table></div> <p>Note how we listed the test data that we require in the unit test by defining -<code class="docutils literal notranslate"><span class="pre">SIDECHAIN_TEST_DATA</span></code>.</p> -<p>Now tests should be available by <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">check</span></code>, <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">codetest</span></code> and -<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test_reconstruct_sidechains.py_run</span></code>.</p> +<code class="docutils literal"><span class="pre">SIDECHAIN_TEST_DATA</span></code>.</p> +<p>Now tests should be available by <code class="docutils literal"><span class="pre">make</span> <span class="pre">check</span></code>, <code class="docutils literal"><span class="pre">make</span> <span class="pre">codetest</span></code> and +<code class="docutils literal"><span class="pre">make</span> <span class="pre">test_reconstruct_sidechains.py_run</span></code>.</p> </div> <div class="section" id="how-to-start-your-own-action"> <span id="id2"></span><h2>How To Start Your Own Action<a class="headerlink" href="#how-to-start-your-own-action" title="Permalink to this headline">¶</a></h2> -<p>In ProMod3 we call scripts/ programs ‘actions’. They are started by a -launcher found in your staging directory at <code class="file docutils literal notranslate"><span class="pre">stage/bin/pm</span></code>. This little +<p>In ProMod3 we call scripts/ programs ‘actions’. They are started by a +launcher found in your staging directory at <code class="file docutils literal"><span class="pre">stage/bin/pm</span></code>. This little guy helps keeping the shell environment in the right mood to carry out your job. So usually you will start an action by</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> stage/bin/pm <span class="nb">help</span> +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> stage/bin/pm <span class="nb">help</span> </pre></div> </div> <p>To start your own action, follow <a class="reference internal" href="#how-to-start-your-own-module"><span class="std std-ref">How To Start Your Own Module</span></a> until @@ -332,19 +345,19 @@ other branches stay clean in case you have to do some work there which needs to get public.</p> <p>After preparing your repository its time to create a file for the action. That is a bit different than for modules. Assuming we are sitting in the -repository’s root:</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> touch action/pm-awesome-action +repository’s root:</p> +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> touch action/pm-awesome-action <span class="gp">$</span> chmod +x action/pm-awesome-action </pre></div> </div> -<p>Two things are important here: actions are prefixed with <code class="file docutils literal notranslate"><span class="pre">pm-</span></code>, so they -are recognised by the <code class="file docutils literal notranslate"><span class="pre">pm</span></code> launcher. Secondly, action files need to be +<p>Two things are important here: actions are prefixed with <code class="file docutils literal"><span class="pre">pm-</span></code>, so they +are recognised by the <code class="file docutils literal"><span class="pre">pm</span></code> launcher. Secondly, action files need to be executable, which does not propagate if you do it <strong>after</strong> the first call to -<code class="docutils literal notranslate"><span class="pre">make</span></code>.</p> -<p>To get the new action recognised by <code class="docutils literal notranslate"><span class="pre">make</span></code> to be placed in -<code class="file docutils literal notranslate"><span class="pre">stage/libexec/promod3</span></code>, it has to be registered with CMake in -<code class="file docutils literal notranslate"><span class="pre">actions/CMakeLists.txt</span></code>:</p> -<div class="highlight-cmake notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 +<code class="docutils literal"><span class="pre">make</span></code>.</p> +<p>To get the new action recognised by <code class="docutils literal"><span class="pre">make</span></code> to be placed in +<code class="file docutils literal"><span class="pre">stage/libexec/promod3</span></code>, it has to be registered with CMake in +<code class="file docutils literal"><span class="pre">actions/CMakeLists.txt</span></code>:</p> +<div class="highlight-cmake"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 2 3 4 @@ -360,31 +373,31 @@ executable, which does not propagate if you do it <strong>after</strong> the fir </pre></div> </td></tr></table></div> <p>Just add your action with its full filename with a call to -<span class="target" id="index-0-command:pm_action"></span><a class="reference internal" href="cmake/index.html#command:pm_action" title="pm_action"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">pm_action()</span></code></a> at the end of the file.</p> +<span class="target" id="index-0-command:pm_action"></span><a class="reference internal" href="cmake/index.html#command:pm_action" title="pm_action"><code class="xref cmake cmake-command docutils literal"><span class="pre">pm_action()</span></code></a> at the end of the file.</p> <p>Before coding your action, lets set up unit tests for it. Usually when adding features, you will immediately try them, check that everything works as intended, etc.. ProMod3 helps you automatising those tests so its rather easy to check later, if code changes break anything. For actions, we are using -<a class="reference internal" href="actions/index_dev.html#module-test_actions" title="test_actions: Testing Actions"><code class="xref py py-class docutils literal notranslate"><span class="pre">test_actions.ActionTestCase</span></code></a> instead of -<a class="reference external" href="https://docs.python.org/3.6/library/unittest.html#unittest.TestCase" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.TestCase</span></code></a>. Since testing has a lot in common for different +<a class="reference internal" href="actions/index_dev.html#module-test_actions" title="test_actions: Testing Actions"><code class="xref py py-class docutils literal"><span class="pre">test_actions.ActionTestCase</span></code></a> instead of +<a class="reference external" href="https://docs.python.org/3.6/library/unittest.html#unittest.TestCase" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">unittest.TestCase</span></code></a>. Since testing has a lot in common for different actions, we decided to put up a little wrapper around this subject. See the -documentation of <a class="reference internal" href="actions/index_dev.html#module-test_actions" title="test_actions: Testing Actions"><code class="xref py py-class docutils literal notranslate"><span class="pre">ActionTestCase</span></code></a> for more information.</p> +documentation of <a class="reference internal" href="actions/index_dev.html#module-test_actions" title="test_actions: Testing Actions"><code class="xref py py-class docutils literal"><span class="pre">ActionTestCase</span></code></a> for more information.</p> <p>Now its time to fill your action with code. Instead of reading a lot more of -explanations, it should be easy to go by examples from the <code class="file docutils literal notranslate"><span class="pre">actions</span></code> +explanations, it should be easy to go by examples from the <code class="file docutils literal"><span class="pre">actions</span></code> directory. There are only two really important points:</p> <ul> -<li><p class="first">No shebang line (<code class="docutils literal notranslate"><span class="pre">#!</span> <span class="pre">/usr/bin/python</span></code>) in your action! Also no -<code class="docutils literal notranslate"><span class="pre">#!</span> <span class="pre">/usr/bin/env</span> <span class="pre">python</span></code> or anything like this. This may lead to funny side +<li><p class="first">No shebang line (<code class="docutils literal"><span class="pre">#!</span> <span class="pre">/usr/bin/python</span></code>) in your action! Also no +<code class="docutils literal"><span class="pre">#!</span> <span class="pre">/usr/bin/env</span> <span class="pre">python</span></code> or anything like this. This may lead to funny side effects, like calling a Python interpreter from outside a virtual environment or a different version OST. Basically it may mess up the -environment your action is running in. Actions are called by <code class="file docutils literal notranslate"><span class="pre">pm</span></code>, -that’s enough to get everything just right.</p> +environment your action is running in. Actions are called by <code class="file docutils literal"><span class="pre">pm</span></code>, +that’s enough to get everything just right.</p> </li> -<li><p class="first">The action of your action happens in the <a class="reference external" href="https://docs.python.org/3.6/library/__main__.html"><code class="xref py py-attr docutils literal notranslate"><span class="pre">__main__</span></code></a> branch of the script. +<li><p class="first">The action of your action happens in the <a class="reference external" href="https://docs.python.org/3.6/library/__main__.html"><code class="xref py py-attr docutils literal"><span class="pre">__main__</span></code></a> branch of the script. Your action will have own function definitions, variables and all the bells -and whistles. Hiding behind <a class="reference external" href="https://docs.python.org/3.6/library/__main__.html"><code class="xref py py-attr docutils literal notranslate"><span class="pre">__main__</span></code></a> keeps everything separated and makes +and whistles. Hiding behind <a class="reference external" href="https://docs.python.org/3.6/library/__main__.html"><code class="xref py py-attr docutils literal"><span class="pre">__main__</span></code></a> keeps everything separated and makes things easier when it gets to debugging. So just after</p> -<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">alot</span> +<div class="highlight-python"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">alot</span> <span class="k">def</span> <span class="nf">functions_specific_to_your_action</span><span class="p">(</span><span class="o">...</span><span class="p">):</span> @@ -398,11 +411,11 @@ things easier when it gets to debugging. So just after</p> </div> <div class="section" id="how-to-write-your-own-scorer"> <h2>How To Write Your Own Scorer<a class="headerlink" href="#how-to-write-your-own-scorer" title="Permalink to this headline">¶</a></h2> -<p>The <a class="reference internal" href="scoring/index.html#module-promod3.scoring" title="promod3.scoring: Loop Scoring"><code class="xref py py-mod docutils literal notranslate"><span class="pre">scoring</span></code></a> module contains several classes to make it easy to +<p>The <a class="reference internal" href="scoring/index.html#module-promod3.scoring" title="promod3.scoring: Loop Scoring"><code class="xref py py-mod docutils literal"><span class="pre">scoring</span></code></a> module contains several classes to make it easy to add new scorers. As usual, you can use existing bits and pieces as examples and try to be consistent with it. Here, we quickly give an overview of the separation of concerns:</p> <ul> -<li><p class="first"><a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScorer</span></code></a>: +<li><p class="first"><a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneScorer</span></code></a>: Defines the scorer with all its parameters and energies and the functionality to compute scores. Scorers are setup by the user (or loaded from disk) if necessary.</p> @@ -410,16 +423,16 @@ necessary.</p> pointers to env. data kept and updated by the score env.. Also, they may be linked to a score env. listener to handle specially organized data.</p> </li> -<li><p class="first"><a class="reference internal" href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a>: +<li><p class="first"><a class="reference internal" href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a>: Handles all model-specific data used by the scorers. The user sets up the environment and updates it whenever something changes.</p> -<p>Residue-specific data is kept in arrays of fixed size (see <code class="xref py py-class docutils literal notranslate"><span class="pre">IdxHandler</span></code> +<p>Residue-specific data is kept in arrays of fixed size (see <code class="xref py py-class docutils literal"><span class="pre">IdxHandler</span></code> for how the indexing is done). An array of bool-like integers can be accessed -with “GetEnvSetData()” and used to determine whether env. data is available +with “GetEnvSetData()” and used to determine whether env. data is available for a certain residue. The list of sequences handled by the env. is fixed as otherwise pointers into the data-storage would be invalidated.</p> </li> -<li><p class="first"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnvListener</span></code>: +<li><p class="first"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnvListener</span></code>: Allows to have score-specific data to be extracted from the model-specific data available in the score env. class. It is commonly used to define spatially organized structures to quickly access other atoms within a given @@ -427,34 +440,34 @@ radius.</p> <p>All score env. listener are attached to a master score env. and they get updated when the score env. gets updated. Multiple scorers can use the same listener. Listeners are not accessible by anyone outside of the scorers and -the score env. object responsible for it. Since the user doesn’t see them, +the score env. object responsible for it. Since the user doesn’t see them, there is no Python API for them.</p> </li> -<li><p class="first"><code class="xref py py-class docutils literal notranslate"><span class="pre">IdxHandler</span></code>: +<li><p class="first"><code class="xref py py-class docutils literal"><span class="pre">IdxHandler</span></code>: This takes care of translating chain indices (range [0, GetNumChains()]) and residue numbers (range [1, GetChainSize(chain_idx)]) into the indexing used internally by the score env. (range [0, GetNumResidues()]). The score env. takes care of this object and makes it accessible for scorers.</p> </li> </ul> -<p>As an example, let’s look at the <a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer" title="promod3.scoring.CBPackingScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">CBPackingScorer</span></code></a>:</p> +<p>As an example, let’s look at the <a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer" title="promod3.scoring.CBPackingScorer"><code class="xref py py-class docutils literal"><span class="pre">CBPackingScorer</span></code></a>:</p> <ul class="simple"> <li>it contains score-specific parameters and energies which can be either set manually or loaded from disk</li> -<li>it is linked to a score env. listener of type <code class="xref py py-class docutils literal notranslate"><span class="pre">CBetaEnvListener</span></code>, -which provides a <code class="xref py py-meth docutils literal notranslate"><span class="pre">FindWithin()</span></code> function to quickly access neighboring +<li>it is linked to a score env. listener of type <code class="xref py py-class docutils literal"><span class="pre">CBetaEnvListener</span></code>, +which provides a <code class="xref py py-meth docutils literal"><span class="pre">FindWithin()</span></code> function to quickly access neighboring CB atoms (note that the same listener is also used by the -<a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer" title="promod3.scoring.CBetaScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">CBetaScorer</span></code></a>)</li> -<li>a pointer to the <code class="xref py py-class docutils literal notranslate"><span class="pre">IdxHandler</span></code> object of the score env. is extracted +<a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer" title="promod3.scoring.CBetaScorer"><code class="xref py py-class docutils literal"><span class="pre">CBetaScorer</span></code></a>)</li> +<li>a pointer to the <code class="xref py py-class docutils literal"><span class="pre">IdxHandler</span></code> object of the score env. is extracted when the environment is attached and is used to get sequence-specific data when calculating the score</li> </ul> -<p>As a second example, look at the <a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.PairwiseScorer" title="promod3.scoring.PairwiseScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">PairwiseScorer</span></code></a>:</p> +<p>As a second example, look at the <a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.PairwiseScorer" title="promod3.scoring.PairwiseScorer"><code class="xref py py-class docutils literal"><span class="pre">PairwiseScorer</span></code></a>:</p> <ul class="simple"> <li>it does not require any score-specific setup</li> <li>it is linked to residue-specific CA/CB positions and the pairwise functions defined in the score env.</li> -<li>“GetEnvSetData()” of the score env. is used to determine if env. data is +<li>“GetEnvSetData()” of the score env. is used to determine if env. data is available for a given residue</li> </ul> </div> @@ -462,24 +475,24 @@ available for a given residue</li> <h2>Quick testing of ProMod3 features<a class="headerlink" href="#quick-testing-of-project-features" title="Permalink to this headline">¶</a></h2> <p>High-level features of ProMod3, can be tested directly in an interactive Python shell. First, you need to tell Python, where to find the modules by -defining the <code class="docutils literal notranslate"><span class="pre">PYTHONPATH</span></code> env. variable in your shell to include the -<code class="file docutils literal notranslate"><span class="pre">lib64/python3.6/site-packages</span></code> folders of the <code class="file docutils literal notranslate"><span class="pre">stage</span></code> folders of +defining the <code class="docutils literal"><span class="pre">PYTHONPATH</span></code> env. variable in your shell to include the +<code class="file docutils literal"><span class="pre">lib64/python3.6/site-packages</span></code> folders of the <code class="file docutils literal"><span class="pre">stage</span></code> folders of ProMod3 and OST. For convenience, you can place the export-command in -your <code class="file docutils literal notranslate"><span class="pre">.bashrc</span></code> (or so). Then, you can import modules from <code class="docutils literal notranslate"><span class="pre">promod3</span></code> -and <code class="docutils literal notranslate"><span class="pre">ost</span></code> as in the example codes shown in this documentation.</p> -<p>To test low-level C++ features, you can copy the <code class="file docutils literal notranslate"><span class="pre">extras/test_code</span></code> +your <code class="file docutils literal"><span class="pre">.bashrc</span></code> (or so). Then, you can import modules from <code class="docutils literal"><span class="pre">promod3</span></code> +and <code class="docutils literal"><span class="pre">ost</span></code> as in the example codes shown in this documentation.</p> +<p>To test low-level C++ features, you can copy the <code class="file docutils literal"><span class="pre">extras/test_code</span></code> folder and adapt it for your purposes. First, you will have to fix the paths -to ProMod3 and OST in the <code class="file docutils literal notranslate"><span class="pre">Makefile</span></code> by changing the following +to ProMod3 and OST in the <code class="file docutils literal"><span class="pre">Makefile</span></code> by changing the following lines:</p> -<div class="highlight-make notranslate"><div class="highlight"><pre><span></span><span class="c"># path to OST and ProMod3 stage</span> +<div class="highlight-make"><div class="highlight"><pre><span></span><span class="c"># path to OST and ProMod3 stage</span> <span class="nv">OST_ROOT</span> <span class="o">=</span> <DEFINEME>/ost/build/stage <span class="nv">PROMOD3_ROOT</span> <span class="o">=</span> <DEFINEME>/ProMod3/build/stage </pre></div> </div> <p>Afterwards, you should be able to compile and run small sample codes that use -ProMod3 and OST as in the <code class="file docutils literal notranslate"><span class="pre">test.cc</span></code> example. You can compile your -code by executing <code class="docutils literal notranslate"><span class="pre">make</span></code> and run it with <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">run</span></code>. Also, remember to set -the <code class="docutils literal notranslate"><span class="pre">PROMOD3_SHARED_DATA_PATH</span></code> variable if you moved the stage folder.</p> +ProMod3 and OST as in the <code class="file docutils literal"><span class="pre">test.cc</span></code> example. You can compile your +code by executing <code class="docutils literal"><span class="pre">make</span></code> and run it with <code class="docutils literal"><span class="pre">make</span> <span class="pre">run</span></code>. Also, remember to set +the <code class="docutils literal"><span class="pre">PROMOD3_SHARED_DATA_PATH</span></code> variable if you moved the stage folder.</p> </div> <div class="section" id="unit-tests"> <h2>Unit Tests<a class="headerlink" href="#unit-tests" title="Permalink to this headline">¶</a></h2> @@ -488,28 +501,28 @@ tutorial on unit testing here. Again, have a look at how other modules treat this topic and then there is quite a lot of educated material to be found on the Internet. Nevertheless, here is a short list of most important advices:</p> <ul class="simple"> -<li>Tests go into dedicated scripts/ source files in the <code class="file docutils literal notranslate"><span class="pre">tests</span></code> directory</li> +<li>Tests go into dedicated scripts/ source files in the <code class="file docutils literal"><span class="pre">tests</span></code> directory</li> <li>No external data dependencies, if tests need data, they find it in -<code class="file docutils literal notranslate"><span class="pre">tests/data</span></code></li> -<li>If ‘exotic’ Python modules are used, consider making the test aware of the +<code class="file docutils literal"><span class="pre">tests/data</span></code></li> +<li>If ‘exotic’ Python modules are used, consider making the test aware of the possibility that the module is not available</li> <li>Tests do not fail on purpose</li> -<li>No failing tests, that are considered ‘this does not affect anything’</li> +<li>No failing tests, that are considered ‘this does not affect anything’</li> </ul> -<p>To run the whole test suite, <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">check</span></code> is enough. This will also trigger -the <code class="docutils literal notranslate"><span class="pre">doctest</span></code> and <code class="docutils literal notranslate"><span class="pre">linkcheck</span></code> targets. Alternatively you can run:</p> +<p>To run the whole test suite, <code class="docutils literal"><span class="pre">make</span> <span class="pre">check</span></code> is enough. This will also trigger +the <code class="docutils literal"><span class="pre">doctest</span></code> and <code class="docutils literal"><span class="pre">linkcheck</span></code> targets. Alternatively you can run:</p> <ul class="simple"> -<li><code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">codetest</span></code> to run only unit tests from all modules in ProMod3. -Note that <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">check</span></code> does nothing more but invoking <code class="docutils literal notranslate"><span class="pre">doctest</span></code>, -<code class="docutils literal notranslate"><span class="pre">linkcheck</span></code> and <code class="docutils literal notranslate"><span class="pre">codetest</span></code> as dependencies.</li> -<li><code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">check_xml</span></code> to run tests without stopping after each failure. +<li><code class="docutils literal"><span class="pre">make</span> <span class="pre">codetest</span></code> to run only unit tests from all modules in ProMod3. +Note that <code class="docutils literal"><span class="pre">make</span> <span class="pre">check</span></code> does nothing more but invoking <code class="docutils literal"><span class="pre">doctest</span></code>, +<code class="docutils literal"><span class="pre">linkcheck</span></code> and <code class="docutils literal"><span class="pre">codetest</span></code> as dependencies.</li> +<li><code class="docutils literal"><span class="pre">make</span> <span class="pre">check_xml</span></code> to run tests without stopping after each failure. Failures are shortly reported to the command line and the result of each test -is written in ‘PYTEST-<TestCaseName>.xml’ files in the ‘tests’ subfolders of -your ‘build’ folder.</li> +is written in ‘PYTEST-<TestCaseName>.xml’ files in the ‘tests’ subfolders of +your ‘build’ folder.</li> <li>Run single tests: -assuming you have <code class="file docutils literal notranslate"><span class="pre">your_module/tests/test_awesome_feature.py</span></code>, CMake -will provide you with a target <code class="docutils literal notranslate"><span class="pre">test_awesome_feature.py_run</span></code>. If your module -has C++ tests, those will be available by <code class="docutils literal notranslate"><span class="pre">test_suite_your_module_run</span></code>.</li> +assuming you have <code class="file docutils literal"><span class="pre">your_module/tests/test_awesome_feature.py</span></code>, CMake +will provide you with a target <code class="docutils literal"><span class="pre">test_awesome_feature.py_run</span></code>. If your module +has C++ tests, those will be available by <code class="docutils literal"><span class="pre">test_suite_your_module_run</span></code>.</li> </ul> </div> <div class="section" id="writing-documentation"> @@ -521,33 +534,33 @@ or man pages.</p> gives an idea of concepts and pulls in interfaces from source. Copying files to the build directory, issuing the Sphinx call and everything else that is needed to create the actual documentation is done by CMake and its makefiles. -Hence, the <code class="file docutils literal notranslate"><span class="pre">CMakeLists.txt</span></code> of the <code class="file docutils literal notranslate"><span class="pre">doc</span></code> directory of a module is +Hence, the <code class="file docutils literal"><span class="pre">CMakeLists.txt</span></code> of the <code class="file docutils literal"><span class="pre">doc</span></code> directory of a module is crucial. For documentation which does not relate to a particular module, the -repository comes with a top-level <code class="file docutils literal notranslate"><span class="pre">doc</span></code> directory.</p> +repository comes with a top-level <code class="file docutils literal"><span class="pre">doc</span></code> directory.</p> <p>If you write new functionality for ProMod3, or fix bugs, feel free to extend -the <code class="file docutils literal notranslate"><span class="pre">CHANGELOG</span></code> file. It will be automatically pulled into the +the <code class="file docutils literal"><span class="pre">CHANGELOG</span></code> file. It will be automatically pulled into the documentation.</p> <p>It is highly recommended to add code examples with your documentation. For that purpose, you should write a fully runnable script which is to be placed in the -<code class="file docutils literal notranslate"><span class="pre">doc/tests/scripts</span></code> directory. The script is to be runnable from within -the <code class="file docutils literal notranslate"><span class="pre">doc/tests</span></code> directory as <code class="docutils literal notranslate"><span class="pre">pm</span> <span class="pre">SCRIPTPATH</span></code> and may use data stored in -the <code class="file docutils literal notranslate"><span class="pre">doc/tests/data</span></code> directory. The script and any data needed by it, must -then be referenced in the <code class="file docutils literal notranslate"><span class="pre">doc/tests/CMakeLists.txt</span></code> file. Afterwards, +<code class="file docutils literal"><span class="pre">doc/tests/scripts</span></code> directory. The script is to be runnable from within +the <code class="file docutils literal"><span class="pre">doc/tests</span></code> directory as <code class="docutils literal"><span class="pre">pm</span> <span class="pre">SCRIPTPATH</span></code> and may use data stored in +the <code class="file docutils literal"><span class="pre">doc/tests/data</span></code> directory. The script and any data needed by it, must +then be referenced in the <code class="file docutils literal"><span class="pre">doc/tests/CMakeLists.txt</span></code> file. Afterwards, they can be included in the documentation using the literalinclude directive. -For instance, if you add a new example code <code class="file docutils literal notranslate"><span class="pre">loop_main.py</span></code>, +For instance, if you add a new example code <code class="file docutils literal"><span class="pre">loop_main.py</span></code>, you would add it in your module documentation as follows:</p> -<div class="highlight-rest notranslate"><div class="highlight"><pre><span></span><span class="p">..</span> <span class="ow">literalinclude</span><span class="p">::</span> ../../../tests/doc/scripts/loop_main.py +<div class="highlight-rest"><div class="highlight"><pre><span></span><span class="p">..</span> <span class="ow">literalinclude</span><span class="p">::</span> ../../../tests/doc/scripts/loop_main.py </pre></div> </div> <p>If your example does not relate to a specific module and the documentation is -in the top-level <code class="file docutils literal notranslate"><span class="pre">doc</span></code> directory, you need to drop one of the <code class="docutils literal notranslate"><span class="pre">..</span></code> as +in the top-level <code class="file docutils literal"><span class="pre">doc</span></code> directory, you need to drop one of the <code class="docutils literal"><span class="pre">..</span></code> as follows:</p> -<div class="highlight-rest notranslate"><div class="highlight"><pre><span></span><span class="p">..</span> <span class="ow">literalinclude</span><span class="p">::</span> ../../tests/doc/scripts/hello_world.py +<div class="highlight-rest"><div class="highlight"><pre><span></span><span class="p">..</span> <span class="ow">literalinclude</span><span class="p">::</span> ../../tests/doc/scripts/hello_world.py </pre></div> </div> <p>To ensure that the code examples keep on working, a unit test has to be defined -in <code class="file docutils literal notranslate"><span class="pre">doc/tests/test_doctests.py</span></code>. Each example code is run by a dedicated +in <code class="file docutils literal"><span class="pre">doc/tests/test_doctests.py</span></code>. Each example code is run by a dedicated test function. Usually, the codes are run and the return code is checked. Command-line output or resulting files can also be checked (see existing test codes for examples). A few more guidelines for example codes:</p> @@ -557,11 +570,11 @@ codes for examples). A few more guidelines for example codes:</p> the external dependencies are not available, output a warning and skip the test.</li> </ul> -<p>A copy of the generated html documentation is kept in <code class="file docutils literal notranslate"><span class="pre">doc/html</span></code> so that +<p>A copy of the generated html documentation is kept in <code class="file docutils literal"><span class="pre">doc/html</span></code> so that there is no need to compile ProMod3 to read it. Our policy is to keep that -folder in-sync with the latest documentation at least on the <code class="docutils literal notranslate"><span class="pre">master</span></code> branch +folder in-sync with the latest documentation at least on the <code class="docutils literal"><span class="pre">master</span></code> branch (i.e. for every release). You can use the following commands to do the update:</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> <span class="nb">cd</span> <PROMOD3_PATH>/build +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> <span class="nb">cd</span> <PROMOD3_PATH>/build <span class="gp">$</span> make html <span class="gp">$</span> rsync -iv -az --exclude<span class="o">=</span><span class="s2">".*"</span> --delete <span class="se">\</span> <span class="s2">"stage/share/promod3/html/"</span> <span class="s2">"../doc/html"</span> @@ -583,13 +596,13 @@ module, for example</p> <a class="reference external" href="https://docs.python.org/3.6/license.html">license</a> and licenses is what you have to watch out for with this subject. While the Python license is safe to be used, in the past several projects went restrictive -because of exclusive terms of use. Those issues often came from ‘academic -licenses’, allowing use if free of charge but for commercial entities. To +because of exclusive terms of use. Those issues often came from ‘academic +licenses’, allowing use if free of charge but for commercial entities. To prevent this is one reason for the existence of ProMod3. This means, before utilising external code, third party libraries, basically anything not created within this project (including pictures, test data, etc.), check licensing. What cannot be used at all are items without any license. Those things are not -‘free’ but more in a legally uncertain state. Also forbidden are licenses which +‘free’ but more in a legally uncertain state. Also forbidden are licenses which exclude commercial entities.</p> <p>There are a lot of rather permissive licenses out there, very often asking for acknowledgements. We definitively support this. Either go by example phrases @@ -606,57 +619,48 @@ contributions to web pages using ProMod3.</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul> -<li class="toctree-l1"><a class="reference internal" href="users.html">Users</a></li> + <h3><a href="index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Contributing</a><ul> +<li><a class="reference internal" href="#how-to-share-your-own-script">How To Share Your Own Script</a></li> +<li><a class="reference internal" href="#how-to-start-your-own-module">How To Start Your Own Module</a></li> +<li><a class="reference internal" href="#how-to-start-your-own-action">How To Start Your Own Action</a></li> +<li><a class="reference internal" href="#how-to-write-your-own-scorer">How To Write Your Own Scorer</a></li> +<li><a class="reference internal" href="#quick-testing-of-project-features">Quick testing of ProMod3 features</a></li> +<li><a class="reference internal" href="#unit-tests">Unit Tests</a></li> +<li><a class="reference internal" href="#writing-documentation">Writing Documentation</a></li> +<li><a class="reference internal" href="#third-party-contributions-license-issues">Third Party Contributions (License Issues)</a></li> </ul> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li> +</li> </ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="index.html">Documentation overview</a><ul> <li><a href="developers.html">Documentation For Developers</a><ul> <li>Previous: <a href="dev_setup.html" title="previous chapter">ProMod3 Setup</a></li> - <li>Next: <a href="actions/index_dev.html" title="next chapter"><code class="docutils literal notranslate"><span class="pre">test_actions</span></code> - Testing Actions</a></li> + <li>Next: <a href="actions/index_dev.html" title="next chapter"><code class="docutils literal"><span class="pre">test_actions</span></code> - Testing Actions</a></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="_sources/contributing.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -665,11 +669,11 @@ contributions to web pages using ProMod3.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="_sources/contributing.rst.txt" + <a href="_sources/contributing.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/core/geometry.html b/doc/html/core/geometry.html index 549a54395d65cd0183ac781d6fa05707a81d0722..e57421b6eeb86a7742ed20448ec9a4f9c424d902 100644 --- a/doc/html/core/geometry.html +++ b/doc/html/core/geometry.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Geometry functions — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="core - ProMod3 Core Functionality" href="index.html" /> <link rel="next" title="Runtime profiling" href="runtime_profiling.html" /> <link rel="prev" title="helper - Shared Functionality For the Everything" href="helper.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -46,16 +59,16 @@ <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>rule</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Gromacs rule</li> -<li><strong>number</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Desired number of positions (max. 3)</li> -<li><strong>anchors</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Anchor positions (max. 4)</li> +<li><strong>rule</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Gromacs rule</li> +<li><strong>number</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Desired number of positions (max. 3)</li> +<li><strong>anchors</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Anchor positions (max. 4)</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Constructed <em>number</em> positions.</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 external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a></p> </td> </tr> </tbody> @@ -71,16 +84,16 @@ <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>c_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Position of C atom</li> -<li><strong>n_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Position of nitrogen atom</li> -<li><strong>ca_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Position of C-alpha atom</li> +<li><strong>c_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Position of C atom</li> +<li><strong>n_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Position of nitrogen atom</li> +<li><strong>ca_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Position of C-alpha atom</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Positions of O and OXT atoms.</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 external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a></p> </td> </tr> </tbody> @@ -90,26 +103,26 @@ <dl class="function"> <dt id="promod3.core.ConstructAtomPos"> <code class="descclassname">promod3.core.</code><code class="descname">ConstructAtomPos</code><span class="sig-paren">(</span><em>A</em>, <em>B</em>, <em>C</em>, <em>bond_length</em>, <em>angle</em>, <em>dihedral</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.core.ConstructAtomPos" title="Permalink to this definition">¶</a></dt> -<dd><p>Constructs position of atom “D” based on bond length (C-D), angle (B-C-D) and +<dd><p>Constructs position of atom “D” based on bond length (C-D), angle (B-C-D) and dihedral (A-B-C-D).</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>A</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Position of atom A</li> -<li><strong>B</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Position of atom B</li> -<li><strong>C</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Position of atom C</li> -<li><strong>bond_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Bond length (C-D)</li> -<li><strong>angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Angle (B-C-D)</li> -<li><strong>dihedral</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Dihedral (A-B-C-D)</li> +<li><strong>A</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Position of atom A</li> +<li><strong>B</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Position of atom B</li> +<li><strong>C</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Position of atom C</li> +<li><strong>bond_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Bond length (C-D)</li> +<li><strong>angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Angle (B-C-D)</li> +<li><strong>dihedral</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Dihedral (A-B-C-D)</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Position of atom D</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 external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a></p> </td> </tr> </tbody> @@ -126,16 +139,16 @@ C-alpha and C atoms.</p> <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="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Position of nitrogen atom</li> -<li><strong>ca_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Position of C-alpha atom</li> -<li><strong>c_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Position of C atom</li> +<li><strong>n_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Position of nitrogen atom</li> +<li><strong>ca_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Position of C-alpha atom</li> +<li><strong>c_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Position of C atom</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Position of C-beta atom</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 external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a></p> </td> </tr> </tbody> @@ -152,16 +165,16 @@ around a line defined by <cite>axis</cite> and <cite>anchor</cite>.</p> <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>axis</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Axis of rotation</li> -<li><strong>anchor</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Anchor for rotation</li> -<li><strong>angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Angle (in radians in range [-pi,pi]) of rotation</li> +<li><strong>axis</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Axis of rotation</li> +<li><strong>anchor</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Anchor for rotation</li> +<li><strong>angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Angle (in radians in range [-pi,pi]) of rotation</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Transformation matrix</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 external" href="https://www.openstructure.org/docs/1.11/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Mat4</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Mat4</span></code></a></p> </td> </tr> </tbody> @@ -178,15 +191,15 @@ going through the origin.</p> <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>axis</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Axis of rotation</li> -<li><strong>angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Angle (in radians in range [-pi,pi]) of rotation</li> +<li><strong>axis</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Axis of rotation</li> +<li><strong>angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Angle (in radians in range [-pi,pi]) of rotation</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Rotation matrix</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 external" href="https://www.openstructure.org/docs/1.11/geom/mat/#ost.geom.Mat3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Mat3</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/mat/#ost.geom.Mat3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Mat3</span></code></a></p> </td> </tr> </tbody> @@ -203,9 +216,9 @@ going through the origin.</p> <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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue handle from which to extract N, CA and C coordinates.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue handle from which to extract N, CA and C coordinates.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>res</em> does not contain N, CA and C +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>res</em> does not contain N, CA and C atoms.</td> </tr> </tbody> @@ -222,7 +235,7 @@ atoms.</td> <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://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a></td> </tr> </tbody> </table> @@ -242,8 +255,8 @@ angles and one distance and is used in the fragment database for fast lookups.</ <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 internal" href="#promod3.core.StemCoords" title="promod3.core.StemCoords"><code class="xref py py-class docutils literal notranslate"><span class="pre">StemCoords</span></code></a>) – Coordinates of stem A.</li> -<li><strong>c_stem</strong> (<a class="reference internal" href="#promod3.core.StemCoords" title="promod3.core.StemCoords"><code class="xref py py-class docutils literal notranslate"><span class="pre">StemCoords</span></code></a>) – Coordinates of stem B.</li> +<li><strong>n_stem</strong> (<a class="reference internal" href="#promod3.core.StemCoords" title="promod3.core.StemCoords"><code class="xref py py-class docutils literal"><span class="pre">StemCoords</span></code></a>) – Coordinates of stem A.</li> +<li><strong>c_stem</strong> (<a class="reference internal" href="#promod3.core.StemCoords" title="promod3.core.StemCoords"><code class="xref py py-class docutils literal"><span class="pre">StemCoords</span></code></a>) – Coordinates of stem B.</li> </ul> </td> </tr> @@ -257,7 +270,7 @@ angles and one distance and is used in the fragment database for fast lookups.</ <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -273,7 +286,7 @@ angles and one distance and is used in the fragment database for fast lookups.</ <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -289,7 +302,7 @@ angles and one distance and is used in the fragment database for fast lookups.</ <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -305,73 +318,36 @@ angles and one distance and is used in the fragment database for fast lookups.</ </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a><ul> - <li>Previous: <a href="helper.html" title="previous chapter"><code class="docutils literal notranslate"><span class="pre">helper</span></code> - Shared Functionality For the Everything</a></li> + <li><a href="index.html"><code class="docutils literal"><span class="pre">core</span></code> - ProMod3 Core Functionality</a><ul> + <li>Previous: <a href="helper.html" title="previous chapter"><code class="docutils literal"><span class="pre">helper</span></code> - Shared Functionality For the Everything</a></li> <li>Next: <a href="runtime_profiling.html" title="next chapter">Runtime profiling</a></li> </ul></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/core/geometry.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -380,11 +356,11 @@ angles and one distance and is used in the fragment database for fast lookups.</ ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/core/geometry.rst.txt" + <a href="../_sources/core/geometry.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/core/graph_minimizer.html b/doc/html/core/graph_minimizer.html index 534831a463a99b982f73147acb9448345ed2b028..adf8926ed535afe8424e99625273891a13433d23 100644 --- a/doc/html/core/graph_minimizer.html +++ b/doc/html/core/graph_minimizer.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Graph Minimizer — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="core - ProMod3 Core Functionality" href="index.html" /> <link rel="next" title="SetCompoundsChemlib()" href="setcompoundschemlib.html" /> <link rel="prev" title="Runtime profiling" href="runtime_profiling.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -37,11 +50,11 @@ <div class="section" id="graph-minimizer"> <h1>Graph Minimizer<a class="headerlink" href="#graph-minimizer" title="Permalink to this headline">¶</a></h1> <p>The graph minimizer solves an energy minimization problem where we have n -nodes <span class="math notranslate nohighlight">\(N_i\)</span>, with each node having several possible solutions. -Every solution has a self energy <span class="math notranslate nohighlight">\(E_{self}\)</span> and pairwise energies in between nodes +nodes <span class="math">\(N_i\)</span>, with each node having several possible solutions. +Every solution has a self energy <span class="math">\(E_{self}\)</span> and pairwise energies in between nodes are possible. The goal is to select exactly one solution per node to obtain -a set <span class="math notranslate nohighlight">\(X=[x_1, x_2, ..., x_n]\)</span> that minimizes:</p> -<div class="math notranslate nohighlight"> +a set <span class="math">\(X=[x_1, x_2, ..., x_n]\)</span> that minimizes:</p> +<div class="math"> \[F(X)=\displaystyle\sum_iE_{self}(N_i[x_i]) +\displaystyle \sum_i \displaystyle \sum_{j>i}E_{pair}(N_i[x_i], N_j[x_j])\]</div> <dl class="class"> <dt id="promod3.core.GraphMinimizer"> @@ -54,12 +67,12 @@ a set <span class="math notranslate nohighlight">\(X=[x_1, x_2, ..., x_n]\)</spa <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>self_energies</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Directly controls the number of possible solutions in that +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>self_energies</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Directly controls the number of possible solutions in that node and assigns the corresponding self energies</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The idx of the added node</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -74,9 +87,9 @@ node and assigns the corresponding self energies</td> <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>node_idx_one</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of the first node</li> -<li><strong>node_idx_two</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of the second node</li> -<li><strong>pairwise_energies</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The pairwise energies that contribute to the +<li><strong>node_idx_one</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of the first node</li> +<li><strong>node_idx_two</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of the second node</li> +<li><strong>pairwise_energies</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The pairwise energies that contribute to the overall energy function. There must be a list for every possible solution in node one. All of those lists must have exactly the length of possible @@ -87,10 +100,10 @@ solutions in node two.</li> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The idx of the added edge</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>node_idx_one</em> or <em>node_idx_two</em> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>node_idx_one</em> or <em>node_idx_two</em> specify non existent nodes or when <em>pairwise_energies</em> is inconsistent with the number of solutions in the specified nodes.</p> </td> @@ -110,16 +123,16 @@ deactivates certain solutions. The goldstein criterion is described in <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>node_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Node to apply dead end elimination</li> -<li><strong>e_cut</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – If set to +<li><strong>node_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Node to apply dead end elimination</li> +<li><strong>e_cut</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – If set to 0.0, the default goldstein criterion is applied => -a solution is removed if it’s dominated by all other +a solution is removed if it’s dominated by all other solutions in the same node. If you increase this value, a solution must be dominated by at least this <strong>e_cut</strong>.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a> whether any solution has been deactivated.</p> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a> whether any solution has been deactivated.</p> </td> </tr> </tbody> @@ -137,12 +150,12 @@ deactivates it. The exact decomposition procedure is described in <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>edge_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Edge to decompose.</li> -<li><strong>epsilon</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The energy threshold to perform edge decomposition.</li> +<li><strong>edge_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Edge to decompose.</li> +<li><strong>epsilon</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The 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"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a> whether the edge has been decomposed and +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a> whether the edge has been decomposed and deactivated</p> </td> </tr> @@ -161,9 +174,9 @@ iterative manner until no changes can be observed anymore given <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> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The energy threshold to perform edge decomposition.</li> -<li><strong>e_cut</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Parameter to control dead end elimination.</li> -<li><strong>consider_all_nodes</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Flag, wether the dead end elimination should be +<li><strong>epsilon</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The energy threshold to perform edge decomposition.</li> +<li><strong>e_cut</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Parameter to control dead end elimination.</li> +<li><strong>consider_all_nodes</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – 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 @@ -201,10 +214,10 @@ Algorithm further descsribed in <a class="reference internal" href="../reference <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Max number of possible permutations, that have to +<li><strong>max_complexity</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The initial energy threshold to perform edge +<li><strong>initial_epsilon</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The initial energy threshold to perform edge decomposition.</li> </ul> </td> @@ -226,10 +239,10 @@ The second element is the according energy value.</p> minimal energy solution, the function produces a maximum of <strong>max_n</strong> solutions sorted by energy. It aborts as soon as it sees the first solution with an energy difference of <strong>e_thresh</strong> to the optimal solution or hits -<strong>max_n</strong>. If you’re only interested in the optimal solution you should use -the TreeSolve function since it’s much faster and uses less memory. +<strong>max_n</strong>. If you’re only interested in the optimal solution you should use +the TreeSolve function since it’s much faster and uses less memory. There is no automatic pruning of the graph using DEE or edge decomposition, -so you have to do it by yourself, otherwise you’ll have a looooooong +so you have to do it by yourself, otherwise you’ll have a looooooong runtime or even hit the <strong>max_visited_nodes</strong> parameter that caps the memory usage. To have a valid solution you have to take care that you set the <strong>e_cut</strong> @@ -240,10 +253,10 @@ Algorithm is described in <a class="reference internal" href="../references.html <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>e_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Maximal energy difference of a solution to the +<li><strong>e_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Maximal energy difference of a solution to the optimal solution to be considered.</li> -<li><strong>max_n</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The maximum number of solutions that will be generated.</li> -<li><strong>max_visited_nodes</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Caps the memory usage of the algorithm. Besides +<li><strong>max_n</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The maximum number of solutions that will be generated.</li> +<li><strong>max_visited_nodes</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Caps the memory usage of the algorithm. Besides The memory used for pairwise energies and self energies, the algorithm uses about <strong>max_visited_nodes</strong> * 20 bytes.</li> @@ -270,7 +283,7 @@ of that random selection relative to the current configuration is estimated. If the difference in energy is negative, the step is accepted. If not, the step is accepted with a probability given by the temperature dependent Metropolis criterion -<span class="math notranslate nohighlight">\(exp^{\left(\frac{-e_{diff}}{T}\right)}\)</span>. +<span class="math">\(exp^{\left(\frac{-e_{diff}}{T}\right)}\)</span>. The temperature for every run starts with <strong>start_temperature</strong> and is multiplied every <strong>change_frequency</strong> steps with <strong>cooling_factor</strong> to achieve a simulated annealing effect. @@ -281,14 +294,14 @@ you have to do that by yourself.</p> <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</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of Monte Carlo runs</li> -<li><strong>mc_steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of Monte Carlo steps per run</li> -<li><strong>start_temperature</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Start temperature for the temperature dependent +<li><strong>n</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of Monte Carlo runs</li> +<li><strong>mc_steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of Monte Carlo steps per run</li> +<li><strong>start_temperature</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Start temperature for the temperature dependent Metropolis criterion</li> -<li><strong>change_frequency</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of steps the temperature stays the same</li> -<li><strong>cooling_factor</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Factor to multiply temperature each +<li><strong>change_frequency</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of steps the temperature stays the same</li> +<li><strong>cooling_factor</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Factor to multiply temperature each <strong>change_frequency</strong> steps</li> -<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Seed for random number generator</li> +<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Seed for random number generator</li> </ul> </td> </tr> @@ -304,7 +317,7 @@ of energies for the according solutions.</p> <dl class="method"> <dt id="promod3.core.GraphMinimizer.NaiveSolve"> <code class="descname">NaiveSolve</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.core.GraphMinimizer.NaiveSolve" title="Permalink to this definition">¶</a></dt> -<dd><p>Don’t even think of using this… This function only exists for debug +<dd><p>Don’t even think of using this... This function only exists for debug purposes and does the full enumeration of the solution space. It might become faster with the appropriate <a class="reference external" href="https://www.youtube.com/watch?v=fQGbXmkSArs">techniques</a>.</p> @@ -331,73 +344,36 @@ The second element is the according energy value.</td> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">core</span></code> - ProMod3 Core Functionality</a><ul> <li>Previous: <a href="runtime_profiling.html" title="previous chapter">Runtime profiling</a></li> - <li>Next: <a href="setcompoundschemlib.html" title="next chapter"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> + <li>Next: <a href="setcompoundschemlib.html" title="next chapter"><code class="docutils literal"><span class="pre">SetCompoundsChemlib()</span></code></a></li> </ul></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/core/graph_minimizer.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -406,11 +382,11 @@ The second element is the according energy value.</td> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/core/graph_minimizer.rst.txt" + <a href="../_sources/core/graph_minimizer.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/core/helper.html b/doc/html/core/helper.html index 12d90c4637174f3596cb567dd1d6ce5e3ae32ce3..8f3c424e4b05ba49071df41e1c570e813f9af2f9 100644 --- a/doc/html/core/helper.html +++ b/doc/html/core/helper.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>helper - Shared Functionality For the Everything — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="core - ProMod3 Core Functionality" href="index.html" /> <link rel="next" title="Geometry functions" href="geometry.html" /> <link rel="prev" title="pm3argparse - Parsing Command Lines" href="pm3argparse.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -35,7 +48,7 @@ <div class="body" role="main"> <div class="section" id="module-promod3.core.helper"> -<span id="helper-shared-functionality-for-the-everything"></span><h1><a class="reference internal" href="#module-promod3.core.helper" title="promod3.core.helper: Helper functions"><code class="xref py py-mod docutils literal notranslate"><span class="pre">helper</span></code></a> - Shared Functionality For the Everything<a class="headerlink" href="#module-promod3.core.helper" title="Permalink to this headline">¶</a></h1> +<span id="helper-shared-functionality-for-the-everything"></span><h1><a class="reference internal" href="#module-promod3.core.helper" title="promod3.core.helper: Helper functions"><code class="xref py py-mod docutils literal"><span class="pre">helper</span></code></a> - Shared Functionality For the Everything<a class="headerlink" href="#module-promod3.core.helper" title="Permalink to this headline">¶</a></h1> <div class="section" id="introduction"> <h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2> <p>We collect functions here, which should be useful in many places but would make @@ -43,7 +56,7 @@ rather empty modules left alone.</p> </div> <div class="section" id="messages"> <h2>Messages<a class="headerlink" href="#messages" title="Permalink to this headline">¶</a></h2> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">promod3.core</span> <span class="k">import</span> <span class="n">helper</span> +<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">promod3.core</span> <span class="kn">import</span> <span class="n">helper</span> <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s2">"Something failed!"</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> </pre></div> @@ -58,13 +71,13 @@ exit the Python interpreter.</p> <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>msg</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – The message.</li> -<li><strong>exit_status</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Exit code, ends up in <code class="docutils literal notranslate"><span class="pre">$?</span></code> in the shell. <code class="docutils literal notranslate"><span class="pre">0</span></code> is +<li><strong>msg</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – The message.</li> +<li><strong>exit_status</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Exit code, ends up in <code class="docutils literal"><span class="pre">$?</span></code> in the shell. <code class="docutils literal"><span class="pre">0</span></code> is traditionally reserved to successful commands.</li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">No return value, exits script with value <code class="docutils literal notranslate"><span class="pre">exit_status</span></code>.</p> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">No return value, exits script with value <code class="docutils literal"><span class="pre">exit_status</span></code>.</p> </td> </tr> </tbody> @@ -74,11 +87,11 @@ traditionally reserved to successful commands.</li> </div> <div class="section" id="file-tests"> <h2>File Tests<a class="headerlink" href="#file-tests" title="Permalink to this headline">¶</a></h2> -<p>The following example parses an argument (call as <code class="docutils literal notranslate"><span class="pre">pm</span> <span class="pre">SCRIPTNAME</span> <span class="pre">FILENAME</span></code>) as -a file name and checks whether it is a <code class="docutils literal notranslate"><span class="pre">pdb</span></code> or <code class="docutils literal notranslate"><span class="pre">mmcif</span></code> file.</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="sd">"""Test for file reading."""</span> -<span class="kn">from</span> <span class="nn">promod3.core</span> <span class="k">import</span> <span class="n">helper</span> -<span class="kn">from</span> <span class="nn">promod3.core</span> <span class="k">import</span> <span class="n">pm3argparse</span> +<p>The following example parses an argument (call as <code class="docutils literal"><span class="pre">pm</span> <span class="pre">SCRIPTNAME</span> <span class="pre">FILENAME</span></code>) as +a file name and checks whether it is a <code class="docutils literal"><span class="pre">pdb</span></code> or <code class="docutils literal"><span class="pre">mmcif</span></code> file.</p> +<div class="highlight-default"><div class="highlight"><pre><span></span><span class="sd">"""Test for file reading."""</span> +<span class="kn">from</span> <span class="nn">promod3.core</span> <span class="kn">import</span> <span class="n">helper</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">p</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="vm">__doc__</span><span class="p">)</span> <span class="n">p</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">'file'</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="nb">str</span><span class="p">)</span> @@ -102,15 +115,15 @@ fixed and only needs a <em>prefix</em> describing the specimen of file.</p> <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>prefix</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – String to put in front of the failure-message -“file does not exist: <code class="docutils literal notranslate"><span class="pre">file</span></code>”.</li> -<li><strong>exit_status</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Exit code on missing file, ends up in <code class="docutils literal notranslate"><span class="pre">$?</span></code> in the -shell. <code class="docutils literal notranslate"><span class="pre">0</span></code> is traditionally reserved to successful commands.</li> -<li><strong>file</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path including file name to be checked.</li> +<li><strong>prefix</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – String to put in front of the failure-message +“file does not exist: <code class="docutils literal"><span class="pre">file</span></code>”.</li> +<li><strong>exit_status</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Exit code on missing file, ends up in <code class="docutils literal"><span class="pre">$?</span></code> in the +shell. <code class="docutils literal"><span class="pre">0</span></code> is traditionally reserved to successful commands.</li> +<li><strong>file</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path including file name to be checked.</li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">No return value, exits script with value <code class="docutils literal notranslate"><span class="pre">exit_status</span></code> if file +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">No return value, exits script with value <code class="docutils literal"><span class="pre">exit_status</span></code> if file is missing.</p> </td> </tr> @@ -122,10 +135,10 @@ is missing.</p> <dt id="promod3.core.helper.FileExtension"> <code class="descclassname">promod3.core.helper.</code><code class="descname">FileExtension</code><span class="sig-paren">(</span><em>prefix</em>, <em>exit_status</em>, <em>filename</em>, <em>extensions</em>, <em>gzip=False</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.core.helper.FileExtension" title="Permalink to this definition">¶</a></dt> <dd><p>Checks a file to carry a known extension given by a list of strings. Since -files are very often compressed these days, an additional “gz” suffix can be +files are very often compressed these days, an additional “gz” suffix can be tracked automatically by this function. Thus, the list of <em>extensions</em> only -needs to contain what you are really looking for, e.g. (“pdb”) instead of -(“pdb”, “pdb.gz”). The <em>gzip</em> flag also determines the output of this +needs to contain what you are really looking for, e.g. (“pdb”) instead of +(“pdb”, “pdb.gz”). The <em>gzip</em> flag also determines the output of this function. If enabled, a triple is returned: name of the file without extension, its extension and a Boolean to tell whether the file carries the gzip extension or not. If <em>gzip</em> detection is turned of, only a tuple is @@ -136,20 +149,20 @@ unrecognised extension, this function terminates the script.</p> <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>prefix</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – String to put in front of the failure-message -“file extension not supported: <code class="docutils literal notranslate"><span class="pre">filename</span></code>”.</li> -<li><strong>exit_status</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Exit code on missing file, ends up in <code class="docutils literal notranslate"><span class="pre">$?</span></code> in the -shell. <code class="docutils literal notranslate"><span class="pre">0</span></code> is traditionally reserved to successful commands.</li> -<li><strong>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path including file name to be checked.</li> -<li><strong>extensions</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – List of strings without a leading “.”.</li> -<li><strong>gzip</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Indicates whether to check for an additional “gz” extension.</li> +<li><strong>prefix</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – String to put in front of the failure-message +“file extension not supported: <code class="docutils literal"><span class="pre">filename</span></code>”.</li> +<li><strong>exit_status</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Exit code on missing file, ends up in <code class="docutils literal"><span class="pre">$?</span></code> in the +shell. <code class="docutils literal"><span class="pre">0</span></code> is traditionally reserved to successful commands.</li> +<li><strong>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path including file name to be checked.</li> +<li><strong>extensions</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – List of strings without a leading ”.”.</li> +<li><strong>gzip</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Indicates whether to check for an additional “gz” extension.</li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(base name of <code class="docutils literal notranslate"><span class="pre">filename</span></code> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>), extension of file -without a “.gz” (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>), flag to indicate an additional -“.gz” (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>)) <strong>if</strong> <code class="docutils literal notranslate"><span class="pre">gzip</span></code> is set, (base name of -<code class="docutils literal notranslate"><span class="pre">filename</span></code> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>), extension of file) <strong>if not</strong>.</p> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(base name of <code class="docutils literal"><span class="pre">filename</span></code> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>), extension of file +without a ”.gz” (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>), flag to indicate an additional +”.gz” (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>)) <strong>if</strong> <code class="docutils literal"><span class="pre">gzip</span></code> is set, (base name of +<code class="docutils literal"><span class="pre">filename</span></code> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>), extension of file) <strong>if not</strong>.</p> </td> </tr> </tbody> @@ -160,26 +173,26 @@ without a “.gz” (<a class="reference external" href="https://docs.python.org <dt id="promod3.core.helper.FileGzip"> <code class="descclassname">promod3.core.helper.</code><code class="descname">FileGzip</code><span class="sig-paren">(</span><em>prefix</em>, <em>exit_status</em>, <em>filename</em>, <em>allowed=True</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.core.helper.FileGzip" title="Permalink to this definition">¶</a></dt> <dd><p>See if a file is gzipped or not. This is basically done by checking for a -“gz” suffix. May also be used to verify that a file is not compressed where -it does not apply. That is where <em>allowed</em> comes in. If “gz” is not allowed, +“gz” suffix. May also be used to verify that a file is not compressed where +it does not apply. That is where <em>allowed</em> comes in. If “gz” is not allowed, terminates the script on gzip files.</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>prefix</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – String to put in front of the failure-message where gzip +<li><strong>prefix</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – String to put in front of the failure-message where gzip files are not allowed.</li> -<li><strong>exit_status</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Exit code on gzip files to be avoided, ends up in -<code class="docutils literal notranslate"><span class="pre">$?</span></code> in the shell. <code class="docutils literal notranslate"><span class="pre">0</span></code> is traditionally reserved to +<li><strong>exit_status</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Exit code on gzip files to be avoided, ends up in +<code class="docutils literal"><span class="pre">$?</span></code> in the shell. <code class="docutils literal"><span class="pre">0</span></code> is traditionally reserved to successful commands.</li> -<li><strong>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path including file name to be checked.</li> -<li><strong>allowed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Set to <code class="docutils literal notranslate"><span class="pre">False</span></code> if gzipped files are not allowed. Then the +<li><strong>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path including file name to be checked.</li> +<li><strong>allowed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Set to <code class="docutils literal"><span class="pre">False</span></code> if gzipped files are not allowed. Then the script will terminate if a gzip file is found.</li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Flag to indicate if file is gzipped (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>).</p> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Flag to indicate if file is gzipped (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>).</p> </td> </tr> </tbody> @@ -196,72 +209,45 @@ script will terminate if a gzip file is found.</li> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#"><code class="docutils literal"><span class="pre">helper</span></code> - Shared Functionality For the Everything</a><ul> +<li><a class="reference internal" href="#introduction">Introduction</a></li> +<li><a class="reference internal" href="#messages">Messages</a></li> +<li><a class="reference internal" href="#file-tests">File Tests</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a><ul> - <li>Previous: <a href="pm3argparse.html" title="previous chapter"><code class="docutils literal notranslate"><span class="pre">pm3argparse</span></code> - Parsing Command Lines</a></li> + <li><a href="index.html"><code class="docutils literal"><span class="pre">core</span></code> - ProMod3 Core Functionality</a><ul> + <li>Previous: <a href="pm3argparse.html" title="previous chapter"><code class="docutils literal"><span class="pre">pm3argparse</span></code> - Parsing Command Lines</a></li> <li>Next: <a href="geometry.html" title="next chapter">Geometry functions</a></li> </ul></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/core/helper.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -270,11 +256,11 @@ script will terminate if a gzip file is found.</li> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/core/helper.rst.txt" + <a href="../_sources/core/helper.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/core/index.html b/doc/html/core/index.html index bec69259020622738fa637cf6533ae1a28a0aed5..403c6aa8b1ff10c82c736caf8f8e2aa34e3c025f 100644 --- a/doc/html/core/index.html +++ b/doc/html/core/index.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>core - ProMod3 Core Functionality — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="Documentation For Users" href="../users.html" /> <link rel="next" title="pm3argparse - Parsing Command Lines" href="pm3argparse.html" /> <link rel="prev" title="Loading Precomputed Objects" href="../loop/load_loop_objects.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -35,18 +48,18 @@ <div class="body" role="main"> <div class="section" id="module-promod3.core"> -<span id="core-project-core-functionality"></span><h1><a class="reference internal" href="#module-promod3.core" title="promod3.core: Basic functionality, supporting standard tasks in your code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">core</span></code></a> - ProMod3 Core Functionality<a class="headerlink" href="#module-promod3.core" title="Permalink to this headline">¶</a></h1> +<span id="core-project-core-functionality"></span><h1><a class="reference internal" href="#module-promod3.core" title="promod3.core: Basic functionality, supporting standard tasks in your code."><code class="xref py py-mod docutils literal"><span class="pre">core</span></code></a> - ProMod3 Core Functionality<a class="headerlink" href="#module-promod3.core" title="Permalink to this headline">¶</a></h1> <p>This module gathers functions and classes which are not devoted to homology modeling per se but cover standard programming issues.</p> <p>Contents:</p> <div class="toctree-wrapper compound"> <ul> -<li class="toctree-l1"><a class="reference internal" href="pm3argparse.html"><code class="docutils literal notranslate"><span class="pre">pm3argparse</span></code> - Parsing Command Lines</a><ul> +<li class="toctree-l1"><a class="reference internal" href="pm3argparse.html"><code class="docutils literal"><span class="pre">pm3argparse</span></code> - Parsing Command Lines</a><ul> <li class="toctree-l2"><a class="reference internal" href="pm3argparse.html#introduction">Introduction</a></li> <li class="toctree-l2"><a class="reference internal" href="pm3argparse.html#argument-parser">Argument Parser</a></li> </ul> </li> -<li class="toctree-l1"><a class="reference internal" href="helper.html"><code class="docutils literal notranslate"><span class="pre">helper</span></code> - Shared Functionality For the Everything</a><ul> +<li class="toctree-l1"><a class="reference internal" href="helper.html"><code class="docutils literal"><span class="pre">helper</span></code> - Shared Functionality For the Everything</a><ul> <li class="toctree-l2"><a class="reference internal" href="helper.html#introduction">Introduction</a></li> <li class="toctree-l2"><a class="reference internal" href="helper.html#messages">Messages</a></li> <li class="toctree-l2"><a class="reference internal" href="helper.html#file-tests">File Tests</a></li> @@ -65,71 +78,34 @@ modeling per se but cover standard programming issues.</p> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> <li>Previous: <a href="../loop/load_loop_objects.html" title="previous chapter">Loading Precomputed Objects</a></li> - <li>Next: <a href="pm3argparse.html" title="next chapter"><code class="docutils literal notranslate"><span class="pre">pm3argparse</span></code> - Parsing Command Lines</a></li> + <li>Next: <a href="pm3argparse.html" title="next chapter"><code class="docutils literal"><span class="pre">pm3argparse</span></code> - Parsing Command Lines</a></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/core/index.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -138,11 +114,11 @@ modeling per se but cover standard programming issues.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/core/index.rst.txt" + <a href="../_sources/core/index.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/core/pm3argparse.html b/doc/html/core/pm3argparse.html index 5118d459773eb3fd238090e235d3d44bbfb1ac2c..39e539ec170626f66df1c04d369a67d2ec5124ef 100644 --- a/doc/html/core/pm3argparse.html +++ b/doc/html/core/pm3argparse.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>pm3argparse - Parsing Command Lines — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="core - ProMod3 Core Functionality" href="index.html" /> <link rel="next" title="helper - Shared Functionality For the Everything" href="helper.html" /> <link rel="prev" title="core - ProMod3 Core Functionality" href="index.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -35,7 +48,7 @@ <div class="body" role="main"> <div class="section" id="module-promod3.core.pm3argparse"> -<span id="pm3argparse-parsing-command-lines"></span><h1><a class="reference internal" href="#module-promod3.core.pm3argparse" title="promod3.core.pm3argparse: Argument Parsing"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pm3argparse</span></code></a> - Parsing Command Lines<a class="headerlink" href="#module-promod3.core.pm3argparse" title="Permalink to this headline">¶</a></h1> +<span id="pm3argparse-parsing-command-lines"></span><h1><a class="reference internal" href="#module-promod3.core.pm3argparse" title="promod3.core.pm3argparse: Argument Parsing"><code class="xref py py-mod docutils literal"><span class="pre">pm3argparse</span></code></a> - Parsing Command Lines<a class="headerlink" href="#module-promod3.core.pm3argparse" title="Permalink to this headline">¶</a></h1> <div class="section" id="introduction"> <h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2> <p>A lot of the actions in ProMod3 have a bunch of command line parameters/ @@ -43,16 +56,16 @@ arguments in common. For example we need an input alignment quite often and usually for an alignment we need information on what is the target sequence, what identifies a template sequence and eventually a hint on the format. That means we need the same functionality on the command line in several actions. -There <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser" title="promod3.core.pm3argparse.PM3ArgumentParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">PM3ArgumentParser</span></code></a> serves as a +There <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser" title="promod3.core.pm3argparse.PM3ArgumentParser"><code class="xref py py-class docutils literal"><span class="pre">PM3ArgumentParser</span></code></a> serves as a 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-default notranslate"><div class="highlight"><pre><span></span><span class="sd">"""</span> +<div class="highlight-default"><div class="highlight"><pre><span></span><span class="sd">"""</span> <span class="sd">Place the description of your script right in the file and import</span> <span class="sd">it via '__doc__' as description to the parser ('-h', '--help').</span> <span class="sd">"""</span> -<span class="kn">from</span> <span class="nn">promod3.core</span> <span class="k">import</span> <span class="n">pm3argparse</span> +<span class="kn">from</span> <span class="nn">promod3.core</span> <span class="kn">import</span> <span class="n">pm3argparse</span> <span class="c1"># make sure we see output when passing '-h'</span> <span class="kn">import</span> <span class="nn">ost</span> @@ -64,9 +77,9 @@ input.</p> <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> -<p>When the example above is run with <code class="docutils literal notranslate"><span class="pre">pm</span></code> and no additional arguments, the -script exits with a code 2. If it is run with an additional argument <code class="docutils literal notranslate"><span class="pre">-h</span></code> or -<code class="docutils literal notranslate"><span class="pre">--help</span></code>, it exits with a code 0 and displays the help message given as a +<p>When the example above is run with <code class="docutils literal"><span class="pre">pm</span></code> and no additional arguments, the +script exits with a code 2. If it is run with an additional argument <code class="docutils literal"><span class="pre">-h</span></code> or +<code class="docutils literal"><span class="pre">--help</span></code>, it exits with a code 0 and displays the help message given as a docstring in your script.</p> </div> <div class="section" id="argument-parser"> @@ -74,14 +87,14 @@ docstring in your script.</p> <dl class="class"> <dt id="promod3.core.pm3argparse.PM3ArgumentParser"> <em class="property">class </em><code class="descclassname">promod3.core.pm3argparse.</code><code class="descname">PM3ArgumentParser</code><span class="sig-paren">(</span><em>description</em>, <em>action=True</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.core.pm3argparse.PM3ArgumentParser" title="Permalink to this definition">¶</a></dt> -<dd><p>This class is a child of <a class="reference external" href="https://docs.python.org/3.6/library/argparse.html#argparse.ArgumentParser" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.ArgumentParser</span></code></a>. It provides a set -of standard arguments which can be activated with <code class="xref py py-meth docutils literal notranslate"><span class="pre">Add*()</span></code> methods and -then assembled with <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser" title="promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AssembleParser()</span></code></a>. This helps keeping up a common +<dd><p>This class is a child of <a class="reference external" href="https://docs.python.org/3.6/library/argparse.html#argparse.ArgumentParser" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">argparse.ArgumentParser</span></code></a>. It provides a set +of standard arguments which can be activated with <code class="xref py py-meth docutils literal"><span class="pre">Add*()</span></code> methods and +then assembled with <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>. This helps keeping up a common naming scheme throughout all ProMod3 actions. As a real extension, this -subclass provides checking of input parameters on <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser.Parse" title="promod3.core.pm3argparse.PM3ArgumentParser.Parse"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Parse()</span></code></a>. Besides -this, everything you can do with a ‘real’ <a class="reference external" href="https://docs.python.org/3.6/library/argparse.html#argparse.ArgumentParser" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ArgumentParser</span></code></a> +subclass provides checking of input parameters on <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>. Besides +this, everything you can do with a ‘real’ <a class="reference external" href="https://docs.python.org/3.6/library/argparse.html#argparse.ArgumentParser" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">ArgumentParser</span></code></a> instance is possible here.</p> -<p>Attributes beyond <a class="reference external" href="https://docs.python.org/3.6/library/argparse.html#argparse.ArgumentParser" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.ArgumentParser</span></code></a>:</p> +<p>Attributes beyond <a class="reference external" href="https://docs.python.org/3.6/library/argparse.html#argparse.ArgumentParser" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">argparse.ArgumentParser</span></code></a>:</p> <dl class="attribute"> <dt id="promod3.core.pm3argparse.PM3ArgumentParser.action"> <code class="descname">action</code><a class="headerlink" href="#promod3.core.pm3argparse.PM3ArgumentParser.action" title="Permalink to this definition">¶</a></dt> @@ -90,7 +103,7 @@ instance is possible here.</p> <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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -99,24 +112,24 @@ instance is possible here.</p> <dl class="method"> <dt id="promod3.core.pm3argparse.PM3ArgumentParser.__init__"> <code class="descname">__init__</code><span class="sig-paren">(</span><em>description</em>, <em>action=True</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.core.pm3argparse.PM3ArgumentParser.__init__" title="Permalink to this definition">¶</a></dt> -<dd><p>Create a new instance of <code class="xref py py-class docutils literal notranslate"><span class="pre">PM3ArgumentParser</span></code>.</p> +<dd><p>Create a new instance of <code class="xref py py-class docutils literal"><span class="pre">PM3ArgumentParser</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"><ul class="first simple"> -<li><strong>description</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Help text for this script, handed down to -<a class="reference external" href="https://docs.python.org/3.6/library/argparse.html#description"><code class="xref py py-attr docutils literal notranslate"><span class="pre">description</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/argparse.html#argparse.ArgumentParser"><code class="xref py py-meth docutils literal notranslate"><span class="pre">argparse.ArgumentParser.__init__()</span></code></a>.</li> -<li><strong>action</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Indicates if the calling script is a ProMod3 action. -This influences <a class="reference external" href="https://docs.python.org/3.6/library/argparse.html#prog"><code class="xref py py-attr docutils literal notranslate"><span class="pre">prog</span></code></a> of -<a class="reference external" href="https://docs.python.org/3.6/library/argparse.html#argparse.ArgumentParser" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ArgumentParser</span></code></a> by clipping of the +<li><strong>description</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Help text for this script, handed down to +<a class="reference external" href="https://docs.python.org/3.6/library/argparse.html#description"><code class="xref py py-attr docutils literal"><span class="pre">description</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/argparse.html#argparse.ArgumentParser"><code class="xref py py-meth docutils literal"><span class="pre">argparse.ArgumentParser.__init__()</span></code></a>.</li> +<li><strong>action</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Indicates if the calling script is a ProMod3 action. +This influences <a class="reference external" href="https://docs.python.org/3.6/library/argparse.html#prog"><code class="xref py py-attr docutils literal"><span class="pre">prog</span></code></a> of +<a class="reference external" href="https://docs.python.org/3.6/library/argparse.html#argparse.ArgumentParser" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">ArgumentParser</span></code></a> by clipping of the first 3 characters of the file name of the script. If -<code class="docutils literal notranslate"><span class="pre">False</span></code>, default behaviour of -<a class="reference external" href="https://docs.python.org/3.6/library/argparse.html#argparse.ArgumentParser" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ArgumentParser</span></code></a> kicks in.</li> +<code class="docutils literal"><span class="pre">False</span></code>, default behaviour of +<a class="reference external" href="https://docs.python.org/3.6/library/argparse.html#argparse.ArgumentParser" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">ArgumentParser</span></code></a> kicks in.</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/3.6/library/argparse.html#argparse.ArgumentParser" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.ArgumentParser</span></code></a>.</p> +<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/3.6/library/argparse.html#argparse.ArgumentParser" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">argparse.ArgumentParser</span></code></a>.</p> </td> </tr> </tbody> @@ -128,41 +141,41 @@ first 3 characters of the file name of the script. If <code class="descname">AddAlignment</code><span class="sig-paren">(</span><em>allow_multitemplate=False</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.core.pm3argparse.PM3ArgumentParser.AddAlignment" title="Permalink to this definition">¶</a></dt> <dd><p>Commandline options for alignments.</p> <p>Activate everything needed to load alignments to the argument parser. -Command line arguments are then added in <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser" title="promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AssembleParser()</span></code></a> and the -input is post processed and checked in <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser.Parse" title="promod3.core.pm3argparse.PM3ArgumentParser.Parse"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Parse()</span></code></a>.</p> +Command line arguments are then added in <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> and the +input is post processed and checked in <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> <table class="docutils field-list" 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>allow_multitemplate</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – enable support for multitemplate alignments</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>allow_multitemplate</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – enable support for multitemplate alignments</td> </tr> </tbody> </table> <p>Options/arguments added:</p> <ul class="simple"> -<li><code class="docutils literal notranslate"><span class="pre">-f/--fasta</span> <span class="pre"><FILE></span></code> - Target-template alignment in FASTA format. -Target sequence is either named “trg” or “target” or the first +<li><code class="docutils literal"><span class="pre">-f/--fasta</span> <span class="pre"><FILE></span></code> - Target-template alignment in FASTA format. +Target sequence is either named “trg” or “target” or the first sequence is used. File can be plain or gzipped.</li> -<li><code class="docutils literal notranslate"><span class="pre">-c/--clustal</span> <span class="pre"><FILE></span></code> - Target-template alignment in CLUSTAL format. -Target sequence is either named “trg” or “target” or the first +<li><code class="docutils literal"><span class="pre">-c/--clustal</span> <span class="pre"><FILE></span></code> - Target-template alignment in CLUSTAL format. +Target sequence is either named “trg” or “target” or the first sequence is used. File can be plain or gzipped.</li> -<li><code class="docutils literal notranslate"><span class="pre">-j/--json</span> <span class="pre"><OBJECT>|<FILE></span></code> - Alignments provided as JSON +<li><code class="docutils literal"><span class="pre">-j/--json</span> <span class="pre"><OBJECT>|<FILE></span></code> - Alignments provided as JSON file/object. File can be plain or gzipped.</li> </ul> <p>See <a class="reference internal" href="../actions/index.html#promod-build-model"><span class="std std-ref">here</span></a> for details on the file formats.</p> -<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 notranslate"><span class="pre">Parse()</span></code></a>:</p> +<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 class="simple"> -<li><code class="xref py py-attr docutils literal notranslate"><span class="pre">fasta</span></code> - filled with the input of the <code class="docutils literal notranslate"><span class="pre">--fasta</span></code> option, a -<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> (filenames).</li> -<li><code class="xref py py-attr docutils literal notranslate"><span class="pre">clustal</span></code> - filled with the input of the <code class="docutils literal notranslate"><span class="pre">--clustal</span></code> option, a -<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> (filenames).</li> -<li><code class="xref py py-attr docutils literal notranslate"><span class="pre">json</span></code> - filled with the input of the <code class="docutils literal notranslate"><span class="pre">--json</span></code> option, a -<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>, where each string may be a filename +<li><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 +<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> (filenames).</li> +<li><code class="xref py py-attr docutils literal"><span class="pre">clustal</span></code> - filled with the input of the <code class="docutils literal"><span class="pre">--clustal</span></code> option, a +<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> (filenames).</li> +<li><code class="xref py py-attr docutils literal"><span class="pre">json</span></code> - filled with the input of the <code class="docutils literal"><span class="pre">--json</span></code> option, a +<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>, where each string may be a filename or a JSON object string.</li> -<li><code class="xref py py-attr docutils literal notranslate"><span class="pre">alignments</span></code> - <code class="xref py py-class docutils literal notranslate"><span class="pre">ost.AlignmentList</span></code>, same order as given. +<li><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 given. First sequence of the alignment is the target sequence, if in doubt, -check for sequence roles <code class="docutils literal notranslate"><span class="pre">TARGET</span></code> or <code class="docutils literal notranslate"><span class="pre">TEMPLATE</span></code></li> -<li><code class="xref py py-attr docutils literal notranslate"><span class="pre">aln_sources</span></code> - <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> with the original +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></li> +<li><code class="xref py py-attr docutils literal"><span class="pre">aln_sources</span></code> - <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> with the original source(s) of the alignment: may be filename(s) or JSON strings.</li> </ul> <p>Exit codes related to alignment input:</p> @@ -175,18 +188,18 @@ source(s) of the alignment: may be filename(s) or JSON strings.</li> (unless <em>allow_multitemplate</em> = True) more than 2 sequences</li> <li>17 - mutliple target sequences found in alignment</li> <li>18 - error when reading fasta/clustal file</li> -<li>19 - problem with a JSON formatted file handed over to <code class="docutils literal notranslate"><span class="pre">--json</span></code></li> +<li>19 - problem with a JSON formatted file handed over to <code class="docutils literal"><span class="pre">--json</span></code></li> <li>20 - JSON file could not be decoded into a JSON object</li> -<li>21 - JSON object has no ‘alignmentlist’ key</li> -<li>22 - JSON object has no ‘target’/’template’ in the ‘alignmentlist’</li> +<li>21 - JSON object has no ‘alignmentlist’ key</li> +<li>22 - JSON object has no ‘target’/’template’ in the ‘alignmentlist’</li> <li>23 - JSON string could not be decoded</li> -<li>24 - JSON object ‘alignmentlist’ does not point to a list</li> -<li>25 - JSON object ‘alignmentlist’ member is not a dictionary</li> -<li>26 - JSON object ‘alignmentlist’ ‘target’/’template’ does not point +<li>24 - JSON object ‘alignmentlist’ does not point to a list</li> +<li>25 - JSON object ‘alignmentlist’ member is not a dictionary</li> +<li>26 - JSON object ‘alignmentlist’ ‘target’/’template’ does not point to a dictionary</li> -<li>27 - JSON object ‘alignmentlist’ ‘target’/’template’ does not have +<li>27 - JSON object ‘alignmentlist’ ‘target’/’template’ does not have a needed key</li> -<li>28 - JSON object ‘alignmentlist’ ‘target’/’template’ has a value of +<li>28 - JSON object ‘alignmentlist’ ‘target’/’template’ has a value of wrong type</li> </ul> </dd></dl> @@ -196,19 +209,19 @@ wrong type</li> <code class="descname">AddFragments</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.core.pm3argparse.PM3ArgumentParser.AddFragments" title="Permalink to this definition">¶</a></dt> <dd><p>Commandline option for usage of Fragments</p> <p>Activate everything needed to setup -<a class="reference internal" href="../modelling/algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.modelling.FraggerHandle</span></code></a> objects in the argument parser. -Command line arguments are then added in <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser" title="promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AssembleParser()</span></code></a> and the -input is post processed and checked in <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser.Parse" title="promod3.core.pm3argparse.PM3ArgumentParser.Parse"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Parse()</span></code></a>.</p> +<a class="reference internal" href="../modelling/algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal"><span class="pre">promod3.modelling.FraggerHandle</span></code></a> objects in the argument parser. +Command line arguments are then added in <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> and the +input is post processed and checked in <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> <p>Options/arguments added:</p> <ul class="simple"> -<li><code class="docutils literal notranslate"><span class="pre">-r/--use-fragments</span></code> - Boolean flag whether to setup fragger handles.</li> +<li><code class="docutils literal"><span class="pre">-r/--use-fragments</span></code> - Boolean flag whether to setup fragger handles.</li> </ul> <p>Notes:</p> <ul class="simple"> <li>Fragger handles are setup to identify fragments in a -<a class="reference internal" href="../loop/structure_db.html#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.StructureDB</span></code></a>.</li> +<a class="reference internal" href="../loop/structure_db.html#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.StructureDB</span></code></a>.</li> <li>If no profiles are provided as additional argument -(<code class="docutils literal notranslate"><span class="pre">-s/--seqprof</span> <span class="pre"><FILE></span></code>), fragments are identified based on BLOSUM62 +(<code class="docutils literal"><span class="pre">-s/--seqprof</span> <span class="pre"><FILE></span></code>), fragments are identified based on BLOSUM62 sequence similarity.</li> <li>If you provide profiles that are not in hhm format, fragments are identified based on BLOSUM62 sequence similarity, sequence profile @@ -219,10 +232,10 @@ on secondary structure agreement, secondary structure dependent torsion probabilities, sequence profile scoring and structure profile scoring.</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 notranslate"><span class="pre">Parse()</span></code></a>:</p> +<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 class="simple"> -<li><code class="xref py py-attr docutils literal notranslate"><span class="pre">fragger_handles</span></code> - <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of -<a class="reference internal" href="../modelling/algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.modelling.FraggerHandle</span></code></a>, ordered to match the target +<li><code class="xref py py-attr docutils literal"><span class="pre">fragger_handles</span></code> - <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of +<a class="reference internal" href="../modelling/algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal"><span class="pre">promod3.modelling.FraggerHandle</span></code></a>, ordered to match the target sequences.</li> </ul> <p>Exit codes related to fragments input:</p> @@ -236,15 +249,15 @@ sequences.</li> <code class="descname">AddProfile</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.core.pm3argparse.PM3ArgumentParser.AddProfile" title="Permalink to this definition">¶</a></dt> <dd><p>Commandline options for profiles</p> <p>Activate everything needed to load profiles to the argument parser. -Command line arguments are then added in <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser" title="promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AssembleParser()</span></code></a> and the -input is post processed and checked in <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser.Parse" title="promod3.core.pm3argparse.PM3ArgumentParser.Parse"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Parse()</span></code></a>.</p> +Command line arguments are then added in <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> and the +input is post processed and checked in <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> <p>Options/arguments added:</p> <ul class="simple"> -<li><code class="docutils literal notranslate"><span class="pre">-s/--seqprof</span> <span class="pre"><FILE></span></code> - Sequence profile in any format readable -by the <code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.io.LoadSequenceProfile()</span></code> method. Format is chosen by +<li><code class="docutils literal"><span class="pre">-s/--seqprof</span> <span class="pre"><FILE></span></code> - Sequence profile in any format readable +by the <code class="xref py py-meth docutils literal"><span class="pre">ost.io.LoadSequenceProfile()</span></code> method. Format is chosen by file ending. Recognized file extensions: .hhm, .hhm.gz, .pssm, .pssm.gz. Consider to use -<a class="reference external" href="https://www.openstructure.org/docs/1.11/bindings/hhblits/#ost.bindings.hhblits.HHblits.A3MToProfile" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.bindings.hhblits.HHblits.A3MToProfile()</span></code></a> if you have a file +<a class="reference external" href="https://www.openstructure.org/docs/2.0/bindings/hhblits/#ost.bindings.hhblits.HHblits.A3MToProfile" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.bindings.hhblits.HHblits.A3MToProfile()</span></code></a> if you have a file in a3m format at hand.</li> </ul> <p>Notes:</p> @@ -256,9 +269,9 @@ case of homo-oligomers</li> <li>all or nothing - you cannot provide profiles for only a subset of target sequences</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 notranslate"><span class="pre">Parse()</span></code></a>:</p> +<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 class="simple"> -<li><code class="xref py py-attr docutils literal notranslate"><span class="pre">profiles</span></code> - <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.ProfileHandle</span></code></a>, +<li><code class="xref py py-attr docutils literal"><span class="pre">profiles</span></code> - <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a>, ordered to match the target sequences.</li> </ul> <p>Exit codes related to profile input:</p> @@ -276,14 +289,14 @@ ordered to match the target sequences.</li> <code class="descname">AddStructure</code><span class="sig-paren">(</span><em>attach_views=False</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.core.pm3argparse.PM3ArgumentParser.AddStructure" title="Permalink to this definition">¶</a></dt> <dd><p>Commandline options for structures.</p> <p>Activate everything needed to load structures to the argument parser. -Command line arguments are then added in <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser" title="promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AssembleParser()</span></code></a> and the -input is post processed and checked in <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser.Parse" title="promod3.core.pm3argparse.PM3ArgumentParser.Parse"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Parse()</span></code></a>.</p> +Command line arguments are then added in <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> and the +input is post processed and checked in <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> <table class="docutils field-list" 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>attach_views</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – if True: attach views to alignments. Requires call -to <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser.AddAlignment" title="promod3.core.pm3argparse.PM3ArgumentParser.AddAlignment"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AddAlignment()</span></code></a>. Chains for each sequence +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>attach_views</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – if True: attach views to alignments. Requires call +to <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser.AddAlignment" title="promod3.core.pm3argparse.PM3ArgumentParser.AddAlignment"><code class="xref py py-meth docutils literal"><span class="pre">AddAlignment()</span></code></a>. Chains for each sequence are identified based on the sequence name of the templates in the alignments (see <a class="reference internal" href="../actions/index.html#promod-build-model"><span class="std std-ref">here</span></a> for details).</td> @@ -292,10 +305,10 @@ templates in the alignments (see </table> <p>Options/arguments added:</p> <ul class="simple"> -<li><code class="docutils literal notranslate"><span class="pre">-p/--pdb</span> <span class="pre"><FILE></span></code> - Structure in PDB format. File can be plain or +<li><code class="docutils literal"><span class="pre">-p/--pdb</span> <span class="pre"><FILE></span></code> - Structure in PDB format. File can be plain or gzipped.</li> -<li><code class="docutils literal notranslate"><span class="pre">-e/--entity</span> <span class="pre"><FILE></span></code> - Structure in any format readable by the -<code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.io.LoadEntity()</span></code> method. Format is chosen by file ending. +<li><code class="docutils literal"><span class="pre">-e/--entity</span> <span class="pre"><FILE></span></code> - Structure in any format readable by the +<code class="xref py py-meth docutils literal"><span class="pre">ost.io.LoadEntity()</span></code> method. Format is chosen by file ending. Recognized File Extensions: .ent, .pdb, .ent.gz, .pdb.gz, .cif, .cif.gz.</li> </ul> <p>Notes:</p> @@ -303,15 +316,15 @@ Recognized File Extensions: .ent, .pdb, .ent.gz, .pdb.gz, .cif, .cif.gz.</li> <li>one of the inputs must be given and only one type of input acceptable</li> <li>callable multiple times (structures appended in given order)</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 notranslate"><span class="pre">Parse()</span></code></a>:</p> +<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 class="simple"> -<li><code class="xref py py-attr docutils literal notranslate"><span class="pre">pdb</span></code> - filled with the input of the <code class="docutils literal notranslate"><span class="pre">--pdb</span></code> option, a -<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> (filenames).</li> -<li><code class="xref py py-attr docutils literal notranslate"><span class="pre">entity</span></code> - filled with the input of the <code class="docutils literal notranslate"><span class="pre">--entity</span></code> option, a -<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> (filenames).</li> -<li><code class="xref py py-attr docutils literal notranslate"><span class="pre">structures</span></code> - <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <code class="xref py py-class docutils literal notranslate"><span class="pre">ost.EntityHandle</span></code>, same +<li><code class="xref py py-attr docutils literal"><span class="pre">pdb</span></code> - filled with the input of the <code class="docutils literal"><span class="pre">--pdb</span></code> option, a +<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> (filenames).</li> +<li><code class="xref py py-attr docutils literal"><span class="pre">entity</span></code> - filled with the input of the <code class="docutils literal"><span class="pre">--entity</span></code> option, a +<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> (filenames).</li> +<li><code class="xref py py-attr docutils literal"><span class="pre">structures</span></code> - <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <code class="xref py py-class docutils literal"><span class="pre">ost.EntityHandle</span></code>, same order as given.</li> -<li><code class="xref py py-attr docutils literal notranslate"><span class="pre">structure_sources</span></code> - <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> with the +<li><code class="xref py py-attr docutils literal"><span class="pre">structure_sources</span></code> - <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> with the original filenames of the structures.</li> </ul> <p>Exit codes related to alignment input:</p> @@ -325,7 +338,7 @@ original filenames of the structures.</li> <li>41 - attach_views used without adding alignments</li> <li>42 - inconsistent offsets between seq. name and seq. in alignment</li> <li>43 - non-integer offset defined in seq. name</li> -<li>44 - too many “|” in seq. name</li> +<li>44 - too many “|” in seq. name</li> <li>45 - chain to attach to sequence could not be identified</li> </ul> </dd></dl> @@ -333,18 +346,18 @@ original filenames of the structures.</li> <dl class="method"> <dt id="promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser"> <code class="descname">AssembleParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser" title="Permalink to this definition">¶</a></dt> -<dd><p>When adding options via the <code class="xref py py-meth docutils literal notranslate"><span class="pre">Add*()</span></code> methods, call this after you +<dd><p>When adding options via the <code class="xref py py-meth docutils literal"><span class="pre">Add*()</span></code> methods, call this after you are done. Everything before just tells the parser that it should contain those option sets but does not actually add anything. -<a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser" title="promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AssembleParser()</span></code></a> will put everything in place, in the right order +<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> will put everything in place, in the right order and with the right constraints.</p> </dd></dl> <dl class="method"> <dt id="promod3.core.pm3argparse.PM3ArgumentParser.Parse"> <code class="descname">Parse</code><span class="sig-paren">(</span><em>args=None</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.core.pm3argparse.PM3ArgumentParser.Parse" title="Permalink to this definition">¶</a></dt> -<dd><p>Parse an argument string. See <code class="xref py py-meth docutils literal notranslate"><span class="pre">Add*()</span></code> methods.</p> -<p>Options/arguments added by default: <code class="docutils literal notranslate"><span class="pre">-h/--help</span></code> shows usage.</p> +<dd><p>Parse an argument string. See <code class="xref py py-meth docutils literal"><span class="pre">Add*()</span></code> methods.</p> +<p>Options/arguments added by default: <code class="docutils literal"><span class="pre">-h/--help</span></code> shows usage.</p> <p>General exit codes:</p> <ul class="simple"> <li>1 - an unhandled exception was raised</li> @@ -354,9 +367,9 @@ and with the right constraints.</p> <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>args</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – The argument string. As default <a class="reference external" href="https://docs.python.org/3.6/library/sys.html#sys.argv"><code class="xref py py-attr docutils literal notranslate"><span class="pre">sys.argv</span></code></a> is used.</td> +<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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – The argument string. As default <a class="reference external" href="https://docs.python.org/3.6/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">Namespace filled with attributes (see <code class="xref py py-meth docutils literal notranslate"><span class="pre">Add*()</span></code> methods).</td> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Namespace filled with attributes (see <code class="xref py py-meth docutils literal"><span class="pre">Add*()</span></code> methods).</td> </tr> </tbody> </table> @@ -374,72 +387,44 @@ and with the right constraints.</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#"><code class="docutils literal"><span class="pre">pm3argparse</span></code> - Parsing Command Lines</a><ul> +<li><a class="reference internal" href="#introduction">Introduction</a></li> +<li><a class="reference internal" href="#argument-parser">Argument Parser</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a><ul> - <li>Previous: <a href="index.html" title="previous chapter"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> - <li>Next: <a href="helper.html" title="next chapter"><code class="docutils literal notranslate"><span class="pre">helper</span></code> - Shared Functionality For the Everything</a></li> + <li><a href="index.html"><code class="docutils literal"><span class="pre">core</span></code> - ProMod3 Core Functionality</a><ul> + <li>Previous: <a href="index.html" title="previous chapter"><code class="docutils literal"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> + <li>Next: <a href="helper.html" title="next chapter"><code class="docutils literal"><span class="pre">helper</span></code> - Shared Functionality For the Everything</a></li> </ul></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/core/pm3argparse.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -448,11 +433,11 @@ and with the right constraints.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/core/pm3argparse.rst.txt" + <a href="../_sources/core/pm3argparse.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/core/runtime_profiling.html b/doc/html/core/runtime_profiling.html index 2e5f4455a450370701fddcca53adacac2b309cea..d296ef538a708eb7b6b0c81cfd4bc0d8bb15c8cd 100644 --- a/doc/html/core/runtime_profiling.html +++ b/doc/html/core/runtime_profiling.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Runtime profiling — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="core - ProMod3 Core Functionality" href="index.html" /> <link rel="next" title="Graph Minimizer" href="graph_minimizer.html" /> <link rel="prev" title="Geometry functions" href="geometry.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -41,8 +54,8 @@ <em class="property">class </em><code class="descclassname">promod3.core.</code><code class="descname">StaticRuntimeProfiler</code><a class="headerlink" href="#promod3.core.StaticRuntimeProfiler" title="Permalink to this definition">¶</a></dt> <dd><p>Defines functionality for runtime profiling.</p> <p>All profiling is completely turned off by default and must be activated at -compile-time by adding <code class="docutils literal notranslate"><span class="pre">-DPM3_RUNTIME_PROFILING_LEVEL=N</span></code> to your CMake -call, where <code class="docutils literal notranslate"><span class="pre">N</span></code> must be larger than 0. If turned off, all these functions +compile-time by adding <code class="docutils literal"><span class="pre">-DPM3_RUNTIME_PROFILING_LEVEL=N</span></code> to your CMake +call, where <code class="docutils literal"><span class="pre">N</span></code> must be larger than 0. If turned off, all these functions will still exist and work but will not do anything. Functionality in the C++ code is usually profiled at level 2, while Python functionality is profiled at level 1. The default profiling only covers the steps of the modelling @@ -62,8 +75,8 @@ timer.</p> <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>id</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Identifier for this timer.</li> -<li><strong>level</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Timer only started if level <= <code class="docutils literal notranslate"><span class="pre">PM3_RUNTIME_PROFILING_LEVEL</span></code></li> +<li><strong>id</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Identifier for this timer.</li> +<li><strong>level</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Timer only started if level <= <code class="docutils literal"><span class="pre">PM3_RUNTIME_PROFILING_LEVEL</span></code></li> </ul> </td> </tr> @@ -74,19 +87,19 @@ timer.</p> <dl class="staticmethod"> <dt id="promod3.core.StaticRuntimeProfiler.StartScoped"> <em class="property">static </em><code class="descname">StartScoped</code><span class="sig-paren">(</span><em>id</em>, <em>level=1</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.core.StaticRuntimeProfiler.StartScoped" title="Permalink to this definition">¶</a></dt> -<dd><p>Start a timer for the given <cite>id</cite> as in <a class="reference internal" href="#promod3.core.StaticRuntimeProfiler.Start" title="promod3.core.StaticRuntimeProfiler.Start"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Start()</span></code></a>, but this will stop it +<dd><p>Start a timer for the given <cite>id</cite> as in <a class="reference internal" href="#promod3.core.StaticRuntimeProfiler.Start" title="promod3.core.StaticRuntimeProfiler.Start"><code class="xref py py-meth docutils literal"><span class="pre">Start()</span></code></a>, but this will stop it automatically when the returned variable goes out of scope.</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>id</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Identifier for this timer.</li> -<li><strong>level</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Timer only started if level <= <code class="docutils literal notranslate"><span class="pre">PM3_RUNTIME_PROFILING_LEVEL</span></code></li> +<li><strong>id</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Identifier for this timer.</li> +<li><strong>level</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Timer only started if level <= <code class="docutils literal"><span class="pre">PM3_RUNTIME_PROFILING_LEVEL</span></code></li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Object that will call <a class="reference internal" href="#promod3.core.StaticRuntimeProfiler.Stop" title="promod3.core.StaticRuntimeProfiler.Stop"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Stop()</span></code></a> when it goes out of scope</p> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Object that will call <a class="reference internal" href="#promod3.core.StaticRuntimeProfiler.Stop" title="promod3.core.StaticRuntimeProfiler.Stop"><code class="xref py py-meth docutils literal"><span class="pre">Stop()</span></code></a> when it goes out of scope</p> </td> </tr> </tbody> @@ -103,7 +116,7 @@ this will fail miserably if no timer is currently running.</p> <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>level</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Timer only stopped if level <= <code class="docutils literal notranslate"><span class="pre">PM3_RUNTIME_PROFILING_LEVEL</span></code></td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>level</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Timer only stopped if level <= <code class="docutils literal"><span class="pre">PM3_RUNTIME_PROFILING_LEVEL</span></code></td> </tr> </tbody> </table> @@ -113,14 +126,14 @@ this will fail miserably if no timer is currently running.</p> <dt id="promod3.core.StaticRuntimeProfiler.PrintSummary"> <em class="property">static </em><code class="descname">PrintSummary</code><span class="sig-paren">(</span><em>max_to_show=-1</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.core.StaticRuntimeProfiler.PrintSummary" title="Permalink to this definition">¶</a></dt> <dd><p>Display a summary of all timed entities. The timers are collected by id and -sorted by total runtime. If more than 10 entries are shown and the used id’s -have the form “GROUP::NAME”, an additional summary is shown with the total -times spent in each “GROUP”.</p> +sorted by total runtime. If more than 10 entries are shown and the used id’s +have the form “GROUP::NAME”, an additional summary is shown with the total +times spent in each “GROUP”.</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>max_to_show</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – if >= 0, show only top <cite>max_to_show</cite> entries.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>max_to_show</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – if >= 0, show only top <cite>max_to_show</cite> entries.</td> </tr> </tbody> </table> @@ -133,10 +146,10 @@ times spent in each “GROUP”.</p> <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">True, if <code class="docutils literal notranslate"><span class="pre">PM3_RUNTIME_PROFILING_LEVEL</span></code> > 0. Otherwise, profiling +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, if <code class="docutils literal"><span class="pre">PM3_RUNTIME_PROFILING_LEVEL</span></code> > 0. Otherwise, profiling is completely turned off.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -159,46 +172,12 @@ will fail miserably if timers are currently running.</p> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">core</span></code> - ProMod3 Core Functionality</a><ul> <li>Previous: <a href="geometry.html" title="previous chapter">Geometry functions</a></li> <li>Next: <a href="graph_minimizer.html" title="next chapter">Graph Minimizer</a></li> </ul></li> @@ -206,26 +185,23 @@ will fail miserably if timers are currently running.</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/core/runtime_profiling.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -234,11 +210,11 @@ will fail miserably if timers are currently running.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/core/runtime_profiling.rst.txt" + <a href="../_sources/core/runtime_profiling.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/core/setcompoundschemlib.html b/doc/html/core/setcompoundschemlib.html index 482366790a6d108add5ceb6b41e1c469c07178c3..7e638ed7070920d70ffd609d27ed378ef541dbf7 100644 --- a/doc/html/core/setcompoundschemlib.html +++ b/doc/html/core/setcompoundschemlib.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>SetCompoundsChemlib() — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="Documentation For Users" href="../users.html" /> <link rel="next" title="Contributing" href="../user_contributions.html" /> <link rel="prev" title="Graph Minimizer" href="graph_minimizer.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -35,8 +48,8 @@ <div class="body" role="main"> <div class="section" id="setcompoundschemlib"> -<h1><a class="reference internal" href="#promod3.SetCompoundsChemlib" title="promod3.SetCompoundsChemlib"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a><a class="headerlink" href="#setcompoundschemlib" title="Permalink to this headline">¶</a></h1> -<p>This is the one function defined on the highest level of ProMod3’s module +<h1><a class="reference internal" href="#promod3.SetCompoundsChemlib" title="promod3.SetCompoundsChemlib"><code class="xref py py-func docutils literal"><span class="pre">SetCompoundsChemlib()</span></code></a><a class="headerlink" href="#setcompoundschemlib" title="Permalink to this headline">¶</a></h1> +<p>This is the one function defined on the highest level of ProMod3‘s module hierarchy. It is used to load an OST compound library to avoid running Python code via the ancient OST wrapper. Applying this function at top-level, we can set a decent default by CMake plus the library is @@ -52,7 +65,7 @@ enabled globally.</p> <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>path_to_chemlib</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Points to the file to be loaded.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>path_to_chemlib</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Points to the file to be loaded.</td> </tr> </tbody> </table> @@ -66,41 +79,7 @@ enabled globally.</p> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> @@ -111,26 +90,23 @@ enabled globally.</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/core/setcompoundschemlib.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -139,11 +115,11 @@ enabled globally.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/core/setcompoundschemlib.rst.txt" + <a href="../_sources/core/setcompoundschemlib.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/dev_setup.html b/doc/html/dev_setup.html index 678dce82e4ff599616619f7cf29a9977cfc6f487..2ce0d2e68bdda8b310541a5cf0183c5f619f173e 100644 --- a/doc/html/dev_setup.html +++ b/doc/html/dev_setup.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>ProMod3 Setup — ProMod3 3.0.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" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="index.html" /> + <link rel="up" title="Documentation For Developers" href="developers.html" /> <link rel="next" title="Contributing" href="contributing.html" /> <link rel="prev" title="Documentation For Developers" href="developers.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -42,27 +55,27 @@ Git branches, the directory structure and tightly linked with this also CMake.</p> <div class="section" id="git-branches"> <span id="id1"></span><h2>Git Branches<a class="headerlink" href="#git-branches" title="Permalink to this headline">¶</a></h2> -<p>Basically we have two, sometimes three major branches. <code class="docutils literal notranslate"><span class="pre">master</span></code>, <code class="docutils literal notranslate"><span class="pre">develop</span></code> +<p>Basically we have two, sometimes three major branches. <code class="docutils literal"><span class="pre">master</span></code>, <code class="docutils literal"><span class="pre">develop</span></code> and in front of a new release a dedicated release branch. For bugs, hotfix branches of a rather short life are used.</p> -<p><code class="docutils literal notranslate"><span class="pre">master</span></code> is the stable branch, corresponding to a released version. It is +<p><code class="docutils literal"><span class="pre">master</span></code> is the stable branch, corresponding to a released version. It is solely fed by a release or hotfix branch.</p> -<p>Release branches, usually labelled <code class="docutils literal notranslate"><span class="pre">release-<VERSION></span></code>, are branched of -<code class="docutils literal notranslate"><span class="pre">develop</span></code> to fix features and thoroughly test them before a new major +<p>Release branches, usually labelled <code class="docutils literal"><span class="pre">release-<VERSION></span></code>, are branched of +<code class="docutils literal"><span class="pre">develop</span></code> to fix features and thoroughly test them before a new major release. Once everything looks trustworthy, such a branch is merged into -<code class="docutils literal notranslate"><span class="pre">master</span></code> and since there should be a few bug fixes in, <code class="docutils literal notranslate"><span class="pre">master</span></code> is merged -into <code class="docutils literal notranslate"><span class="pre">develop</span></code>. Bugs are fixed in dedicated hotfix branches, which should +<code class="docutils literal"><span class="pre">master</span></code> and since there should be a few bug fixes in, <code class="docutils literal"><span class="pre">master</span></code> is merged +into <code class="docutils literal"><span class="pre">develop</span></code>. Bugs are fixed in dedicated hotfix branches, which should only exist for the fix and testing itself. Those are forged from release -branches or <code class="docutils literal notranslate"><span class="pre">master</span></code>. If created for <code class="docutils literal notranslate"><span class="pre">master</span></code>, they are also merged back -into <code class="docutils literal notranslate"><span class="pre">develop</span></code>.</p> -<p>The <code class="docutils literal notranslate"><span class="pre">develop</span></code> branch exists to introduce new features up to the level of +branches or <code class="docutils literal"><span class="pre">master</span></code>. If created for <code class="docutils literal"><span class="pre">master</span></code>, they are also merged back +into <code class="docutils literal"><span class="pre">develop</span></code>.</p> +<p>The <code class="docutils literal"><span class="pre">develop</span></code> branch exists to introduce new features up to the level of whole projects extending ProMod3 and see that they work seamlessly together with the rest of the system. There do exist a couple of rather strict rules for what goes into this branch:</p> <ul class="simple"> <li>Your code must have been (briefly) reviewed by others</li> <li>There have to be unit tests</li> -<li>It needs to pass <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">check</span></code> <strong>including</strong> <code class="docutils literal notranslate"><span class="pre">doctest</span></code> & <code class="docutils literal notranslate"><span class="pre">linkcheck</span></code></li> +<li>It needs to pass <code class="docutils literal"><span class="pre">make</span> <span class="pre">check</span></code> <strong>including</strong> <code class="docutils literal"><span class="pre">doctest</span></code> & <code class="docutils literal"><span class="pre">linkcheck</span></code></li> <li>Your project needs documentation</li> <li>It must not break the ability of out-of-source builds</li> </ul> @@ -77,20 +90,20 @@ the end for you, fixing the problems.</p> <p>The place where you may get messy is your own Git branch within the ProMod3 repository. This is basically where you should develop your project. Once you created something that could go into a release, tidy things up according to the -rules from above and merge it into <code class="docutils literal notranslate"><span class="pre">develop</span></code>. From there it will +rules from above and merge it into <code class="docutils literal"><span class="pre">develop</span></code>. From there it will automatically find its way into the next release.</p> -<p>To set up your own branch, start from a current <code class="docutils literal notranslate"><span class="pre">develop</span></code> branch:</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> git checkout develop <span class="c1"># switch to branch develop</span> +<p>To set up your own branch, start from a current <code class="docutils literal"><span class="pre">develop</span></code> branch:</p> +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> git checkout develop <span class="c1"># switch to branch develop</span> <span class="gp">$</span> git pull --rebase <span class="c1"># update branch develop</span> <span class="gp">$</span> git checkout -b <BRANCHNAME> <span class="c1"># create branch <BRANCHNAME> and switch to it</span> </pre></div> </div> -<p>Over time, <code class="docutils literal notranslate"><span class="pre">develop</span></code> may recognise some changes, e.g. new features, which you +<p>Over time, <code class="docutils literal"><span class="pre">develop</span></code> may recognise some changes, e.g. new features, which you want to make use of in your project. Keeping your branch up to date is a three step process. Git does not allow updates on top of changed code, so either changes have to be committed, or if in the middle of implementing something, stored away temporarily. Making commits is straight forward:</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> git commit -m <span class="s1">'<DESCRIPTION>'</span> <span class="c1"># commit changes including a comment</span> +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> git commit -m <span class="s1">'<DESCRIPTION>'</span> <span class="c1"># commit changes including a comment</span> </pre></div> </div> <p>Hiding your changes away from Git just for updating files is a bit more @@ -101,15 +114,15 @@ you have changed, too, and stashed away, this may end up in a non-resolvable merge conflict and your changes are lost. Usually the log tells you, which files were recently modified. Moving all current changes to the stack is achieved by:</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> git stash save +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> git stash save </pre></div> </div> <p>To revive them, use:</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> git stash pop +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> git stash pop </pre></div> </div> -<p>After cleaning up your branch, switch to <code class="docutils literal notranslate"><span class="pre">develop</span></code>, update it and switch back:</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> git checkout develop +<p>After cleaning up your branch, switch to <code class="docutils literal"><span class="pre">develop</span></code>, update it and switch back:</p> +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> git checkout develop <span class="gp">$</span> git pull --rebase <span class="gp">$</span> git checkout <BRANCHNAME> </pre></div> @@ -117,12 +130,12 @@ achieved by:</p> <p>Now for actually updating your branch, there are two different ways: merging and rebasing. A rebase may only be done, if you <strong>never</strong> pushed your branch to the origin of the repository (otherwise you will mess up history, in the worst -case <code class="docutils literal notranslate"><span class="pre">develop</span></code> may be unusable once you merge):</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> git rebase develop +case <code class="docutils literal"><span class="pre">develop</span></code> may be unusable once you merge):</p> +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> git rebase develop </pre></div> </div> <p>For branches which are available to others, do a proper merge:</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> git merge develop +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> git merge develop </pre></div> </div> <p>This may require some manual conflict solving and will end up in a merge commit.</p> @@ -131,17 +144,17 @@ case <code class="docutils literal notranslate"><span class="pre">develop</span> <h2>Git Hooks<a class="headerlink" href="#git-hooks" title="Permalink to this headline">¶</a></h2> <p>Git hooks are scripts invoked by Git in connection to certain commands. ProMod3 currently provides one for <strong class="command">commit</strong>. It is installed by</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> cp extras/pre_commit/pre-commit .git/hooks/ +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> cp extras/pre_commit/pre-commit .git/hooks/ </pre></div> </div> <p>Its task is applying coding standards and doing a bunch of other checks on the files involved in a commit. Everything around the script is hosted in -<code class="file docutils literal notranslate"><span class="pre">extras/pre_commit/</span></code>. The checks can be manually executed with</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> python .git/hooks/pre-commit +<code class="file docutils literal"><span class="pre">extras/pre_commit/</span></code>. The checks can be manually executed with</p> +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> python .git/hooks/pre-commit </pre></div> </div> <p>If you ever have to skip the hook,</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> git commit --no-verify +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> git commit --no-verify </pre></div> </div> <p>does the trick. <strong>But</strong> checks are always run on the complete file containing @@ -154,20 +167,20 @@ PEP 8 sounds overly restrictive but it may help with performance and compatibility with Python 3. For ProMod3 it is also important that the code looks similar throughout the various modules. So do not disable a check because it just seems inconvenient or you do not understand why Pylint is croaking at -what looks like ‘working’ code. But then there are also cases where Pylint is +what looks like ‘working’ code. But then there are also cases where Pylint is not smart enough to cope with valid PEP 8 code. For changes with valid cause, the configuration flushed into Pylint may be found at -<code class="file docutils literal notranslate"><span class="pre">extras/pre_commit/pm3_csc/filecheck/pylintrc</span></code> and -<code class="file docutils literal notranslate"><span class="pre">extras/pre_commit/pm3_csc/filecheck/pylint-unittest-rc</span></code>. The latter one +<code class="file docutils literal"><span class="pre">extras/pre_commit/pm3_csc/filecheck/pylintrc</span></code> and +<code class="file docutils literal"><span class="pre">extras/pre_commit/pm3_csc/filecheck/pylint-unittest-rc</span></code>. The latter one is invoked on unit test code, where we may go a little bit less restrictive.</p> </div> <div class="section" id="directory-structure"> <h2>Directory Structure<a class="headerlink" href="#directory-structure" title="Permalink to this headline">¶</a></h2> -<p>The directory structure of the ProMod3 repository is supposed to ‘keep -everything together that belongs together’. That is, code, documentation and +<p>The directory structure of the ProMod3 repository is supposed to ‘keep +everything together that belongs together’. That is, code, documentation and extra data should be gathered on a per-module basis immediately in the repository root. The directory structure of your module should look like this:</p> -<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>promod3.git/ Project folder +<div class="highlight-text"><div class="highlight"><pre><span></span>promod3.git/ Project folder your_module/ Module directory CMakeLists.txt CMake configuration data/ Extra data (if needed) @@ -198,22 +211,22 @@ repository root. The directory structure of your module should look like this:</ </div> <p>Additionally to the module directories there are a few extra folders:</p> <ul class="simple"> -<li><code class="file docutils literal notranslate"><span class="pre">actions</span></code>: Scripts callable as <code class="docutils literal notranslate"><span class="pre">pm</span> <span class="pre"><ACTION_NAME></span></code>. +<li><code class="file docutils literal"><span class="pre">actions</span></code>: Scripts callable as <code class="docutils literal"><span class="pre">pm</span> <span class="pre"><ACTION_NAME></span></code>. See <a class="reference internal" href="contributing.html#how-to-start-your-own-action"><span class="std std-ref">here</span></a> for details.</li> -<li><code class="file docutils literal notranslate"><span class="pre">cmake_support</span></code>: Helper functions for CMake. +<li><code class="file docutils literal"><span class="pre">cmake_support</span></code>: Helper functions for CMake. See <a class="reference internal" href="cmake/index.html#pm3-cmake-doc"><span class="std std-ref">here</span></a> for details.</li> -<li><code class="file docutils literal notranslate"><span class="pre">doc</span></code>: High-level documentation, test scripts (<code class="file docutils literal notranslate"><span class="pre">doc/tests</span></code>) and a -copy of the generated html documentation (<code class="file docutils literal notranslate"><span class="pre">doc/html</span></code>). The latter must -be kept up-to-date at least on the <code class="docutils literal notranslate"><span class="pre">master</span></code> branch. +<li><code class="file docutils literal"><span class="pre">doc</span></code>: High-level documentation, test scripts (<code class="file docutils literal"><span class="pre">doc/tests</span></code>) and a +copy of the generated html documentation (<code class="file docutils literal"><span class="pre">doc/html</span></code>). The latter must +be kept up-to-date at least on the <code class="docutils literal"><span class="pre">master</span></code> branch. See <a class="reference internal" href="contributing.html#writing-documentation"><span class="std std-ref">here</span></a> for details.</li> -<li><code class="file docutils literal notranslate"><span class="pre">extras</span></code>: Extra data and information that doesn’t fit anywhere +<li><code class="file docutils literal"><span class="pre">extras</span></code>: Extra data and information that doesn’t fit anywhere else (e.g. Git hooks or scripts to recreate the binary files).</li> -<li><code class="file docutils literal notranslate"><span class="pre">scripts</span></code>: Input for scripts that end up in <code class="file docutils literal notranslate"><span class="pre">stage/bin</span></code></li> +<li><code class="file docutils literal"><span class="pre">scripts</span></code>: Input for scripts that end up in <code class="file docutils literal"><span class="pre">stage/bin</span></code></li> </ul> </div> <div class="section" id="cmake"> <h2>CMake<a class="headerlink" href="#cmake" title="Permalink to this headline">¶</a></h2> -<p>The attentive reader may have noticed all the <code class="file docutils literal notranslate"><span class="pre">CMakeLists.txt</span></code> files in +<p>The attentive reader may have noticed all the <code class="file docutils literal"><span class="pre">CMakeLists.txt</span></code> files in the directory structure. Those are needed to configure the build system, e.g. tell it which files have to be considered packaging, compiling, etc.. Also Python modules are declared there as well as which files belong to the @@ -226,12 +239,12 @@ CMake documentation all by yourself and on your own responsibility. You have been warned.</p> </div> <div class="section" id="the-stage-directory"> -<h2>The <code class="file docutils literal notranslate"><span class="pre">stage</span></code> Directory<a class="headerlink" href="#the-stage-directory" title="Permalink to this headline">¶</a></h2> -<p>Once you hit <strong class="command">make</strong> in your build directory, a directory <code class="file docutils literal notranslate"><span class="pre">stage</span></code> +<h2>The <code class="file docutils literal"><span class="pre">stage</span></code> Directory<a class="headerlink" href="#the-stage-directory" title="Permalink to this headline">¶</a></h2> +<p>Once you hit <strong class="command">make</strong> in your build directory, a directory <code class="file docutils literal"><span class="pre">stage</span></code> in this path will be populated. It just resembles a directory structure as of a usual Unix file system filled with the build products of ProMod3. The -<code class="file docutils literal notranslate"><span class="pre">stage</span></code> directory tree can already be utilised. You may import Python -modules from there, use the binaries from <code class="file docutils literal notranslate"><span class="pre">stage/bin</span></code>, etc..</p> +<code class="file docutils literal"><span class="pre">stage</span></code> directory tree can already be utilised. You may import Python +modules from there, use the binaries from <code class="file docutils literal"><span class="pre">stage/bin</span></code>, etc..</p> </div> </div> @@ -242,26 +255,17 @@ modules from there, use the binaries from <code class="file docutils literal not </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul> -<li class="toctree-l1"><a class="reference internal" href="users.html">Users</a></li> + <h3><a href="index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">ProMod3 Setup</a><ul> +<li><a class="reference internal" href="#git-branches">Git Branches</a></li> +<li><a class="reference internal" href="#git-hooks">Git Hooks</a></li> +<li><a class="reference internal" href="#directory-structure">Directory Structure</a></li> +<li><a class="reference internal" href="#cmake">CMake</a></li> +<li><a class="reference internal" href="#the-stage-directory">The <code class="file docutils literal"><span class="pre">stage</span></code> Directory</a></li> </ul> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li> +</li> </ul> - <div class="relations"> <h3>Related Topics</h3> <ul> @@ -273,26 +277,23 @@ modules from there, use the binaries from <code class="file docutils literal not </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="_sources/dev_setup.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -301,11 +302,11 @@ modules from there, use the binaries from <code class="file docutils literal not ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="_sources/dev_setup.rst.txt" + <a href="_sources/dev_setup.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/developers.html b/doc/html/developers.html index 97269f313208a80681449537ae4643514c61a68c..0105fb59fa8f87c8f46088308f34097fb1fde1a2 100644 --- a/doc/html/developers.html +++ b/doc/html/developers.html @@ -1,21 +1,32 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Documentation For Developers — ProMod3 3.0.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" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="index.html" /> <link rel="next" title="ProMod3 Setup" href="dev_setup.html" /> <link rel="prev" title="Contributing" href="user_contributions.html" /> @@ -24,7 +35,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -47,7 +59,7 @@ new features.</p> <li class="toctree-l2"><a class="reference internal" href="dev_setup.html#git-hooks">Git Hooks</a></li> <li class="toctree-l2"><a class="reference internal" href="dev_setup.html#directory-structure">Directory Structure</a></li> <li class="toctree-l2"><a class="reference internal" href="dev_setup.html#cmake">CMake</a></li> -<li class="toctree-l2"><a class="reference internal" href="dev_setup.html#the-stage-directory">The <code class="file docutils literal notranslate"><span class="pre">stage</span></code> Directory</a></li> +<li class="toctree-l2"><a class="reference internal" href="dev_setup.html#the-stage-directory">The <code class="file docutils literal"><span class="pre">stage</span></code> Directory</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a><ul> @@ -61,12 +73,12 @@ new features.</p> <li class="toctree-l2"><a class="reference internal" href="contributing.html#third-party-contributions-license-issues">Third Party Contributions (License Issues)</a></li> </ul> </li> -<li class="toctree-l1"><a class="reference internal" href="actions/index_dev.html"><code class="docutils literal notranslate"><span class="pre">test_actions</span></code> - Testing Actions</a><ul> +<li class="toctree-l1"><a class="reference internal" href="actions/index_dev.html"><code class="docutils literal"><span class="pre">test_actions</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> </ul> </li> -<li class="toctree-l1"><a class="reference internal" href="cmake/index.html">ProMod3’s Share Of CMake</a><ul> +<li class="toctree-l1"><a class="reference internal" href="cmake/index.html">ProMod3‘s Share Of CMake</a><ul> <li class="toctree-l2"><a class="reference internal" href="cmake/index.html#introduction">Introduction</a></li> <li class="toctree-l2"><a class="reference internal" href="cmake/index.html#functions-for-module-action-maintenance">Functions For Module/ Action Maintenance</a></li> </ul> @@ -88,28 +100,7 @@ new features.</p> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul> -<li class="toctree-l1"><a class="reference internal" href="users.html">Users</a></li> -</ul> -<ul class="current"> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="index.html">Documentation overview</a><ul> @@ -118,26 +109,23 @@ new features.</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="_sources/developers.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -146,11 +134,11 @@ new features.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="_sources/developers.rst.txt" + <a href="_sources/developers.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/genindex.html b/doc/html/genindex.html index e55bf73c158b355213f82a752f774d6deca624a5..017b3982636d84c192d45bbaabe7fce5b19acde7 100644 --- a/doc/html/genindex.html +++ b/doc/html/genindex.html @@ -1,29 +1,41 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Index — ProMod3 3.0.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" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="#" /> <link rel="search" title="Search" href="search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="index.html" /> <link rel="stylesheet" href="_static/custom.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -64,2228 +76,3984 @@ </div> <h2 id="Symbols">Symbols</h2> <table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li> + <td style="width: 33%" valign="top"><dl> + + <dt> -f, --energy_function + </dt> - <ul> - <li><a href="actions/index.html#cmdoption-f">command line option</a> -</li> - </ul></li> - <li> + <dd><dl> + + <dt><a href="actions/index.html#cmdoption-f">command line option</a> + </dt> + + </dl></dd> + + <dt> -i, --backbone-independent + </dt> - <ul> - <li><a href="actions/index.html#cmdoption-i">command line option</a> -</li> - </ul></li> - <li> + <dd><dl> + + <dt><a href="actions/index.html#cmdoption-i">command line option</a> + </dt> + + </dl></dd> + + <dt> -k, --keep-sidechains + </dt> - <ul> - <li><a href="actions/index.html#cmdoption-k">command line option</a> -</li> - </ul></li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li> + <dd><dl> + + <dt><a href="actions/index.html#cmdoption-k">command line option</a> + </dt> + + </dl></dd> + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt> -n, --no-disulfids + </dt> - <ul> - <li><a href="actions/index.html#cmdoption-n">command line option</a> -</li> - </ul></li> - <li> + <dd><dl> + + <dt><a href="actions/index.html#cmdoption-n">command line option</a> + </dt> + + </dl></dd> + + <dt> -r, --rigid-rotamers + </dt> - <ul> - <li><a href="actions/index.html#cmdoption-r">command line option</a> -</li> - </ul></li> - <li> + <dd><dl> + + <dt><a href="actions/index.html#cmdoption-r">command line option</a> + </dt> + + </dl></dd> + + <dt> -s, --no-subrotamer-optimization + </dt> - <ul> - <li><a href="actions/index.html#cmdoption-s">command line option</a> -</li> - </ul></li> - </ul></td> + <dd><dl> + + <dt><a href="actions/index.html#cmdoption-s">command line option</a> + </dt> + + </dl></dd> + </dl></td> </tr></table> <h2 id="_">_</h2> <table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="loop/structure_db.html#promod3.loop.Fragger.__getitem__">__getitem__() (promod3.loop.Fragger method)</a> - - <ul> - <li><a href="loop/structure_db.html#promod3.loop.FraggerMap.__getitem__">(promod3.loop.FraggerMap method)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomOverallScorer.__getitem__">(promod3.scoring.AllAtomOverallScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer.__getitem__">(promod3.scoring.BackboneOverallScorer method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.__getitem__">(promod3.sidechain.FRMRotamer method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.__getitem__">(promod3.sidechain.FRMRotamerGroup method)</a> -</li> - <li><a href="sidechain/frame.html#promod3.sidechain.FrameResidue.__getitem__">(promod3.sidechain.FrameResidue method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.__getitem__">(promod3.sidechain.RRMRotamer method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup.__getitem__">(promod3.sidechain.RRMRotamerGroup method)</a> -</li> - </ul></li> - <li><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.__init__">__init__() (promod3.core.pm3argparse.PM3ArgumentParser method)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.__len__">__len__() (promod3.loop.BackboneList method)</a> - - <ul> - <li><a href="loop/structure_db.html#promod3.loop.Fragger.__len__">(promod3.loop.Fragger method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.__len__">(promod3.loop.PsipredPrediction method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.__len__">(promod3.sidechain.FRMRotamer method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.__len__">(promod3.sidechain.FRMRotamerGroup method)</a> -</li> - <li><a href="sidechain/frame.html#promod3.sidechain.FrameResidue.__len__">(promod3.sidechain.FrameResidue method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.__len__">(promod3.sidechain.RRMRotamer method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup.__len__">(promod3.sidechain.RRMRotamerGroup method)</a> -</li> - </ul></li> - <li><a href="loop/structure_db.html#promod3.loop.FraggerMap.__setitem__">__setitem__() (promod3.loop.FraggerMap method)</a> - - <ul> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomOverallScorer.__setitem__">(promod3.scoring.AllAtomOverallScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer.__setitem__">(promod3.scoring.BackboneOverallScorer method)</a> -</li> - </ul></li> - </ul></td> + <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="loop/structure_db.html#promod3.loop.FraggerMap.__getitem__">(promod3.loop.FraggerMap method)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomOverallScorer.__getitem__">(promod3.scoring.AllAtomOverallScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer.__getitem__">(promod3.scoring.BackboneOverallScorer method)</a> + </dt> + + + <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/backbone.html#promod3.loop.BackboneList.__len__">__len__() (promod3.loop.BackboneList method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/structure_db.html#promod3.loop.Fragger.__len__">(promod3.loop.Fragger method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.__len__">(promod3.loop.PsipredPrediction method)</a> + </dt> + + + <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> + + <dt><a href="loop/structure_db.html#promod3.loop.FraggerMap.__setitem__">__setitem__() (promod3.loop.FraggerMap method)</a> + </dt> + + <dd><dl> + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomOverallScorer.__setitem__">(promod3.scoring.AllAtomOverallScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer.__setitem__">(promod3.scoring.BackboneOverallScorer 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%; vertical-align: top;"><ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.AAToRotID">AAToRotID() (in module promod3.sidechain)</a> -</li> - <li><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.action">action (promod3.core.pm3argparse.PM3ArgumentParser attribute)</a> -</li> - <li><a href="actions/index_dev.html#test_actions.ActionTestCase">ActionTestCase (class in test_actions)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.Add">Add() (promod3.loop.PsipredPrediction method)</a> - - <ul> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.Add">(promod3.modelling.LoopCandidates method)</a> -</li> - </ul></li> - <li> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="sidechain/rotamer.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> + + + <dt><a href="actions/index_dev.html#test_actions.ActionTestCase">ActionTestCase (class in test_actions)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.Add">Add() (promod3.loop.PsipredPrediction method)</a> + </dt> + + <dd><dl> + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.Add">(promod3.modelling.LoopCandidates method)</a> + </dt> + + </dl></dd> + + <dt> add_doc_dependency + </dt> - <ul> - <li><a href="cmake/index.html#command:add_doc_dependency"><strong>command</strong></a> -</li> - </ul></li> - <li> + <dd><dl> + + <dt><a href="cmake/index.html#command:add_doc_dependency"><strong>command</strong></a> + </dt> + + </dl></dd> + + <dt> add_doc_source + </dt> - <ul> - <li><a href="cmake/index.html#index-0-command:add_doc_source">command</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> -</li> - </ul></li> - <li><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.AddAlignment">AddAlignment() (promod3.core.pm3argparse.PM3ArgumentParser method)</a> -</li> - <li><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer.AddCARestraint">AddCARestraint() (promod3.modelling.BackboneRelaxer method)</a> -</li> - <li><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer.AddCBRestraint">AddCBRestraint() (promod3.modelling.BackboneRelaxer method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.AddCoordinates">AddCoordinates() (promod3.loop.StructureDB method)</a> -</li> - <li><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer.AddCRestraint">AddCRestraint() (promod3.modelling.BackboneRelaxer method)</a> -</li> - <li><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.AddEdge">AddEdge() (promod3.core.GraphMinimizer method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.AddFragmentInfo">AddFragmentInfo() (promod3.modelling.LoopCandidates method)</a> -</li> - <li><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.AddFragments">AddFragments() (promod3.core.pm3argparse.PM3ArgumentParser method)</a> - - <ul> - <li><a href="loop/structure_db.html#promod3.loop.FragDB.AddFragments">(promod3.loop.FragDB method)</a> -</li> - </ul></li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.AddFrameEnergy">AddFrameEnergy() (promod3.sidechain.FRMRotamer method)</a>, <a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.AddFrameEnergy">[1]</a> - - <ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.AddFrameEnergy">(promod3.sidechain.FRMRotamerGroup method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.AddFrameEnergy">(promod3.sidechain.RRMRotamer method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup.AddFrameEnergy">(promod3.sidechain.RRMRotamerGroup method)</a> -</li> - </ul></li> - <li><a href="modelling/pipeline.html#promod3.modelling.AddModellingIssue">AddModellingIssue() (in module promod3.modelling)</a> -</li> - <li><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.AddNode">AddNode() (promod3.core.GraphMinimizer method)</a> -</li> - <li><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer.AddNRestraint">AddNRestraint() (promod3.modelling.BackboneRelaxer method)</a> -</li> - <li><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer.AddORestraint">AddORestraint() (promod3.modelling.BackboneRelaxer method)</a> -</li> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.AddPairwiseFunction">AddPairwiseFunction() (promod3.scoring.BackboneScoreEnv method)</a> -</li> - <li><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.AddProfile">AddProfile() (promod3.core.pm3argparse.PM3ArgumentParser method)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.AddRotamer">AddRotamer() (promod3.sidechain.BBDepRotamerLib method)</a> - - <ul> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib.AddRotamer">(promod3.sidechain.RotamerLib method)</a> -</li> - </ul></li> - <li><a href="loop/structure_db.html#promod3.loop.Fragger.AddSeqIDParameters">AddSeqIDParameters() (promod3.loop.Fragger method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.Fragger.AddSeqSimParameters">AddSeqSimParameters() (promod3.loop.Fragger method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.Fragger.AddSequenceProfileParameters">AddSequenceProfileParameters() (promod3.loop.Fragger method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.Fragger.AddSSAgreeParameters">AddSSAgreeParameters() (promod3.loop.Fragger method)</a> -</li> - <li><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.AddStructure">AddStructure() (promod3.core.pm3argparse.PM3ArgumentParser method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.Fragger.AddStructureProfileParameters">AddStructureProfileParameters() (promod3.loop.Fragger method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.AddSubrotamerDefinition">AddSubrotamerDefinition() (promod3.sidechain.FRMRotamer method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.Fragger.AddTorsionProbabilityParameters">AddTorsionProbabilityParameters() (promod3.loop.Fragger method)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.after">after (promod3.modelling.StructuralGap attribute)</a> -</li> - <li><a href="modelling/algorithms.html#promod3.modelling.MotifMatch.alignment">alignment (promod3.modelling.MotifMatch attribute)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.all_atom_scorer">all_atom_scorer (promod3.modelling.ModellingHandle attribute)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.all_atom_scorer_env">all_atom_scorer_env (promod3.modelling.ModellingHandle attribute)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.all_atom_sidechain_env">all_atom_sidechain_env (promod3.modelling.ModellingHandle attribute)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomEnvPositions.all_pos">all_pos (promod3.loop.AllAtomEnvPositions attribute)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomClashScorer">AllAtomClashScorer (class in promod3.scoring)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomEnv">AllAtomEnv (class in promod3.loop)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomEnvPositions">AllAtomEnvPositions (class in promod3.loop)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer">AllAtomInteractionScorer (class in promod3.scoring)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomOverallScorer">AllAtomOverallScorer (class in promod3.scoring)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer">AllAtomPackingScorer (class in promod3.scoring)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions">AllAtomPositions (class in promod3.loop)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.AllAtomPositions">AllAtomPositions() (promod3.loop.AllAtomPositions method)</a>, <a href="loop/all_atom.html#promod3.loop.AllAtomPositions.AllAtomPositions">[1]</a>, <a href="loop/all_atom.html#promod3.loop.AllAtomPositions.AllAtomPositions">[2]</a>, <a href="loop/all_atom.html#promod3.loop.AllAtomPositions.AllAtomPositions">[3]</a> -</li> - <li><a href="modelling/loop_closing.html#promod3.modelling.AllAtomRelaxer">AllAtomRelaxer (class in promod3.modelling)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomScorer">AllAtomScorer (class in promod3.scoring)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidAtom">AminoAcidAtom (class in promod3.loop)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidHydrogen">AminoAcidHydrogen (class in promod3.loop)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup">AminoAcidLookup (class in promod3.loop)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicAngleInfo.angle">angle (promod3.loop.ForcefieldHarmonicAngleInfo attribute)</a> - - <ul> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicImproperInfo.angle">(promod3.loop.ForcefieldHarmonicImproperInfo attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldUreyBradleyAngleInfo.angle">(promod3.loop.ForcefieldUreyBradleyAngleInfo attribute)</a> -</li> - </ul></li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldUreyBradleyAngleInfo.angle_force_constant">angle_force_constant (promod3.loop.ForcefieldUreyBradleyAngleInfo attribute)</a> -</li> - <li><a href="core/geometry.html#promod3.core.StemPairOrientation.angle_four">angle_four (promod3.core.StemPairOrientation attribute)</a> -</li> - <li><a href="core/geometry.html#promod3.core.StemPairOrientation.angle_one">angle_one (promod3.core.StemPairOrientation attribute)</a> -</li> - <li><a href="core/geometry.html#promod3.core.StemPairOrientation.angle_three">angle_three (promod3.core.StemPairOrientation attribute)</a> -</li> - <li><a href="core/geometry.html#promod3.core.StemPairOrientation.angle_two">angle_two (promod3.core.StemPairOrientation attribute)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.append">append() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.ApplyCCD">ApplyCCD() (promod3.modelling.LoopCandidates method)</a> -</li> - <li><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.ApplyDEE">ApplyDEE() (promod3.core.GraphMinimizer method)</a> -</li> - <li><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.ApplyEdgeDecomposition">ApplyEdgeDecomposition() (promod3.core.GraphMinimizer method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.ApplyKIC">ApplyKIC() (promod3.modelling.LoopCandidates method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.ApplyOnResidue">ApplyOnResidue() (promod3.sidechain.FRMRotamer method)</a>, <a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.ApplyOnResidue">[1]</a> - - <ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.ApplyOnResidue">(promod3.sidechain.FRMRotamerGroup method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.ApplyOnResidue">(promod3.sidechain.RRMRotamer method)</a>, <a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.ApplyOnResidue">[1]</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup.ApplyOnResidue">(promod3.sidechain.RRMRotamerGroup method)</a> -</li> - </ul></li> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.ApplyPairwiseFunction">ApplyPairwiseFunction() (promod3.scoring.BackboneScoreEnv method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.ApplySelfEnergyThresh">ApplySelfEnergyThresh() (promod3.sidechain.FRMRotamerGroup method)</a> - - <ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup.ApplySelfEnergyThresh">(promod3.sidechain.RRMRotamerGroup method)</a> -</li> - </ul></li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.ApplyTransform">ApplyTransform() (promod3.loop.BackboneList method)</a>, <a href="loop/backbone.html#promod3.loop.BackboneList.ApplyTransform">[1]</a>, <a href="loop/backbone.html#promod3.loop.BackboneList.ApplyTransform">[2]</a> -</li> - <li><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser">AssembleParser() (promod3.core.pm3argparse.PM3ArgumentParser method)</a> -</li> - <li><a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.AssignInternalEnergies">AssignInternalEnergies() (promod3.sidechain.RotamerConstructor method)</a> - - <ul> - <li><a href="sidechain/rotamer_constructor.html#promod3.sidechain.SCWRL3RotamerConstructor.AssignInternalEnergies">(promod3.sidechain.SCWRL3RotamerConstructor method)</a> -</li> - <li><a href="sidechain/rotamer_constructor.html#promod3.sidechain.SCWRL4RotamerConstructor.AssignInternalEnergies">(promod3.sidechain.SCWRL4RotamerConstructor method)</a> -</li> - <li><a href="sidechain/rotamer_constructor.html#promod3.sidechain.VINARotamerConstructor.AssignInternalEnergies">(promod3.sidechain.VINARotamerConstructor method)</a> -</li> - </ul></li> - <li><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.AStarSolve">AStarSolve() (promod3.core.GraphMinimizer method)</a> -</li> - <li><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructor.AttachEnvironment">AttachEnvironment() (promod3.modelling.SidechainReconstructor method)</a> - - <ul> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomOverallScorer.AttachEnvironment">(promod3.scoring.AllAtomOverallScorer method)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomScorer.AttachEnvironment">(promod3.scoring.AllAtomScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer.AttachEnvironment">(promod3.scoring.BackboneOverallScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneScorer.AttachEnvironment">(promod3.scoring.BackboneScorer method)</a> -</li> - </ul></li> - </ul></td> -</tr></table> + <dd><dl> + + <dt><a href="cmake/index.html#index-0-command:add_doc_source">command</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> -<h2 id="B">B</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.backbone_scorer">backbone_scorer (promod3.modelling.ModellingHandle attribute)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.backbone_scorer_env">backbone_scorer_env (promod3.modelling.ModellingHandle attribute)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList">BackboneList (class in promod3.loop)</a> -</li> - <li><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>, <a href="loop/backbone.html#promod3.loop.BackboneList.BackboneList">[4]</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer">BackboneOverallScorer (class in promod3.scoring)</a> -</li> - <li><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer">BackboneRelaxer (class in promod3.modelling)</a>, <a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer">[1]</a> -</li> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv">BackboneScoreEnv (class in promod3.scoring)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneScorer">BackboneScorer (class in promod3.scoring)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib">BBDepRotamerLib (class in promod3.sidechain)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.before">before (promod3.modelling.StructuralGap attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldUreyBradleyAngleInfo.bond_force_constant">bond_force_constant (promod3.loop.ForcefieldUreyBradleyAngleInfo attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldBondInfo.bond_length">bond_length (promod3.loop.ForcefieldBondInfo attribute)</a> - - <ul> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldUreyBradleyAngleInfo.bond_length">(promod3.loop.ForcefieldUreyBradleyAngleInfo attribute)</a> -</li> - </ul></li> - <li><a href="modelling/pipeline.html#promod3.modelling.BuildFromRawModel">BuildFromRawModel() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.BuildRawModel">BuildRawModel() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.BuildSidechains">BuildSidechains() (in module promod3.modelling)</a> -</li> - </ul></td> -</tr></table> + </dl></dd> + + <dt><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.AddAlignment">AddAlignment() (promod3.core.pm3argparse.PM3ArgumentParser method)</a> + </dt> -<h2 id="C">C</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="core/geometry.html#promod3.core.StemCoords.c_coord">c_coord (promod3.core.StemCoords attribute)</a> -</li> - <li><a href="core/geometry.html#promod3.core.StemCoords.ca_coord">ca_coord (promod3.core.StemCoords attribute)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer.Calculate">Calculate() (promod3.scoring.BackboneOverallScorer method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.CalculateAllAtomScores">CalculateAllAtomScores() (promod3.modelling.LoopCandidates method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.CalculateBackboneScores">CalculateBackboneScores() (promod3.modelling.LoopCandidates method)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomOverallScorer.CalculateLinearCombination">CalculateLinearCombination() (promod3.scoring.AllAtomOverallScorer method)</a> - - <ul> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer.CalculateLinearCombination">(promod3.scoring.BackboneOverallScorer method)</a> -</li> - </ul></li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomScorer.CalculateScore">CalculateScore() (promod3.scoring.AllAtomScorer method)</a> - - <ul> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneScorer.CalculateScore">(promod3.scoring.BackboneScorer method)</a> -</li> - </ul></li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomScorer.CalculateScoreProfile">CalculateScoreProfile() (promod3.scoring.AllAtomScorer method)</a> - - <ul> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneScorer.CalculateScoreProfile">(promod3.scoring.BackboneScorer method)</a> -</li> - </ul></li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.CalculateSequenceProfileScores">CalculateSequenceProfileScores() (promod3.modelling.LoopCandidates method)</a>, <a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.CalculateSequenceProfileScores">[1]</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.CalculateStemRMSDs">CalculateStemRMSDs() (promod3.modelling.LoopCandidates method)</a>, <a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.CalculateStemRMSDs">[1]</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.CalculateStructureProfileScores">CalculateStructureProfileScores() (promod3.modelling.LoopCandidates method)</a>, <a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.CalculateStructureProfileScores">[1]</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.CARMSD">CARMSD() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer">CBetaScorer (class in promod3.scoring)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer">CBPackingScorer (class in promod3.scoring)</a> -</li> - <li><a href="modelling/loop_closing.html#promod3.modelling.CCD">CCD (class in promod3.modelling)</a> -</li> - <li><a href="modelling/loop_closing.html#promod3.modelling.CCD.CCD">CCD() (promod3.modelling.CCD method)</a>, <a href="modelling/loop_closing.html#promod3.modelling.CCD.CCD">[1]</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.CCDCloser">CCDCloser (class in promod3.modelling)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.FragmentInfo.chain_index">chain_index (promod3.loop.FragmentInfo attribute)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.CoordInfo.chain_name">chain_name (promod3.loop.CoordInfo attribute)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.CheckFinalModel">CheckFinalModel() (in module promod3.modelling)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.chi1">chi1 (promod3.sidechain.RotamerLibEntry attribute)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.chi2">chi2 (promod3.sidechain.RotamerLibEntry attribute)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.chi3">chi3 (promod3.sidechain.RotamerLibEntry attribute)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.chi4">chi4 (promod3.sidechain.RotamerLibEntry attribute)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.ClashScorer">ClashScorer (class in promod3.scoring)</a> -</li> - <li><a href="core/runtime_profiling.html#promod3.core.StaticRuntimeProfiler.Clear">Clear() (promod3.core.StaticRuntimeProfiler static method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.clear">clear() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomEnv.ClearEnvironment">ClearEnvironment() (promod3.loop.AllAtomEnv method)</a> - - <ul> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.ClearEnvironment">(promod3.scoring.BackboneScoreEnv method)</a> -</li> - </ul></li> - <li><a href="modelling/gap_handling.html#promod3.modelling.ClearGaps">ClearGaps() (in module promod3.modelling)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.ClearPos">ClearPos() (promod3.loop.AllAtomPositions method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.ClearResidue">ClearResidue() (promod3.loop.AllAtomPositions method)</a> -</li> - <li><a href="modelling/loop_closing.html#promod3.modelling.CCD.Close">Close() (promod3.modelling.CCD method)</a> - - <ul> - <li><a href="modelling/monte_carlo.html#promod3.modelling.CCDCloser.Close">(promod3.modelling.CCDCloser method)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.CTerminalCloser.Close">(promod3.modelling.CTerminalCloser method)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.CloserBase.Close">(promod3.modelling.CloserBase method)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.DeNovoCloser.Close">(promod3.modelling.DeNovoCloser method)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.DirtyCCDCloser.Close">(promod3.modelling.DirtyCCDCloser method)</a> -</li> - <li><a href="modelling/loop_closing.html#promod3.modelling.KIC.Close">(promod3.modelling.KIC method)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.KICCloser.Close">(promod3.modelling.KICCloser method)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.NTerminalCloser.Close">(promod3.modelling.NTerminalCloser method)</a> -</li> - </ul></li> - <li><a href="modelling/pipeline.html#promod3.modelling.CloseGaps">CloseGaps() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.CloseLargeDeletions">CloseLargeDeletions() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.CloserBase">CloserBase (class in promod3.modelling)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.CloseSmallDeletions">CloseSmallDeletions() (in module promod3.modelling)</a> -</li> - <li> - command + + <dt><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer.AddCARestraint">AddCARestraint() (promod3.modelling.BackboneRelaxer method)</a> + </dt> - <ul> - <li><a href="cmake/index.html#command:add_doc_dependency"><strong>add_doc_dependency</strong></a> -</li> - <li><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> -</li> - <li><a href="cmake/index.html#command:convert_module_data"><strong>convert_module_data</strong></a> -</li> - <li><a href="cmake/index.html#command:module"><strong>module</strong></a> -</li> - <li><a href="contributing.html#index-0-command:pm_action">pm_action</a>, <a href="cmake/index.html#command:pm_action"><strong>[1]</strong></a> -</li> - <li><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> -</li> - <li><a href="cmake/index.html#command:pymod"><strong>pymod</strong></a> -</li> - </ul></li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li> - command line option + + <dt><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer.AddCBRestraint">AddCBRestraint() (promod3.modelling.BackboneRelaxer method)</a> + </dt> - <ul> - <li><a href="actions/index.html#cmdoption-f">-f, --energy_function</a> -</li> - <li><a href="actions/index.html#cmdoption-i">-i, --backbone-independent</a> -</li> - <li><a href="actions/index.html#cmdoption-k">-k, --keep-sidechains</a> -</li> - <li><a href="actions/index.html#cmdoption-n">-n, --no-disulfids</a> -</li> - <li><a href="actions/index.html#cmdoption-r">-r, --rigid-rotamers</a> -</li> - <li><a href="actions/index.html#cmdoption-s">-s, --no-subrotamer-optimization</a> -</li> - </ul></li> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.ConstraintFunction">ConstraintFunction (class in promod3.scoring)</a> -</li> - <li><a href="core/geometry.html#promod3.core.ConstructAtomPos">ConstructAtomPos() (in module promod3.core)</a> -</li> - <li><a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.ConstructBackboneFrameResidue">ConstructBackboneFrameResidue() (promod3.sidechain.RotamerConstructor method)</a>, <a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.ConstructBackboneFrameResidue">[1]</a> -</li> - <li><a href="core/geometry.html#promod3.core.ConstructCBetaPos">ConstructCBetaPos() (in module promod3.core)</a> -</li> - <li><a href="core/geometry.html#promod3.core.ConstructCTerminalOxygens">ConstructCTerminalOxygens() (in module promod3.core)</a> -</li> - <li><a href="sidechain/rotamer_constructor.html#promod3.sidechain.SCWRL4RotamerConstructor.ConstructFrameResidue">ConstructFrameResidue() (promod3.sidechain.SCWRL4RotamerConstructor method)</a> -</li> - <li><a href="sidechain/rotamer_constructor.html#promod3.sidechain.SCWRL4RotamerConstructor.ConstructFrameResidueHeuristic">ConstructFrameResidueHeuristic() (promod3.sidechain.SCWRL4RotamerConstructor method)</a> - - <ul> - <li><a href="sidechain/rotamer_constructor.html#promod3.sidechain.VINARotamerConstructor.ConstructFrameResidueHeuristic">(promod3.sidechain.VINARotamerConstructor method)</a> -</li> - </ul></li> - <li><a href="sidechain/rotamer_constructor.html#promod3.sidechain.VINARotamerConstructor.ConstructFRMRotamerHeuristic">ConstructFRMRotamerHeuristic() (promod3.sidechain.VINARotamerConstructor method)</a> -</li> - <li><a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.ConstructRRMRotamerGroup">ConstructRRMRotamerGroup() (promod3.sidechain.RotamerConstructor method)</a>, <a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.ConstructRRMRotamerGroup">[1]</a>, <a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.ConstructRRMRotamerGroup">[2]</a>, <a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.ConstructRRMRotamerGroup">[3]</a> -</li> - <li><a href="sidechain/rotamer_constructor.html#promod3.sidechain.VINARotamerConstructor.ConstructRRMRotamerHeuristic">ConstructRRMRotamerHeuristic() (promod3.sidechain.VINARotamerConstructor method)</a> -</li> - <li><a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.ConstructSidechainFrameResidue">ConstructSidechainFrameResidue() (promod3.sidechain.RotamerConstructor method)</a>, <a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.ConstructSidechainFrameResidue">[1]</a> -</li> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.ContactFunction">ContactFunction (class in promod3.scoring)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.FraggerMap.Contains">Contains() (promod3.loop.FraggerMap method)</a> - - <ul> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.Contains">(promod3.modelling.ScoreContainer method)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomOverallScorer.Contains">(promod3.scoring.AllAtomOverallScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer.Contains">(promod3.scoring.BackboneOverallScorer method)</a> -</li> - </ul></li> - <li> - convert_module_data + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.AddCoordinates">AddCoordinates() (promod3.loop.StructureDB method)</a> + </dt> - <ul> - <li><a href="cmake/index.html#command:convert_module_data"><strong>command</strong></a> -</li> - </ul></li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.CoolerBase">CoolerBase (class in promod3.modelling)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.CoordInfo">CoordInfo (class in promod3.loop)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.Copy">Copy() (promod3.loop.AllAtomPositions method)</a> - - <ul> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.Copy">(promod3.loop.BackboneList method)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.Copy">(promod3.modelling.ModellingHandle method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.Copy">(promod3.modelling.ScoreContainer method)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.Copy">(promod3.modelling.StructuralGap method)</a> -</li> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.Copy">(promod3.scoring.BackboneScoreEnv method)</a> -</li> - </ul></li> - <li><a href="modelling/gap_handling.html#promod3.modelling.CountEnclosedGaps">CountEnclosedGaps() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.CountEnclosedInsertions">CountEnclosedInsertions() (in module promod3.modelling)</a> -</li> - <li><a href="sidechain/graph.html#promod3.sidechain.RotamerGraph.CreateFromFRMList">CreateFromFRMList() (promod3.sidechain.RotamerGraph static method)</a> -</li> - <li><a href="sidechain/graph.html#promod3.sidechain.RotamerGraph.CreateFromRRMList">CreateFromRRMList() (promod3.sidechain.RotamerGraph static method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.CreateSCWRL3Particle">CreateSCWRL3Particle() (in module promod3.sidechain)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.CreateSCWRL4Particle">CreateSCWRL4Particle() (in module promod3.sidechain)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.CreateVINAParticle">CreateVINAParticle() (in module promod3.sidechain)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.CTerminalCloser">CTerminalCloser (class in promod3.modelling)</a> -</li> - </ul></td> -</tr></table> + + <dt><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer.AddCRestraint">AddCRestraint() (promod3.modelling.BackboneRelaxer method)</a> + </dt> -<h2 id="D">D</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="modelling/monte_carlo.html#promod3.modelling.DeNovoCloser">DeNovoCloser (class in promod3.modelling)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.DihedralConfiguration">DihedralConfiguration (class in promod3.sidechain)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.DirtyCCDCloser">DirtyCCDCloser (class in promod3.modelling)</a> -</li> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.DiscoContainer">DiscoContainer (class in promod3.scoring)</a> -</li> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.DiscoContainer.AddStructuralInfo">DiscoContainer.AddStructuralInfo() (in module promod3.scoring)</a> -</li> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.DiscoContainer.AttachConstraints">DiscoContainer.AttachConstraints() (in module promod3.scoring)</a> -</li> - <li><a href="core/geometry.html#promod3.core.StemPairOrientation.distance">distance (promod3.core.StemPairOrientation attribute)</a> -</li> - <li><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData.disulfid_bridges">disulfid_bridges (promod3.modelling.SidechainReconstructionData attribute)</a> -</li> - <li><a href="sidechain/disulfid.html#promod3.sidechain.DisulfidScore">DisulfidScore() (in module promod3.sidechain)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomClashScorer.DoExternalScores">DoExternalScores() (promod3.scoring.AllAtomClashScorer method)</a> - - <ul> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer.DoExternalScores">(promod3.scoring.AllAtomInteractionScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer.DoExternalScores">(promod3.scoring.CBetaScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.ClashScorer.DoExternalScores">(promod3.scoring.ClashScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer.DoExternalScores">(promod3.scoring.HBondScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.PairwiseScorer.DoExternalScores">(promod3.scoring.PairwiseScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer.DoExternalScores">(promod3.scoring.ReducedScorer method)</a> -</li> - </ul></li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomClashScorer.DoInternalScores">DoInternalScores() (promod3.scoring.AllAtomClashScorer method)</a> - - <ul> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer.DoInternalScores">(promod3.scoring.AllAtomInteractionScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer.DoInternalScores">(promod3.scoring.CBetaScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.ClashScorer.DoInternalScores">(promod3.scoring.ClashScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer.DoInternalScores">(promod3.scoring.HBondScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.PairwiseScorer.DoInternalScores">(promod3.scoring.PairwiseScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer.DoInternalScores">(promod3.scoring.ReducedScorer method)</a> -</li> - </ul></li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomClashScorer.DoNormalize">DoNormalize() (promod3.scoring.AllAtomClashScorer method)</a> - - <ul> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer.DoNormalize">(promod3.scoring.AllAtomInteractionScorer method)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer.DoNormalize">(promod3.scoring.AllAtomPackingScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer.DoNormalize">(promod3.scoring.CBPackingScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer.DoNormalize">(promod3.scoring.CBetaScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.ClashScorer.DoNormalize">(promod3.scoring.ClashScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer.DoNormalize">(promod3.scoring.HBondScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.PairwiseScorer.DoNormalize">(promod3.scoring.PairwiseScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer.DoNormalize">(promod3.scoring.ReducedScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.SSAgreementScorer.DoNormalize">(promod3.scoring.SSAgreementScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.TorsionScorer.DoNormalize">(promod3.scoring.TorsionScorer method)</a> -</li> - </ul></li> - <li><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> -</li> - <li><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> -</li> - <li><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> -</li> - </ul></td> -</tr></table> + + <dt><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.AddEdge">AddEdge() (promod3.core.GraphMinimizer method)</a> + </dt> -<h2 id="E">E</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.empty">empty() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData.env_pos">env_pos (promod3.modelling.SidechainReconstructionData attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLJPairInfo.epsilon">epsilon (promod3.loop.ForcefieldLJPairInfo attribute)</a> -</li> - <li><a href="core/geometry.html#promod3.core.EvaluateGromacsPosRule">EvaluateGromacsPosRule() (in module promod3.core)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.ExponentialCooler">ExponentialCooler (class in promod3.modelling)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.FullGapExtender.Extend">Extend() (promod3.modelling.FullGapExtender method)</a> - - <ul> - <li><a href="modelling/gap_handling.html#promod3.modelling.GapExtender.Extend">(promod3.modelling.GapExtender method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.Extend">(promod3.modelling.ScoreContainer method)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.ScoringGapExtender.Extend">(promod3.modelling.ScoringGapExtender method)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.ShiftExtension.Extend">(promod3.modelling.ShiftExtension method)</a> -</li> - </ul></li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.ExtendAtCTerm">ExtendAtCTerm() (promod3.modelling.StructuralGap method)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.ExtendAtNTerm">ExtendAtNTerm() (promod3.modelling.StructuralGap method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.Extract">Extract() (promod3.loop.AllAtomPositions method)</a>, <a href="loop/all_atom.html#promod3.loop.AllAtomPositions.Extract">[1]</a> - - <ul> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.Extract">(promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.Extract">(promod3.loop.PsipredPrediction method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.Extract">(promod3.modelling.LoopCandidates method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.Extract">(promod3.modelling.ScoreContainer method)</a> -</li> - </ul></li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.ExtractBackbone">ExtractBackbone() (promod3.loop.AllAtomPositions method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.ExtractLoopPositions">ExtractLoopPositions() (promod3.loop.MmSystemCreator method)</a> -</li> - <li><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.ExtractStatistics">ExtractStatistics() (promod3.loop.TorsionSampler method)</a> -</li> - </ul></td> -</tr></table> + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.AddFragmentInfo">AddFragmentInfo() (promod3.modelling.LoopCandidates method)</a> + </dt> -<h2 id="F">F</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="core/helper.html#promod3.core.helper.FileExists">FileExists() (in module promod3.core.helper)</a> -</li> - <li><a href="core/helper.html#promod3.core.helper.FileExtension">FileExtension() (in module promod3.core.helper)</a> -</li> - <li><a href="core/helper.html#promod3.core.helper.FileGzip">FileGzip() (in module promod3.core.helper)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.Fragger.Fill">Fill() (promod3.loop.Fragger method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.FillFromDatabase">FillFromDatabase() (promod3.modelling.LoopCandidates static method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.FillFromMonteCarloSampler">FillFromMonteCarloSampler() (promod3.modelling.LoopCandidates static method)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.FillLoopsByDatabase">FillLoopsByDatabase() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.FillLoopsByMonteCarlo">FillLoopsByMonteCarlo() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/model_checking.html#promod3.modelling.FilterCandidates">FilterCandidates() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/model_checking.html#promod3.modelling.FilterCandidatesWithSC">FilterCandidatesWithSC() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/algorithms.html#promod3.modelling.FindMotifs">FindMotifs() (in module promod3.modelling)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldBondInfo.force_constant">force_constant (promod3.loop.ForcefieldBondInfo attribute)</a> - - <ul> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicAngleInfo.force_constant">(promod3.loop.ForcefieldHarmonicAngleInfo attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicImproperInfo.force_constant">(promod3.loop.ForcefieldHarmonicImproperInfo attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldPeriodicDihedralInfo.force_constant">(promod3.loop.ForcefieldPeriodicDihedralInfo attribute)</a> -</li> - </ul></li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldAminoAcid">ForcefieldAminoAcid (class in promod3.loop)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldBondInfo">ForcefieldBondInfo (class in promod3.loop)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldConnectivity">ForcefieldConnectivity (class in promod3.loop)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicAngleInfo">ForcefieldHarmonicAngleInfo (class in promod3.loop)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicImproperInfo">ForcefieldHarmonicImproperInfo (class in promod3.loop)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLJPairInfo">ForcefieldLJPairInfo (class in promod3.loop)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup">ForcefieldLookup (class in promod3.loop)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldPeriodicDihedralInfo">ForcefieldPeriodicDihedralInfo (class in promod3.loop)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldUreyBradleyAngleInfo">ForcefieldUreyBradleyAngleInfo (class in promod3.loop)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.FragDB">FragDB (class in promod3.loop)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.Fragger">Fragger (class in promod3.loop)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.fragger_handles">fragger_handles (promod3.modelling.ModellingHandle attribute)</a> -</li> - <li><a href="modelling/algorithms.html#promod3.modelling.FraggerHandle">FraggerHandle (class in promod3.modelling)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.FraggerMap">FraggerMap (class in promod3.loop)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.FragmentInfo">FragmentInfo (class in promod3.loop)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.FragmentSampler">FragmentSampler (class in promod3.modelling)</a> -</li> - <li><a href="sidechain/frame.html#promod3.sidechain.Frame">Frame (class in promod3.sidechain)</a> -</li> - <li><a href="sidechain/frame.html#promod3.sidechain.FrameResidue">FrameResidue (class in promod3.sidechain)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer">FRMRotamer (class in promod3.sidechain)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup">FRMRotamerGroup (class in promod3.sidechain)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.FromHHM">FromHHM() (promod3.loop.PsipredPrediction method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.FromHoriz">FromHoriz() (promod3.loop.PsipredPrediction method)</a> -</li> - <li><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> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.full_seq">full_seq (promod3.modelling.StructuralGap attribute)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.FullGapExtender">FullGapExtender (class in promod3.modelling)</a> -</li> - </ul></td> -</tr></table> + + <dt><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.AddFragments">AddFragments() (promod3.core.pm3argparse.PM3ArgumentParser method)</a> + </dt> -<h2 id="G">G</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="modelling/gap_handling.html#promod3.modelling.GapExtender">GapExtender (class in promod3.modelling)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.gaps">gaps (promod3.modelling.ModellingHandle attribute)</a> -</li> - <li><a href="modelling/algorithms.html#promod3.modelling.GenerateDeNovoTrajectories">GenerateDeNovoTrajectories() (in module promod3.modelling)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.GenerateStructureProfile">GenerateStructureProfile() (promod3.loop.StructureDB method)</a> -</li> - <li><a href="modelling/algorithms.html#promod3.modelling.FraggerHandle.Get">Get() (promod3.modelling.FraggerHandle method)</a> - - <ul> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.Get">(promod3.modelling.ScoreContainer method)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomOverallScorer.Get">(promod3.scoring.AllAtomOverallScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer.Get">(promod3.scoring.BackboneOverallScorer method)</a> -</li> - </ul></li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetAA">GetAA() (promod3.loop.AllAtomPositions method)</a> - - <ul> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetAA">(promod3.loop.AminoAcidLookup static method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.GetAA">(promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetAA">(promod3.loop.ForcefieldLookup method)</a> -</li> - </ul></li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetAAA">GetAAA() (promod3.loop.AminoAcidLookup static method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetAAH">GetAAH() (promod3.loop.AminoAcidLookup static method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetActiveSubrotamer">GetActiveSubrotamer() (promod3.sidechain.FRMRotamer method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomEnv.GetAllAtomPositions">GetAllAtomPositions() (promod3.loop.AllAtomEnv method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.GetAllAtomScoringKeys">GetAllAtomScoringKeys() (promod3.modelling.ScoringWeights static method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.GetAllAtomWeights">GetAllAtomWeights() (promod3.modelling.ScoringWeights static method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetAnchorAtomIndex">GetAnchorAtomIndex() (promod3.loop.AminoAcidLookup static method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.FragDB.GetAngularBinSize">GetAngularBinSize() (promod3.loop.FragDB method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetAtomName">GetAtomName() (promod3.loop.AminoAcidLookup static method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetAtomNameAmber">GetAtomNameAmber() (promod3.loop.AminoAcidLookup static method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetAtomNameCharmm">GetAtomNameCharmm() (promod3.loop.AminoAcidLookup static method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.GetBackboneList">GetBackboneList() (promod3.loop.StructureDB method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.GetBackboneScoringKeys">GetBackboneScoringKeys() (promod3.modelling.ScoringWeights static method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.GetBackboneWeights">GetBackboneWeights() (promod3.modelling.ScoringWeights static method)</a> -</li> - <li><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.GetBinSize">GetBinSize() (promod3.loop.TorsionSampler method)</a> -</li> - <li><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.GetBinsPerDimension">GetBinsPerDimension() (promod3.loop.TorsionSampler method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.GetBounds">GetBounds() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.GetC">GetC() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.GetCA">GetCA() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.GetCB">GetCB() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.GetChain">GetChain() (promod3.modelling.StructuralGap method)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.GetChainIndex">GetChainIndex() (promod3.modelling.StructuralGap method)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.GetChainName">GetChainName() (promod3.modelling.StructuralGap method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetCharges">GetCharges() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.GetClusteredCandidates">GetClusteredCandidates() (promod3.modelling.LoopCandidates method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.GetClusters">GetClusters() (promod3.modelling.LoopCandidates method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.Particle.GetCollisionDistance">GetCollisionDistance() (promod3.sidechain.Particle method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.GetConfidence">GetConfidence() (promod3.loop.PsipredPrediction method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.GetConfidences">GetConfidences() (promod3.loop.PsipredPrediction method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.GetCoordIdx">GetCoordIdx() (promod3.loop.StructureDB method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.GetCoordInfo">GetCoordInfo() (promod3.loop.StructureDB method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetCpuPlatformSupport">GetCpuPlatformSupport() (promod3.loop.MmSystemCreator method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetDefault">GetDefault() (promod3.loop.ForcefieldLookup static method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.GetDihedralAngles">GetDihedralAngles() (promod3.loop.StructureDB method)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.GetDihedralConfiguration">GetDihedralConfiguration() (in module promod3.sidechain)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.FragDB.GetDistBinSize">GetDistBinSize() (promod3.loop.FragDB method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetDisulfidBridges">GetDisulfidBridges() (promod3.loop.MmSystemCreator method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetDisulfidConnectivity">GetDisulfidConnectivity() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.GetDSSPStates">GetDSSPStates() (promod3.loop.StructureDB method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetElement">GetElement() (promod3.loop.AminoAcidLookup static method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomEnv.GetEnvironment">GetEnvironment() (promod3.loop.AllAtomEnv method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetEpsilons">GetEpsilons() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetFirstIndex">GetFirstIndex() (promod3.loop.AllAtomPositions method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetForcefieldAminoAcids">GetForcefieldAminoAcids() (promod3.loop.MmSystemCreator method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.Fragger.GetFragmentInfo">GetFragmentInfo() (promod3.loop.Fragger method)</a> - - <ul> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.GetFragmentInfo">(promod3.modelling.LoopCandidates method)</a> -</li> - </ul></li> - <li><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> - - <ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.GetFrameEnergy">(promod3.sidechain.RRMRotamer method)</a> -</li> - </ul></li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetFudgeLJ">GetFudgeLJ() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetFudgeQQ">GetFudgeQQ() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetH1Index">GetH1Index() (promod3.loop.AminoAcidLookup static method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetH2Index">GetH2Index() (promod3.loop.AminoAcidLookup static method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetH3Index">GetH3Index() (promod3.loop.AminoAcidLookup static method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetHeavyIndex">GetHeavyIndex() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.GetHistogramIndex">GetHistogramIndex() (promod3.loop.TorsionSampler method)</a> -</li> - <li><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.GetHistogramIndices">GetHistogramIndices() (promod3.loop.TorsionSampler method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetHNIndex">GetHNIndex() (promod3.loop.AminoAcidLookup static method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetHydrogenIndex">GetHydrogenIndex() (promod3.loop.AminoAcidLookup static method)</a> - - <ul> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetHydrogenIndex">(promod3.loop.ForcefieldLookup method)</a> -</li> - </ul></li> - <li><a href="modelling/algorithms.html#promod3.modelling.MotifQuery.GetIdentifiers">GetIdentifiers() (promod3.modelling.MotifQuery method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetIndex">GetIndex() (promod3.loop.AllAtomPositions method)</a> - - <ul> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetIndex">(promod3.loop.AminoAcidLookup static method)</a> -</li> - </ul></li> - <li><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetIndexing">GetIndexing() (promod3.loop.MmSystemCreator method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetInternalConnectivity">GetInternalConnectivity() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetInternalEnergy">GetInternalEnergy() (promod3.sidechain.FRMRotamer method)</a> - - <ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.GetInternalEnergy">(promod3.sidechain.RRMRotamer method)</a> -</li> - </ul></li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetInternalEnergyPrefactor">GetInternalEnergyPrefactor() (promod3.sidechain.FRMRotamer method)</a> - - <ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.GetInternalEnergyPrefactor">(promod3.sidechain.RRMRotamer method)</a> -</li> - </ul></li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.GetLargestCluster">GetLargestCluster() (promod3.modelling.LoopCandidates method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetLastIndex">GetLastIndex() (promod3.loop.AllAtomPositions method)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.GetLength">GetLength() (promod3.modelling.StructuralGap method)</a> -</li> - <li><a href="modelling/algorithms.html#promod3.modelling.FraggerHandle.GetList">GetList() (promod3.modelling.FraggerHandle method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetLoopLengths">GetLoopLengths() (promod3.loop.MmSystemCreator method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetLoopStartIndices">GetLoopStartIndices() (promod3.loop.MmSystemCreator method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetMasses">GetMasses() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetMaxNumAtoms">GetMaxNumAtoms() (promod3.loop.AminoAcidLookup static method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetMaxNumHydrogens">GetMaxNumHydrogens() (promod3.loop.AminoAcidLookup static method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.GetN">GetN() (promod3.loop.BackboneList method)</a> - - <ul> - <li><a href="modelling/algorithms.html#promod3.modelling.MotifQuery.GetN">(promod3.modelling.MotifQuery method)</a> -</li> - </ul></li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.Particle.GetName">GetName() (promod3.sidechain.Particle method)</a> -</li> - <li><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer.GetNonBondedCutoff">GetNonBondedCutoff() (promod3.modelling.BackboneRelaxer method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetNumAtoms">GetNumAtoms() (promod3.loop.AllAtomPositions method)</a> - - <ul> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetNumAtoms">(promod3.loop.AminoAcidLookup static method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetNumAtoms">(promod3.loop.ForcefieldLookup method)</a> -</li> - </ul></li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.GetNumCandidates">GetNumCandidates() (promod3.modelling.ScoreContainer method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.GetNumCoords">GetNumCoords() (promod3.loop.StructureDB method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.FragDB.GetNumFragments">GetNumFragments() (promod3.loop.FragDB method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetNumHydrogens">GetNumHydrogens() (promod3.loop.AminoAcidLookup static method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetNumLoopResidues">GetNumLoopResidues() (promod3.loop.MmSystemCreator method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetNumResidues">GetNumResidues() (promod3.loop.AllAtomPositions method)</a> - - <ul> - <li><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetNumResidues">(promod3.loop.MmSystemCreator method)</a> -</li> - </ul></li> - <li><a href="loop/structure_db.html#promod3.loop.FragDB.GetNumStemPairs">GetNumStemPairs() (promod3.loop.FragDB method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetNumSubrotamers">GetNumSubrotamers() (promod3.sidechain.FRMRotamer method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.GetO">GetO() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetOLC">GetOLC() (promod3.loop.AminoAcidLookup static method)</a> - - <ul> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.GetOLC">(promod3.loop.BackboneList method)</a> -</li> - </ul></li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetOmegaTorsion">GetOmegaTorsion() (promod3.loop.AllAtomPositions method)</a> - - <ul> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.GetOmegaTorsion">(promod3.loop.BackboneList method)</a> -</li> - </ul></li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetOXTIndex">GetOXTIndex() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetPeptideBoundConnectivity">GetPeptideBoundConnectivity() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><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> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetPhiTorsion">GetPhiTorsion() (promod3.loop.AllAtomPositions method)</a> - - <ul> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.GetPhiTorsion">(promod3.loop.BackboneList method)</a> -</li> - </ul></li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetPos">GetPos() (promod3.loop.AllAtomPositions method)</a> - - <ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.Particle.GetPos">(promod3.sidechain.Particle method)</a> -</li> - </ul></li> - <li><a href="modelling/algorithms.html#promod3.modelling.MotifQuery.GetPositions">GetPositions() (promod3.modelling.MotifQuery method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.GetPrediction">GetPrediction() (promod3.loop.PsipredPrediction method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.GetPredictions">GetPredictions() (promod3.loop.PsipredPrediction method)</a> -</li> - <li><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> - - <ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetProbability">(promod3.sidechain.FRMRotamer method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.GetProbability">(promod3.sidechain.RRMRotamer method)</a> -</li> - </ul></li> - <li><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> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetPsiTorsion">GetPsiTorsion() (promod3.loop.AllAtomPositions method)</a> - - <ul> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.GetPsiTorsion">(promod3.loop.BackboneList method)</a> -</li> - </ul></li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.GetResidueDepths">GetResidueDepths() (promod3.loop.StructureDB method)</a> -</li> - <li><a href="modelling/model_checking.html#promod3.modelling.GetRingPunches">GetRingPunches() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/model_checking.html#promod3.modelling.GetRings">GetRings() (in module promod3.modelling)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.GetRotamericConfiguration">GetRotamericConfiguration() (in module promod3.sidechain)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.Fragger.GetScore">GetScore() (promod3.loop.Fragger method)</a>, <a href="loop/structure_db.html#promod3.loop.Fragger.GetScore">[1]</a> - - <ul> - <li><a href="modelling/monte_carlo.html#promod3.modelling.LinearScorer.GetScore">(promod3.modelling.LinearScorer method)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.ScorerBase.GetScore">(promod3.modelling.ScorerBase method)</a> -</li> - </ul></li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.Particle.GetScoringFunction">GetScoringFunction() (promod3.sidechain.Particle method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetSelfEnergy">GetSelfEnergy() (promod3.sidechain.FRMRotamer method)</a> - - <ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.GetSelfEnergy">(promod3.sidechain.RRMRotamer method)</a> -</li> - </ul></li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomEnv.GetSeqres">GetSeqres() (promod3.loop.AllAtomEnv method)</a> - - <ul> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.GetSeqres">(promod3.scoring.BackboneScoreEnv method)</a> -</li> - </ul></li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetSequence">GetSequence() (promod3.loop.AllAtomPositions method)</a> - - <ul> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.GetSequence">(promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.GetSequence">(promod3.loop.StructureDB method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.GetSequence">(promod3.modelling.LoopCandidates method)</a> -</li> - </ul></li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.GetSequenceProfile">GetSequenceProfile() (promod3.loop.StructureDB method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.GetSequenceProfileScoresKey">GetSequenceProfileScoresKey() (promod3.modelling.ScoringWeights static method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetSigmas">GetSigmas() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetSimulation">GetSimulation() (promod3.loop.MmSystemCreator method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.GetSolventAccessibilitites">GetSolventAccessibilitites() (promod3.loop.StructureDB method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.GetStemRMSDsKey">GetStemRMSDsKey() (promod3.modelling.ScoringWeights static method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.GetStructureProfile">GetStructureProfile() (promod3.loop.StructureDB method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.GetStructureProfileScoresKey">GetStructureProfileScoresKey() (promod3.modelling.ScoringWeights static method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.GetSubDB">GetSubDB() (promod3.loop.StructureDB method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetSubrotamerDefinition">GetSubrotamerDefinition() (promod3.sidechain.FRMRotamer method)</a> -</li> - <li><a href="modelling/loop_closing.html#promod3.modelling.AllAtomRelaxer.GetSystemCreator">GetSystemCreator() (promod3.modelling.AllAtomRelaxer method)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.CoolerBase.GetTemperature">GetTemperature() (promod3.modelling.CoolerBase method)</a> - - <ul> - <li><a href="modelling/monte_carlo.html#promod3.modelling.ExponentialCooler.GetTemperature">(promod3.modelling.ExponentialCooler method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetTemperature">(promod3.sidechain.FRMRotamer method)</a> -</li> - </ul></li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.GetTransform">GetTransform() (promod3.loop.BackboneList method)</a>, <a href="loop/backbone.html#promod3.loop.BackboneList.GetTransform">[1]</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.GetWeights">GetWeights() (promod3.modelling.ScoringWeights static method)</a> -</li> - <li><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer">GraphMinimizer (class in promod3.core)</a> -</li> - </ul></td> -</tr></table> + <dd><dl> + + <dt><a href="loop/structure_db.html#promod3.loop.FragDB.AddFragments">(promod3.loop.FragDB method)</a> + </dt> -<h2 id="H">H</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldConnectivity.harmonic_angles">harmonic_angles (promod3.loop.ForcefieldConnectivity attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldConnectivity.harmonic_bonds">harmonic_bonds (promod3.loop.ForcefieldConnectivity attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldConnectivity.harmonic_impropers">harmonic_impropers (promod3.loop.ForcefieldConnectivity attribute)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.HasData">HasData() (promod3.loop.StructureDB method)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="loop/structure_db.html#promod3.loop.FragDB.HasFragLength">HasFragLength() (promod3.loop.FragDB method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.HasFragmentInfos">HasFragmentInfos() (promod3.modelling.LoopCandidates method)</a> -</li> - <li><a href="modelling/model_checking.html#promod3.modelling.HasRingPunches">HasRingPunches() (in module promod3.modelling)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer">HBondScorer (class in promod3.scoring)</a> -</li> - </ul></td> -</tr></table> + </dl></dd> + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.AddFrameEnergy">AddFrameEnergy() (promod3.sidechain.FRMRotamer method)</a>, <a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.AddFrameEnergy">[1]</a> + </dt> -<h2 id="I">I</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="loop/structure_db.html#promod3.loop.CoordInfo.id">id (promod3.loop.CoordInfo attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicImproperInfo.index_four">index_four (promod3.loop.ForcefieldHarmonicImproperInfo attribute)</a> - - <ul> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldPeriodicDihedralInfo.index_four">(promod3.loop.ForcefieldPeriodicDihedralInfo attribute)</a> -</li> - </ul></li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldBondInfo.index_one">index_one (promod3.loop.ForcefieldBondInfo attribute)</a> - - <ul> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicAngleInfo.index_one">(promod3.loop.ForcefieldHarmonicAngleInfo attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicImproperInfo.index_one">(promod3.loop.ForcefieldHarmonicImproperInfo attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLJPairInfo.index_one">(promod3.loop.ForcefieldLJPairInfo attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldPeriodicDihedralInfo.index_one">(promod3.loop.ForcefieldPeriodicDihedralInfo attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldUreyBradleyAngleInfo.index_one">(promod3.loop.ForcefieldUreyBradleyAngleInfo attribute)</a> -</li> - </ul></li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicAngleInfo.index_three">index_three (promod3.loop.ForcefieldHarmonicAngleInfo attribute)</a> - - <ul> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicImproperInfo.index_three">(promod3.loop.ForcefieldHarmonicImproperInfo attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldPeriodicDihedralInfo.index_three">(promod3.loop.ForcefieldPeriodicDihedralInfo attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldUreyBradleyAngleInfo.index_three">(promod3.loop.ForcefieldUreyBradleyAngleInfo attribute)</a> -</li> - </ul></li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldBondInfo.index_two">index_two (promod3.loop.ForcefieldBondInfo attribute)</a> - - <ul> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicAngleInfo.index_two">(promod3.loop.ForcefieldHarmonicAngleInfo attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicImproperInfo.index_two">(promod3.loop.ForcefieldHarmonicImproperInfo attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLJPairInfo.index_two">(promod3.loop.ForcefieldLJPairInfo attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldPeriodicDihedralInfo.index_two">(promod3.loop.ForcefieldPeriodicDihedralInfo attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldUreyBradleyAngleInfo.index_two">(promod3.loop.ForcefieldUreyBradleyAngleInfo attribute)</a> -</li> - </ul></li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.FragmentSampler.Initialize">Initialize() (promod3.modelling.FragmentSampler method)</a> - - <ul> - <li><a href="modelling/monte_carlo.html#promod3.modelling.PhiPsiSampler.Initialize">(promod3.modelling.PhiPsiSampler method)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.SamplerBase.Initialize">(promod3.modelling.SamplerBase method)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.SoftSampler.Initialize">(promod3.modelling.SoftSampler method)</a> -</li> - </ul></li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.InsertInto">InsertInto() (promod3.loop.AllAtomPositions method)</a> - - <ul> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.InsertInto">(promod3.loop.BackboneList method)</a>, <a href="loop/backbone.html#promod3.loop.BackboneList.InsertInto">[1]</a> -</li> - </ul></li> - <li><a href="modelling/pipeline.html#promod3.modelling.InsertLoop">InsertLoop() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.InsertLoopClearGaps">InsertLoopClearGaps() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData.is_c_ter">is_c_ter (promod3.modelling.SidechainReconstructionData attribute)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingIssue.is_major">is_major() (promod3.modelling.ModellingIssue method)</a> -</li> - <li><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData.is_n_ter">is_n_ter (promod3.modelling.SidechainReconstructionData attribute)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.IsAllAtomScoringSetUp">IsAllAtomScoringSetUp() (in module promod3.modelling)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.IsAllSet">IsAllSet() (promod3.loop.AllAtomPositions method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.IsAnySet">IsAnySet() (promod3.loop.AllAtomPositions method)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.IsBackboneScoringSetUp">IsBackboneScoringSetUp() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.IsCTerminal">IsCTerminal() (promod3.modelling.StructuralGap method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.IsEmpty">IsEmpty() (promod3.modelling.ScoreContainer method)</a> -</li> - <li><a href="core/runtime_profiling.html#promod3.core.StaticRuntimeProfiler.IsEnabled">IsEnabled() (promod3.core.StaticRuntimeProfiler static method)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.IsNTerminal">IsNTerminal() (promod3.modelling.StructuralGap method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.IsSet">IsSet() (promod3.loop.AllAtomPositions method)</a> -</li> - <li><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> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.IsTerminal">IsTerminal() (promod3.modelling.StructuralGap method)</a> -</li> - </ul></td> -</tr></table> + <dd><dl> + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.AddFrameEnergy">(promod3.sidechain.FRMRotamerGroup method)</a> + </dt> -<h2 id="K">K</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="modelling/loop_closing.html#promod3.modelling.KIC">KIC (class in promod3.modelling)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="modelling/loop_closing.html#promod3.modelling.KIC.KIC">KIC() (promod3.modelling.KIC method)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.KICCloser">KICCloser (class in promod3.modelling)</a> -</li> - </ul></td> -</tr></table> + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.AddFrameEnergy">(promod3.sidechain.RRMRotamer method)</a> + </dt> -<h2 id="L">L</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="loop/structure_db.html#promod3.loop.FragmentInfo.length">length (promod3.loop.FragmentInfo attribute)</a> - - <ul> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.length">(promod3.modelling.StructuralGap attribute)</a> -</li> - </ul></li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.LinearCombine">LinearCombine() (promod3.modelling.ScoreContainer method)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.LinearScorer">LinearScorer (class in promod3.modelling)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldConnectivity.lj_pairs">lj_pairs (promod3.loop.ForcefieldConnectivity attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.Load">Load() (promod3.loop.ForcefieldLookup static method)</a> - - <ul> - <li><a href="loop/structure_db.html#promod3.loop.FragDB.Load">(promod3.loop.FragDB static method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.FraggerMap.Load">(promod3.loop.FraggerMap method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.Load">(promod3.loop.StructureDB static method)</a> -</li> - <li><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.Load">(promod3.loop.TorsionSampler static method)</a> -</li> - <li><a href="modelling/algorithms.html#promod3.modelling.MotifQuery.Load">(promod3.modelling.MotifQuery static method)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer.Load">(promod3.scoring.AllAtomInteractionScorer static method)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer.Load">(promod3.scoring.AllAtomPackingScorer static method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer.Load">(promod3.scoring.CBPackingScorer static method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer.Load">(promod3.scoring.CBetaScorer static method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer.Load">(promod3.scoring.HBondScorer static method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer.Load">(promod3.scoring.ReducedScorer static method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.SSAgreementScorer.Load">(promod3.scoring.SSAgreementScorer static method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.TorsionScorer.Load">(promod3.scoring.TorsionScorer static method)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.Load">(promod3.sidechain.BBDepRotamerLib static method)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib.Load">(promod3.sidechain.RotamerLib static method)</a> -</li> - </ul></li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.LoadAllAtomInteractionScorer">LoadAllAtomInteractionScorer() (in module promod3.scoring)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.LoadAllAtomPackingScorer">LoadAllAtomPackingScorer() (in module promod3.scoring)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.FraggerMap.LoadBB">LoadBB() (promod3.loop.FraggerMap method)</a> -</li> - <li><a href="sidechain/loading.html#promod3.sidechain.LoadBBDepLib">LoadBBDepLib() (in module promod3.sidechain)</a> -</li> - <li><a href="modelling/algorithms.html#promod3.modelling.FraggerHandle.LoadCached">LoadCached() (promod3.modelling.FraggerHandle method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.LoadCBetaScorer">LoadCBetaScorer() (in module promod3.scoring)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.LoadCBPackingScorer">LoadCBPackingScorer() (in module promod3.scoring)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.LoadCHARMM">LoadCHARMM() (promod3.loop.ForcefieldLookup static method)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.LoadDefaultAllAtomOverallScorer">LoadDefaultAllAtomOverallScorer() (in module promod3.scoring)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.LoadDefaultBackboneOverallScorer">LoadDefaultBackboneOverallScorer() (in module promod3.scoring)</a> -</li> - <li><a href="loop/load_loop_objects.html#promod3.loop.LoadFragDB">LoadFragDB() (in module promod3.loop)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.LoadHBondScorer">LoadHBondScorer() (in module promod3.scoring)</a> -</li> - <li><a href="sidechain/loading.html#promod3.sidechain.LoadLib">LoadLib() (in module promod3.sidechain)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.LoadPortable">LoadPortable() (promod3.loop.ForcefieldLookup static method)</a> - - <ul> - <li><a href="loop/structure_db.html#promod3.loop.FragDB.LoadPortable">(promod3.loop.FragDB static method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.LoadPortable">(promod3.loop.StructureDB static method)</a> -</li> - <li><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.LoadPortable">(promod3.loop.TorsionSampler static method)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer.LoadPortable">(promod3.scoring.AllAtomInteractionScorer static method)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer.LoadPortable">(promod3.scoring.AllAtomPackingScorer static method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer.LoadPortable">(promod3.scoring.CBPackingScorer static method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer.LoadPortable">(promod3.scoring.CBetaScorer static method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer.LoadPortable">(promod3.scoring.HBondScorer static method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer.LoadPortable">(promod3.scoring.ReducedScorer static method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.SSAgreementScorer.LoadPortable">(promod3.scoring.SSAgreementScorer static method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.TorsionScorer.LoadPortable">(promod3.scoring.TorsionScorer static method)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.LoadPortable">(promod3.sidechain.BBDepRotamerLib static method)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib.LoadPortable">(promod3.sidechain.RotamerLib static method)</a> -</li> - </ul></li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.LoadReducedScorer">LoadReducedScorer() (in module promod3.scoring)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.LoadSSAgreementScorer">LoadSSAgreementScorer() (in module promod3.scoring)</a> -</li> - <li><a href="loop/load_loop_objects.html#promod3.loop.LoadStructureDB">LoadStructureDB() (in module promod3.loop)</a> -</li> - <li><a href="loop/load_loop_objects.html#promod3.loop.LoadTorsionSampler">LoadTorsionSampler() (in module promod3.loop)</a> -</li> - <li><a href="loop/load_loop_objects.html#promod3.loop.LoadTorsionSamplerCoil">LoadTorsionSamplerCoil() (in module promod3.loop)</a> -</li> - <li><a href="loop/load_loop_objects.html#promod3.loop.LoadTorsionSamplerExtended">LoadTorsionSamplerExtended() (in module promod3.loop)</a> -</li> - <li><a href="loop/load_loop_objects.html#promod3.loop.LoadTorsionSamplerHelical">LoadTorsionSamplerHelical() (in module promod3.loop)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.LoadTorsionScorer">LoadTorsionScorer() (in module promod3.scoring)</a> -</li> - <li><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData.loop_lengths">loop_lengths (promod3.modelling.SidechainReconstructionData attribute)</a> -</li> - <li><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData.loop_start_indices">loop_start_indices (promod3.modelling.SidechainReconstructionData attribute)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates">LoopCandidates (class in promod3.modelling)</a> -</li> - </ul></td> -</tr></table> + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup.AddFrameEnergy">(promod3.sidechain.RRMRotamerGroup method)</a> + </dt> -<h2 id="M">M</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingIssue.Severity.MAJOR">MAJOR (promod3.modelling.ModellingIssue.Severity attribute)</a> -</li> - <li><a href="buildsystem.html#index-1">make check</a> -</li> - <li><a href="buildsystem.html#index-4">make doc</a> -</li> - <li><a href="buildsystem.html#index-5">make help</a> -</li> - <li><a href="buildsystem.html#index-2">make html</a> -</li> - <li><a href="buildsystem.html#index-3">make man</a> -</li> - <li><a href="buildsystem.html#index-0">Make targets</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.MakeStatic">MakeStatic() (promod3.sidechain.BBDepRotamerLib method)</a> - - <ul> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib.MakeStatic">(promod3.sidechain.RotamerLib method)</a> -</li> - </ul></li> - <li><a href="modelling/algorithms.html#promod3.modelling.MotifMatch.mat">mat (promod3.modelling.MotifMatch attribute)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.FragDB.MaxFragLength">MaxFragLength() (promod3.loop.FragDB method)</a> -</li> - <li><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.MCSolve">MCSolve() (promod3.core.GraphMinimizer method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.Merge">Merge() (promod3.sidechain.FRMRotamerGroup method)</a> - - <ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup.Merge">(promod3.sidechain.RRMRotamerGroup method)</a> -</li> - </ul></li> - <li><a href="modelling/gap_handling.html#promod3.modelling.MergeGaps">MergeGaps() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.MergeGapsByDistance">MergeGapsByDistance() (in module promod3.modelling)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="modelling/pipeline.html#promod3.modelling.MergeMHandle">MergeMHandle() (in module promod3.modelling)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.MinCADistance">MinCADistance() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.MinimizeModelEnergy">MinimizeModelEnergy() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingIssue.Severity.MINOR">MINOR (promod3.modelling.ModellingIssue.Severity attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator">MmSystemCreator (class in promod3.loop)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.model">model (promod3.modelling.ModellingHandle attribute)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.modelling_issues">modelling_issues (promod3.modelling.ModellingHandle attribute)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle">ModellingHandle (class in promod3.modelling)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingIssue">ModellingIssue (class in promod3.modelling)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingIssue.Severity">ModellingIssue.Severity (class in promod3.modelling)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModelTermini">ModelTermini() (in module promod3.modelling)</a> -</li> - <li> - module + </dl></dd> + + <dt><a href="modelling/pipeline.html#promod3.modelling.AddModellingIssue">AddModellingIssue() (in module promod3.modelling)</a> + </dt> - <ul> - <li><a href="cmake/index.html#command:module"><strong>command</strong></a> -</li> - </ul></li> - <li><a href="modelling/algorithms.html#promod3.modelling.MotifMatch">MotifMatch (class in promod3.modelling)</a> -</li> - <li><a href="modelling/algorithms.html#promod3.modelling.MotifQuery">MotifQuery (class in promod3.modelling)</a> -</li> - <li><a href="core/helper.html#promod3.core.helper.MsgErrorAndExit">MsgErrorAndExit() (in module promod3.core.helper)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldPeriodicDihedralInfo.multiplicity">multiplicity (promod3.loop.ForcefieldPeriodicDihedralInfo attribute)</a> -</li> - </ul></td> -</tr></table> + + <dt><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.AddNode">AddNode() (promod3.core.GraphMinimizer method)</a> + </dt> -<h2 id="N">N</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="core/geometry.html#promod3.core.StemCoords.n_coord">n_coord (promod3.core.StemCoords attribute)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.NaiveSolve">NaiveSolve() (promod3.core.GraphMinimizer method)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.NTerminalCloser">NTerminalCloser (class in promod3.modelling)</a> -</li> - </ul></td> -</tr></table> + + <dt><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer.AddNRestraint">AddNRestraint() (promod3.modelling.BackboneRelaxer method)</a> + </dt> -<h2 id="O">O</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="loop/structure_db.html#promod3.loop.CoordInfo.offset">offset (promod3.loop.CoordInfo attribute)</a> - - <ul> - <li><a href="loop/structure_db.html#promod3.loop.FragmentInfo.offset">(promod3.loop.FragmentInfo attribute)</a> -</li> - </ul></li> - </ul></td> -</tr></table> + + <dt><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer.AddORestraint">AddORestraint() (promod3.modelling.BackboneRelaxer method)</a> + </dt> -<h2 id="P">P</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.PairwiseFunction">PairwiseFunction (class in promod3.scoring)</a> -</li> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.PairwiseFunctionType">PairwiseFunctionType (class in promod3.scoring)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.Particle.PairwiseScore">PairwiseScore() (promod3.sidechain.Particle method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.PairwiseScorer">PairwiseScorer (class in promod3.scoring)</a> -</li> - <li><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.Parse">Parse() (promod3.core.pm3argparse.PM3ArgumentParser method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.Particle">Particle (class in promod3.sidechain)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldConnectivity.periodic_dihedrals">periodic_dihedrals (promod3.loop.ForcefieldConnectivity attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldConnectivity.periodic_impropers">periodic_impropers (promod3.loop.ForcefieldConnectivity attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldPeriodicDihedralInfo.phase">phase (promod3.loop.ForcefieldPeriodicDihedralInfo attribute)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.PhiPsiSampler">PhiPsiSampler (class in promod3.modelling)</a> -</li> - <li><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser">PM3ArgumentParser (class in promod3.core.pm3argparse)</a> -</li> - <li> - pm_action + + <dt><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.AddPairwiseFunction">AddPairwiseFunction() (promod3.scoring.BackboneScoreEnv method)</a> + </dt> - <ul> - <li><a href="contributing.html#index-0-command:pm_action">command</a>, <a href="cmake/index.html#command:pm_action"><strong>[1]</strong></a> -</li> - </ul></li> - <li><a href="actions/index_dev.html#test_actions.ActionTestCase.pm_action">pm_action (test_actions.ActionTestCase attribute)</a> -</li> - <li><a href="actions/index_dev.html#test_actions.ActionTestCase.pm_bin">pm_bin (test_actions.ActionTestCase attribute)</a> -</li> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.Pop">Pop() (promod3.scoring.BackboneScoreEnv method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.FragDB.PrintStatistics">PrintStatistics() (promod3.loop.FragDB method)</a> - - <ul> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.PrintStatistics">(promod3.loop.StructureDB method)</a> -</li> - </ul></li> - <li><a href="core/runtime_profiling.html#promod3.core.StaticRuntimeProfiler.PrintSummary">PrintSummary() (promod3.core.StaticRuntimeProfiler static method)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.probability">probability (promod3.sidechain.RotamerLibEntry attribute)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.profiles">profiles (promod3.modelling.ModellingHandle attribute)</a> -</li> - <li><a href="core/index.html#module-promod3.core">promod3.core (module)</a> -</li> - <li><a href="core/helper.html#module-promod3.core.helper">promod3.core.helper (module)</a> -</li> - <li><a href="core/pm3argparse.html#module-promod3.core.pm3argparse">promod3.core.pm3argparse (module)</a> -</li> - <li><a href="loop/index.html#module-promod3.loop">promod3.loop (module)</a> -</li> - <li><a href="modelling/index.html#module-promod3.modelling">promod3.modelling (module)</a> -</li> - <li><a href="scoring/index.html#module-promod3.scoring">promod3.scoring (module)</a> -</li> - <li><a href="sidechain/index.html#module-promod3.sidechain">promod3.sidechain (module)</a> -</li> - <li> - promod3_unittest + + <dt><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.AddProfile">AddProfile() (promod3.core.pm3argparse.PM3ArgumentParser method)</a> + </dt> - <ul> - <li><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> -</li> - </ul></li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.FragmentSampler.ProposeStep">ProposeStep() (promod3.modelling.FragmentSampler method)</a> - - <ul> - <li><a href="modelling/monte_carlo.html#promod3.modelling.PhiPsiSampler.ProposeStep">(promod3.modelling.PhiPsiSampler method)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.SamplerBase.ProposeStep">(promod3.modelling.SamplerBase method)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.SoftSampler.ProposeStep">(promod3.modelling.SoftSampler method)</a> -</li> - </ul></li> - <li><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.Prune">Prune() (promod3.core.GraphMinimizer method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.PScoringFunction">PScoringFunction (class in promod3.sidechain)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.psipred_predictions">psipred_predictions (promod3.modelling.ModellingHandle attribute)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.PsipredPrediction">PsipredPrediction (class in promod3.loop)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.PsipredPrediction">PsipredPrediction() (promod3.loop.PsipredPrediction method)</a>, <a href="loop/structure_db.html#promod3.loop.PsipredPrediction.PsipredPrediction">[1]</a> -</li> - <li> - pymod + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.AddRotamer">AddRotamer() (promod3.sidechain.BBDepRotamerLib method)</a> + </dt> - <ul> - <li><a href="cmake/index.html#command:pymod"><strong>command</strong></a> -</li> - </ul></li> - </ul></td> -</tr></table> + <dd><dl> + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib.AddRotamer">(promod3.sidechain.RotamerLib method)</a> + </dt> -<h2 id="Q">Q</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="modelling/algorithms.html#promod3.modelling.MotifMatch.query_idx">query_idx (promod3.modelling.MotifMatch attribute)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.QueryLib">QueryLib() (promod3.sidechain.BBDepRotamerLib method)</a> - - <ul> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib.QueryLib">(promod3.sidechain.RotamerLib method)</a> -</li> - </ul></li> - </ul></td> -</tr></table> + </dl></dd> + + <dt><a href="loop/structure_db.html#promod3.loop.Fragger.AddSeqIDParameters">AddSeqIDParameters() (promod3.loop.Fragger method)</a> + </dt> -<h2 id="R">R</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="sidechain/loading.html#promod3.sidechain.ReadDunbrackFile">ReadDunbrackFile() (in module promod3.sidechain)</a> -</li> - <li><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructor.Reconstruct">Reconstruct() (promod3.modelling.SidechainReconstructor method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.ReconstructCBetaPositions">ReconstructCBetaPositions() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.ReconstructCStemOxygen">ReconstructCStemOxygen() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.ReconstructOxygenPositions">ReconstructOxygenPositions() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="modelling/sidechain_reconstruction.html#promod3.modelling.ReconstructSidechains">ReconstructSidechains() (in module promod3.modelling)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer">ReducedScorer (class in promod3.scoring)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.Remove">Remove() (promod3.modelling.LoopCandidates method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.RemoveCoordinates">RemoveCoordinates() (promod3.loop.StructureDB method)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.RemoveTerminalGaps">RemoveTerminalGaps() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ReorderGaps">ReorderGaps() (in module promod3.modelling)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.ReplaceFragment">ReplaceFragment() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="modelling/model_checking.html#promod3.modelling.ReportMolProbityScores">ReportMolProbityScores() (in module promod3.modelling)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomEnvPositions.res_indices">res_indices (promod3.loop.AllAtomEnvPositions attribute)</a> -</li> - <li><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.Reset">Reset() (promod3.core.GraphMinimizer method)</a> - - <ul> - <li><a href="modelling/monte_carlo.html#promod3.modelling.CoolerBase.Reset">(promod3.modelling.CoolerBase method)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.ExponentialCooler.Reset">(promod3.modelling.ExponentialCooler method)</a> -</li> - </ul></li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingIssue.residue_list">residue_list (promod3.modelling.ModellingIssue attribute)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.resize">resize() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="sidechain/disulfid.html#promod3.sidechain.ResolveCysteins">ResolveCysteins() (in module promod3.sidechain)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="modelling/algorithms.html#promod3.modelling.RigidBlocks">RigidBlocks() (in module promod3.modelling)</a>, <a href="modelling/algorithms.html#promod3.modelling.RigidBlocks">[1]</a>, <a href="modelling/algorithms.html#promod3.modelling.RigidBlocks">[2]</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.RMSD">RMSD() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData.rotamer_res_indices">rotamer_res_indices (promod3.modelling.SidechainReconstructionData attribute)</a> -</li> - <li><a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor">RotamerConstructor (class in promod3.sidechain)</a> -</li> - <li><a href="sidechain/graph.html#promod3.sidechain.RotamerGraph">RotamerGraph (class in promod3.sidechain)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RotamerID">RotamerID (class in promod3.sidechain)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib">RotamerLib (class in promod3.sidechain)</a> -</li> - <li><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> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.RotateAroundOmegaTorsion">RotateAroundOmegaTorsion() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.RotateAroundPhiPsiTorsion">RotateAroundPhiPsiTorsion() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.RotateAroundPhiTorsion">RotateAroundPhiTorsion() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.RotateAroundPsiTorsion">RotateAroundPsiTorsion() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="core/geometry.html#promod3.core.RotationAroundLine">RotationAroundLine() (in module promod3.core)</a>, <a href="core/geometry.html#promod3.core.RotationAroundLine">[1]</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer">RRMRotamer (class in promod3.sidechain)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup">RRMRotamerGroup (class in promod3.sidechain)</a> -</li> - <li><a href="modelling/loop_closing.html#promod3.modelling.AllAtomRelaxer.Run">Run() (promod3.modelling.AllAtomRelaxer method)</a> - - <ul> - <li><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer.Run">(promod3.modelling.BackboneRelaxer method)</a> -</li> - </ul></li> - <li><a href="actions/index_dev.html#test_actions.ActionTestCase.RunAction">RunAction() (test_actions.ActionTestCase method)</a> -</li> - <li><a href="actions/index_dev.html#test_actions.ActionTestCase.RunExitStatusTest">RunExitStatusTest() (test_actions.ActionTestCase method)</a> -</li> - <li><a href="modelling/model_checking.html#promod3.modelling.RunMolProbity">RunMolProbity() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/model_checking.html#promod3.modelling.RunMolProbityEntity">RunMolProbityEntity() (in module promod3.modelling)</a> -</li> - </ul></td> -</tr></table> + + <dt><a href="loop/structure_db.html#promod3.loop.Fragger.AddSeqSimParameters">AddSeqSimParameters() (promod3.loop.Fragger method)</a> + </dt> -<h2 id="S">S</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="modelling/monte_carlo.html#promod3.modelling.SampleMonteCarlo">SampleMonteCarlo() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.SamplerBase">SamplerBase (class in promod3.modelling)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.Save">Save() (promod3.loop.ForcefieldLookup method)</a> - - <ul> - <li><a href="loop/structure_db.html#promod3.loop.FragDB.Save">(promod3.loop.FragDB method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.FraggerMap.Save">(promod3.loop.FraggerMap method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.Save">(promod3.loop.StructureDB method)</a> -</li> - <li><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.Save">(promod3.loop.TorsionSampler method)</a> -</li> - <li><a href="modelling/algorithms.html#promod3.modelling.MotifQuery.Save">(promod3.modelling.MotifQuery method)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer.Save">(promod3.scoring.AllAtomInteractionScorer method)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer.Save">(promod3.scoring.AllAtomPackingScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer.Save">(promod3.scoring.CBPackingScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer.Save">(promod3.scoring.CBetaScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer.Save">(promod3.scoring.HBondScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer.Save">(promod3.scoring.ReducedScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.SSAgreementScorer.Save">(promod3.scoring.SSAgreementScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.TorsionScorer.Save">(promod3.scoring.TorsionScorer method)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.Save">(promod3.sidechain.BBDepRotamerLib method)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib.Save">(promod3.sidechain.RotamerLib method)</a> -</li> - </ul></li> - <li><a href="loop/structure_db.html#promod3.loop.FraggerMap.SaveBB">SaveBB() (promod3.loop.FraggerMap method)</a> -</li> - <li><a href="modelling/algorithms.html#promod3.modelling.FraggerHandle.SaveCached">SaveCached() (promod3.modelling.FraggerHandle method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SavePortable">SavePortable() (promod3.loop.ForcefieldLookup method)</a> - - <ul> - <li><a href="loop/structure_db.html#promod3.loop.FragDB.SavePortable">(promod3.loop.FragDB method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.SavePortable">(promod3.loop.StructureDB method)</a> -</li> - <li><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.SavePortable">(promod3.loop.TorsionSampler method)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer.SavePortable">(promod3.scoring.AllAtomInteractionScorer method)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer.SavePortable">(promod3.scoring.AllAtomPackingScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer.SavePortable">(promod3.scoring.CBPackingScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer.SavePortable">(promod3.scoring.CBetaScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer.SavePortable">(promod3.scoring.HBondScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer.SavePortable">(promod3.scoring.ReducedScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.SSAgreementScorer.SavePortable">(promod3.scoring.SSAgreementScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.TorsionScorer.SavePortable">(promod3.scoring.TorsionScorer method)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.SavePortable">(promod3.sidechain.BBDepRotamerLib method)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib.SavePortable">(promod3.sidechain.RotamerLib method)</a> -</li> - </ul></li> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.PairwiseFunction.Score">Score() (promod3.scoring.PairwiseFunction method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer">ScoreContainer (class in promod3.modelling)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.ScorerBase">ScorerBase (class in promod3.modelling)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.ScoringGapExtender">ScoringGapExtender (class in promod3.modelling)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights">ScoringWeights (class in promod3.modelling)</a> -</li> - <li><a href="scoring/other_scoring_functions.html#promod3.scoring.SCWRL3DisulfidScore">SCWRL3DisulfidScore() (in module promod3.scoring)</a> -</li> - <li><a href="scoring/other_scoring_functions.html#promod3.scoring.SCWRL3PairwiseScore">SCWRL3PairwiseScore() (in module promod3.scoring)</a> -</li> - <li><a href="sidechain/rotamer_constructor.html#promod3.sidechain.SCWRL3RotamerConstructor">SCWRL3RotamerConstructor (class in promod3.sidechain)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.SCWRL4ParticleType">SCWRL4ParticleType (class in promod3.sidechain)</a> -</li> - <li><a href="sidechain/rotamer_constructor.html#promod3.sidechain.SCWRL4RotamerConstructor">SCWRL4RotamerConstructor (class in promod3.sidechain)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.FragDB.SearchDB">SearchDB() (promod3.loop.FragDB method)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.seq">seq (promod3.modelling.StructuralGap attribute)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.seqres">seqres (promod3.modelling.ModellingHandle attribute)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.Set">Set() (promod3.loop.BackboneList method)</a> - - <ul> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.Set">(promod3.modelling.ScoreContainer method)</a> -</li> - </ul></li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.SetAA">SetAA() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetActiveSubrotamer">SetActiveSubrotamer() (promod3.sidechain.FRMRotamer method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.SetAllAtomScoringKeys">SetAllAtomScoringKeys() (promod3.modelling.ScoringWeights static method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.SetAroundOmegaTorsion">SetAroundOmegaTorsion() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.SetAroundPhiPsiTorsion">SetAroundPhiPsiTorsion() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.SetAroundPhiTorsion">SetAroundPhiTorsion() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.SetAroundPsiTorsion">SetAroundPsiTorsion() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.SetBackboneScoringKeys">SetBackboneScoringKeys() (promod3.modelling.ScoringWeights static method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.SetBackrub">SetBackrub() (promod3.loop.BackboneList method)</a>, <a href="loop/backbone.html#promod3.loop.BackboneList.SetBackrub">[1]</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.SetC">SetC() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.SetCA">SetCA() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.SetCB">SetCB() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetCharges">SetCharges() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="core/setcompoundschemlib.html#promod3.SetCompoundsChemlib">SetCompoundsChemlib() (in module promod3)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.SetCpuPlatformSupport">SetCpuPlatformSupport() (promod3.loop.MmSystemCreator method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetDefault">SetDefault() (promod3.loop.ForcefieldLookup static method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetDisulfidConnectivity">SetDisulfidConnectivity() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer.SetEnergy">SetEnergy() (promod3.scoring.AllAtomInteractionScorer method)</a> - - <ul> - <li><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer.SetEnergy">(promod3.scoring.AllAtomPackingScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer.SetEnergy">(promod3.scoring.CBPackingScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer.SetEnergy">(promod3.scoring.CBetaScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer.SetEnergy">(promod3.scoring.HBondScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer.SetEnergy">(promod3.scoring.ReducedScorer method)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.TorsionScorer.SetEnergy">(promod3.scoring.TorsionScorer method)</a> -</li> - </ul></li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomEnv.SetEnvironment">SetEnvironment() (promod3.loop.AllAtomEnv method)</a> - - <ul> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.SetEnvironment">(promod3.scoring.BackboneScoreEnv method)</a> -</li> - </ul></li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetEpsilons">SetEpsilons() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.SetFraggerHandles">SetFraggerHandles() (in module promod3.modelling)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetFrameEnergy">SetFrameEnergy() (promod3.sidechain.FRMRotamer method)</a>, <a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetFrameEnergy">[1]</a> - - <ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.SetFrameEnergy">(promod3.sidechain.FRMRotamerGroup method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.SetFrameEnergy">(promod3.sidechain.RRMRotamer method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup.SetFrameEnergy">(promod3.sidechain.RRMRotamerGroup method)</a> -</li> - </ul></li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetFudgeLJ">SetFudgeLJ() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetFudgeQQ">SetFudgeQQ() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomEnv.SetInitialEnvironment">SetInitialEnvironment() (promod3.loop.AllAtomEnv method)</a> - - <ul> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.SetInitialEnvironment">(promod3.scoring.BackboneScoreEnv method)</a> -</li> - </ul></li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetInternalConnectivity">SetInternalConnectivity() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetInternalEnergy">SetInternalEnergy() (promod3.sidechain.FRMRotamer method)</a> - - <ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.SetInternalEnergy">(promod3.sidechain.RRMRotamer method)</a> -</li> - </ul></li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetInternalEnergyPrefactor">SetInternalEnergyPrefactor() (promod3.sidechain.FRMRotamer method)</a> - - <ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.SetInternalEnergyPrefactor">(promod3.sidechain.RRMRotamer method)</a> -</li> - </ul></li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.SetInterpolate">SetInterpolate() (promod3.sidechain.BBDepRotamerLib method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetMasses">SetMasses() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.SetN">SetN() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer.SetNonBondedCutoff">SetNonBondedCutoff() (promod3.modelling.BackboneRelaxer method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.SetO">SetO() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.SetOLC">SetOLC() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetPeptideBoundConnectivity">SetPeptideBoundConnectivity() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.SetPos">SetPos() (promod3.loop.AllAtomPositions method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetProbability">SetProbability() (promod3.sidechain.FRMRotamer method)</a> - - <ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.SetProbability">(promod3.sidechain.RRMRotamer method)</a> -</li> - </ul></li> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.SetPsipredPrediction">SetPsipredPrediction() (promod3.scoring.BackboneScoreEnv method)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.SetPsipredPredictions">SetPsipredPredictions() (in module promod3.modelling)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.SetResidue">SetResidue() (promod3.loop.AllAtomPositions method)</a>, <a href="loop/all_atom.html#promod3.loop.AllAtomPositions.SetResidue">[1]</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.SSAgreementScorer.SetScore">SetScore() (promod3.scoring.SSAgreementScorer method)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.SetSequence">SetSequence() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.SetSequenceProfiles">SetSequenceProfiles() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.SetSequenceProfileScoresKey">SetSequenceProfileScoresKey() (promod3.modelling.ScoringWeights static method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetSigmas">SetSigmas() (promod3.loop.ForcefieldLookup method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.SetStemRMSDsKey">SetStemRMSDsKey() (promod3.modelling.ScoringWeights static method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB.SetStructureProfile">SetStructureProfile() (promod3.loop.StructureDB method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.SetStructureProfileScoresKey">SetStructureProfileScoresKey() (promod3.modelling.ScoringWeights static method)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetTemperature">SetTemperature() (promod3.sidechain.FRMRotamer method)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.SetupDefaultAllAtomScoring">SetupDefaultAllAtomScoring() (in module promod3.modelling)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.SetupDefaultBackboneScoring">SetupDefaultBackboneScoring() (in module promod3.modelling)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.SetupSystem">SetupSystem() (promod3.loop.MmSystemCreator method)</a> -</li> - <li><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.SetWeights">SetWeights() (promod3.modelling.ScoringWeights static method)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingIssue.severity">severity (promod3.modelling.ModellingIssue attribute)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.CoordInfo.shift">shift (promod3.loop.CoordInfo attribute)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.ShiftCTerminal">ShiftCTerminal() (promod3.modelling.StructuralGap method)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.ShiftExtension">ShiftExtension (class in promod3.modelling)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.sidechain_reconstructor">sidechain_reconstructor (promod3.modelling.ModellingHandle attribute)</a> -</li> - <li><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData">SidechainReconstructionData (class in promod3.modelling)</a> -</li> - <li><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructor">SidechainReconstructor (class in promod3.modelling)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.sig1">sig1 (promod3.sidechain.RotamerLibEntry attribute)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.sig2">sig2 (promod3.sidechain.RotamerLibEntry attribute)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.sig3">sig3 (promod3.sidechain.RotamerLibEntry attribute)</a> -</li> - <li><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.sig4">sig4 (promod3.sidechain.RotamerLibEntry attribute)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLJPairInfo.sigma">sigma (promod3.loop.ForcefieldLJPairInfo attribute)</a> -</li> - <li><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> -</li> - <li><a href="loop/structure_db.html#promod3.loop.CoordInfo.size">size (promod3.loop.CoordInfo attribute)</a> -</li> - <li><a href="modelling/monte_carlo.html#promod3.modelling.SoftSampler">SoftSampler (class in promod3.modelling)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.SSAgreementScorer">SSAgreementScorer (class in promod3.scoring)</a> -</li> - <li><a href="core/runtime_profiling.html#promod3.core.StaticRuntimeProfiler.Start">Start() (promod3.core.StaticRuntimeProfiler static method)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.CoordInfo.start_resnum">start_resnum (promod3.loop.CoordInfo attribute)</a> -</li> - <li><a href="core/runtime_profiling.html#promod3.core.StaticRuntimeProfiler.StartScoped">StartScoped() (promod3.core.StaticRuntimeProfiler static method)</a> -</li> - <li><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.Stash">Stash() (promod3.scoring.BackboneScoreEnv method)</a> -</li> - <li><a href="core/runtime_profiling.html#promod3.core.StaticRuntimeProfiler">StaticRuntimeProfiler (class in promod3.core)</a> -</li> - <li><a href="core/geometry.html#promod3.core.StemCoords">StemCoords (class in promod3.core)</a> -</li> - <li><a href="core/geometry.html#promod3.core.StemPairOrientation">StemPairOrientation (class in promod3.core)</a> -</li> - <li><a href="core/runtime_profiling.html#promod3.core.StaticRuntimeProfiler.Stop">Stop() (promod3.core.StaticRuntimeProfiler static method)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap">StructuralGap (class in promod3.modelling)</a> -</li> - <li><a href="modelling/gap_handling.html#promod3.modelling.StructuralGapList">StructuralGapList (class in promod3.modelling)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDB">StructureDB (class in promod3.loop)</a> -</li> - <li><a href="loop/structure_db.html#promod3.loop.StructureDBDataType">StructureDBDataType (class in promod3.loop)</a> -</li> - <li><a href="sidechain/subrotamer_optimizer.html#promod3.sidechain.SubrotamerOptimizer">SubrotamerOptimizer() (in module promod3.sidechain)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.SuperposeOnto">SuperposeOnto() (promod3.loop.BackboneList method)</a> -</li> - </ul></td> -</tr></table> + + <dt><a href="loop/structure_db.html#promod3.loop.Fragger.AddSequenceProfileParameters">AddSequenceProfileParameters() (promod3.loop.Fragger method)</a> + </dt> -<h2 id="T">T</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="actions/index_dev.html#module-test_actions">test_actions (module)</a> -</li> - <li><a href="actions/index_dev.html#test_actions.ActionTestCase.testPMExists">testPMExists() (test_actions.ActionTestCase method)</a> -</li> - <li><a href="modelling/pipeline.html#promod3.modelling.ModellingIssue.text">text (promod3.modelling.ModellingIssue attribute)</a> -</li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.TLCToRotID">TLCToRotID() (in module promod3.sidechain)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.ToDensity">ToDensity() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.ToEntity">ToEntity() (promod3.loop.AllAtomPositions method)</a> - - <ul> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.ToEntity">(promod3.loop.BackboneList method)</a> -</li> - </ul></li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.ToFrameResidue">ToFrameResidue() (promod3.sidechain.FRMRotamer method)</a> - - <ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.ToFrameResidue">(promod3.sidechain.RRMRotamer method)</a> -</li> - </ul></li> - <li><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.ToRRMRotamer">ToRRMRotamer() (promod3.sidechain.FRMRotamer method)</a> -</li> - <li><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler">TorsionSampler (class in promod3.loop)</a> -</li> - <li><a href="scoring/backbone_scorers.html#promod3.scoring.TorsionScorer">TorsionScorer (class in promod3.scoring)</a> -</li> - <li><a href="loop/backbone.html#promod3.loop.BackboneList.TransOmegaTorsions">TransOmegaTorsions() (promod3.loop.BackboneList method)</a> -</li> - <li><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.TreeSolve">TreeSolve() (promod3.core.GraphMinimizer method)</a> -</li> - </ul></td> -</tr></table> + + <dt><a href="loop/structure_db.html#promod3.loop.Fragger.AddSSAgreeParameters">AddSSAgreeParameters() (promod3.loop.Fragger method)</a> + </dt> -<h2 id="U">U</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.UpdateDistributions">UpdateDistributions() (promod3.loop.TorsionSampler method)</a> -</li> - <li><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.UpdatePositions">UpdatePositions() (promod3.loop.MmSystemCreator method)</a> - - <ul> - <li><a href="modelling/loop_closing.html#promod3.modelling.AllAtomRelaxer.UpdatePositions">(promod3.modelling.AllAtomRelaxer method)</a> -</li> - </ul></li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldConnectivity.urey_bradley_angles">urey_bradley_angles (promod3.loop.ForcefieldConnectivity attribute)</a> -</li> - </ul></td> -</tr></table> + + <dt><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.AddStructure">AddStructure() (promod3.core.pm3argparse.PM3ArgumentParser method)</a> + </dt> -<h2 id="V">V</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="sidechain/rotamer.html#promod3.sidechain.VINAParticleType">VINAParticleType (class in promod3.sidechain)</a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="sidechain/rotamer_constructor.html#promod3.sidechain.VINARotamerConstructor">VINARotamerConstructor (class in promod3.sidechain)</a> -</li> - </ul></td> -</tr></table> + + <dt><a href="loop/structure_db.html#promod3.loop.Fragger.AddStructureProfileParameters">AddStructureProfileParameters() (promod3.loop.Fragger method)</a> + </dt> + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.AddSubrotamerDefinition">AddSubrotamerDefinition() (promod3.sidechain.FRMRotamer method)</a> + </dt> + + <dt><a href="loop/structure_db.html#promod3.loop.Fragger.AddTorsionProbabilityParameters">AddTorsionProbabilityParameters() (promod3.loop.Fragger method)</a> + </dt> - </div> - - </div> - </div> - <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="index.html">ProMod3</a></h1> + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.after">after (promod3.modelling.StructuralGap attribute)</a> + </dt> + + + <dt><a href="modelling/algorithms.html#promod3.modelling.MotifMatch.alignment">alignment (promod3.modelling.MotifMatch attribute)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.all_atom_scorer">all_atom_scorer (promod3.modelling.ModellingHandle attribute)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.all_atom_scorer_env">all_atom_scorer_env (promod3.modelling.ModellingHandle attribute)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.all_atom_sidechain_env">all_atom_sidechain_env (promod3.modelling.ModellingHandle attribute)</a> + </dt> + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomEnvPositions.all_pos">all_pos (promod3.loop.AllAtomEnvPositions attribute)</a> + </dt> + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomClashScorer">AllAtomClashScorer (class in promod3.scoring)</a> + </dt> + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomEnv">AllAtomEnv (class in promod3.loop)</a> + </dt> + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomEnvPositions">AllAtomEnvPositions (class in promod3.loop)</a> + </dt> + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer">AllAtomInteractionScorer (class in promod3.scoring)</a> + </dt> + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomOverallScorer">AllAtomOverallScorer (class in promod3.scoring)</a> + </dt> + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer">AllAtomPackingScorer (class in promod3.scoring)</a> + </dt> -<h3>Navigation</h3> -<ul> -<li class="toctree-l1"><a class="reference internal" href="users.html">Users</a></li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li> -</ul> + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions">AllAtomPositions (class in promod3.loop)</a> + </dt> -<div class="relations"> -<h3>Related Topics</h3> -<ul> - <li><a href="index.html">Documentation overview</a><ul> - </ul></li> -</ul> -</div> -<div id="searchbox" style="display: none" role="search"> - <h3>Quick search</h3> - <div class="searchformwrapper"> - <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> - </div> -</div> -<script type="text/javascript">$('#searchbox').show(0);</script> + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.AllAtomPositions">AllAtomPositions() (promod3.loop.AllAtomPositions method)</a>, <a href="loop/all_atom.html#promod3.loop.AllAtomPositions.AllAtomPositions">[1]</a>, <a href="loop/all_atom.html#promod3.loop.AllAtomPositions.AllAtomPositions">[2]</a>, <a href="loop/all_atom.html#promod3.loop.AllAtomPositions.AllAtomPositions">[3]</a> + </dt> + + + <dt><a href="modelling/loop_closing.html#promod3.modelling.AllAtomRelaxer">AllAtomRelaxer (class in promod3.modelling)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomScorer">AllAtomScorer (class in promod3.scoring)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidAtom">AminoAcidAtom (class in promod3.loop)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidHydrogen">AminoAcidHydrogen (class in promod3.loop)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup">AminoAcidLookup (class in promod3.loop)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicAngleInfo.angle">angle (promod3.loop.ForcefieldHarmonicAngleInfo attribute)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicImproperInfo.angle">(promod3.loop.ForcefieldHarmonicImproperInfo attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldUreyBradleyAngleInfo.angle">(promod3.loop.ForcefieldUreyBradleyAngleInfo attribute)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldUreyBradleyAngleInfo.angle_force_constant">angle_force_constant (promod3.loop.ForcefieldUreyBradleyAngleInfo attribute)</a> + </dt> + + + <dt><a href="core/geometry.html#promod3.core.StemPairOrientation.angle_four">angle_four (promod3.core.StemPairOrientation attribute)</a> + </dt> + + + <dt><a href="core/geometry.html#promod3.core.StemPairOrientation.angle_one">angle_one (promod3.core.StemPairOrientation attribute)</a> + </dt> + + + <dt><a href="core/geometry.html#promod3.core.StemPairOrientation.angle_three">angle_three (promod3.core.StemPairOrientation attribute)</a> + </dt> + + + <dt><a href="core/geometry.html#promod3.core.StemPairOrientation.angle_two">angle_two (promod3.core.StemPairOrientation attribute)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.append">append() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.ApplyCCD">ApplyCCD() (promod3.modelling.LoopCandidates method)</a> + </dt> + + + <dt><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.ApplyDEE">ApplyDEE() (promod3.core.GraphMinimizer method)</a> + </dt> + + + <dt><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.ApplyEdgeDecomposition">ApplyEdgeDecomposition() (promod3.core.GraphMinimizer method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.ApplyKIC">ApplyKIC() (promod3.modelling.LoopCandidates method)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.ApplyOnResidue">ApplyOnResidue() (promod3.sidechain.FRMRotamer method)</a>, <a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.ApplyOnResidue">[1]</a> + </dt> + + <dd><dl> + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.ApplyOnResidue">(promod3.sidechain.FRMRotamerGroup method)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.ApplyOnResidue">(promod3.sidechain.RRMRotamer method)</a>, <a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.ApplyOnResidue">[1]</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup.ApplyOnResidue">(promod3.sidechain.RRMRotamerGroup method)</a> + </dt> + + </dl></dd> + + <dt><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.ApplyPairwiseFunction">ApplyPairwiseFunction() (promod3.scoring.BackboneScoreEnv method)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.ApplySelfEnergyThresh">ApplySelfEnergyThresh() (promod3.sidechain.FRMRotamerGroup method)</a> + </dt> + + <dd><dl> + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup.ApplySelfEnergyThresh">(promod3.sidechain.RRMRotamerGroup method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.ApplyTransform">ApplyTransform() (promod3.loop.BackboneList method)</a>, <a href="loop/backbone.html#promod3.loop.BackboneList.ApplyTransform">[1]</a>, <a href="loop/backbone.html#promod3.loop.BackboneList.ApplyTransform">[2]</a> + </dt> + + + <dt><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser">AssembleParser() (promod3.core.pm3argparse.PM3ArgumentParser method)</a> + </dt> + + + <dt><a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.AssignInternalEnergies">AssignInternalEnergies() (promod3.sidechain.RotamerConstructor method)</a> + </dt> + + <dd><dl> + + <dt><a href="sidechain/rotamer_constructor.html#promod3.sidechain.SCWRL3RotamerConstructor.AssignInternalEnergies">(promod3.sidechain.SCWRL3RotamerConstructor method)</a> + </dt> + + <dt><a href="sidechain/rotamer_constructor.html#promod3.sidechain.SCWRL4RotamerConstructor.AssignInternalEnergies">(promod3.sidechain.SCWRL4RotamerConstructor method)</a> + </dt> + + <dt><a href="sidechain/rotamer_constructor.html#promod3.sidechain.VINARotamerConstructor.AssignInternalEnergies">(promod3.sidechain.VINARotamerConstructor method)</a> + </dt> + </dl></dd> + + <dt><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.AStarSolve">AStarSolve() (promod3.core.GraphMinimizer method)</a> + </dt> + + + <dt><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructor.AttachEnvironment">AttachEnvironment() (promod3.modelling.SidechainReconstructor method)</a> + </dt> + + <dd><dl> + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomOverallScorer.AttachEnvironment">(promod3.scoring.AllAtomOverallScorer method)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomScorer.AttachEnvironment">(promod3.scoring.AllAtomScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer.AttachEnvironment">(promod3.scoring.BackboneOverallScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneScorer.AttachEnvironment">(promod3.scoring.BackboneScorer method)</a> + </dt> + + </dl></dd> + </dl></td> +</tr></table> +<h2 id="B">B</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.backbone_scorer">backbone_scorer (promod3.modelling.ModellingHandle attribute)</a> + </dt> + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.backbone_scorer_env">backbone_scorer_env (promod3.modelling.ModellingHandle attribute)</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>, <a href="loop/backbone.html#promod3.loop.BackboneList.BackboneList">[4]</a> + </dt> + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer">BackboneOverallScorer (class in promod3.scoring)</a> + </dt> + + + <dt><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer">BackboneRelaxer (class in promod3.modelling)</a>, <a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer">[1]</a> + </dt> + + + <dt><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv">BackboneScoreEnv (class in promod3.scoring)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneScorer">BackboneScorer (class in promod3.scoring)</a> + </dt> + + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib">BBDepRotamerLib (class in promod3.sidechain)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.before">before (promod3.modelling.StructuralGap attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldUreyBradleyAngleInfo.bond_force_constant">bond_force_constant (promod3.loop.ForcefieldUreyBradleyAngleInfo attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldBondInfo.bond_length">bond_length (promod3.loop.ForcefieldBondInfo attribute)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldUreyBradleyAngleInfo.bond_length">(promod3.loop.ForcefieldUreyBradleyAngleInfo attribute)</a> + </dt> + + </dl></dd> + + <dt><a href="modelling/pipeline.html#promod3.modelling.BuildFromRawModel">BuildFromRawModel() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.BuildRawModel">BuildRawModel() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.BuildSidechains">BuildSidechains() (in module promod3.modelling)</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><a href="core/geometry.html#promod3.core.StemCoords.c_coord">c_coord (promod3.core.StemCoords attribute)</a> + </dt> + + + <dt><a href="core/geometry.html#promod3.core.StemCoords.ca_coord">ca_coord (promod3.core.StemCoords attribute)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer.Calculate">Calculate() (promod3.scoring.BackboneOverallScorer method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.CalculateAllAtomScores">CalculateAllAtomScores() (promod3.modelling.LoopCandidates method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.CalculateBackboneScores">CalculateBackboneScores() (promod3.modelling.LoopCandidates method)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomOverallScorer.CalculateLinearCombination">CalculateLinearCombination() (promod3.scoring.AllAtomOverallScorer method)</a> + </dt> + + <dd><dl> + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer.CalculateLinearCombination">(promod3.scoring.BackboneOverallScorer method)</a> + </dt> + + </dl></dd> + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomScorer.CalculateScore">CalculateScore() (promod3.scoring.AllAtomScorer method)</a> + </dt> + + <dd><dl> + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneScorer.CalculateScore">(promod3.scoring.BackboneScorer method)</a> + </dt> + + </dl></dd> + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomScorer.CalculateScoreProfile">CalculateScoreProfile() (promod3.scoring.AllAtomScorer method)</a> + </dt> + + <dd><dl> + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneScorer.CalculateScoreProfile">(promod3.scoring.BackboneScorer method)</a> + </dt> + + </dl></dd> + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.CalculateSequenceProfileScores">CalculateSequenceProfileScores() (promod3.modelling.LoopCandidates method)</a>, <a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.CalculateSequenceProfileScores">[1]</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.CalculateStemRMSDs">CalculateStemRMSDs() (promod3.modelling.LoopCandidates method)</a>, <a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.CalculateStemRMSDs">[1]</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.CalculateStructureProfileScores">CalculateStructureProfileScores() (promod3.modelling.LoopCandidates method)</a>, <a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.CalculateStructureProfileScores">[1]</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.CARMSD">CARMSD() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer">CBetaScorer (class in promod3.scoring)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer">CBPackingScorer (class in promod3.scoring)</a> + </dt> + + + <dt><a href="modelling/loop_closing.html#promod3.modelling.CCD">CCD (class in promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/loop_closing.html#promod3.modelling.CCD.CCD">CCD() (promod3.modelling.CCD method)</a>, <a href="modelling/loop_closing.html#promod3.modelling.CCD.CCD">[1]</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.CCDCloser">CCDCloser (class in promod3.modelling)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.FragmentInfo.chain_index">chain_index (promod3.loop.FragmentInfo attribute)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.CoordInfo.chain_name">chain_name (promod3.loop.CoordInfo attribute)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.CheckFinalModel">CheckFinalModel() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.chi1">chi1 (promod3.sidechain.RotamerLibEntry attribute)</a> + </dt> + + + <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="scoring/backbone_scorers.html#promod3.scoring.ClashScorer">ClashScorer (class in promod3.scoring)</a> + </dt> + + + <dt><a href="core/runtime_profiling.html#promod3.core.StaticRuntimeProfiler.Clear">Clear() (promod3.core.StaticRuntimeProfiler static method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.clear">clear() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomEnv.ClearEnvironment">ClearEnvironment() (promod3.loop.AllAtomEnv method)</a> + </dt> + + <dd><dl> + + <dt><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.ClearEnvironment">(promod3.scoring.BackboneScoreEnv method)</a> + </dt> + + </dl></dd> + + <dt><a href="modelling/gap_handling.html#promod3.modelling.ClearGaps">ClearGaps() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.ClearPos">ClearPos() (promod3.loop.AllAtomPositions method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.ClearResidue">ClearResidue() (promod3.loop.AllAtomPositions method)</a> + </dt> + + + <dt><a href="modelling/loop_closing.html#promod3.modelling.CCD.Close">Close() (promod3.modelling.CCD method)</a> + </dt> + + <dd><dl> + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.CCDCloser.Close">(promod3.modelling.CCDCloser method)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.CTerminalCloser.Close">(promod3.modelling.CTerminalCloser method)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.CloserBase.Close">(promod3.modelling.CloserBase method)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.DeNovoCloser.Close">(promod3.modelling.DeNovoCloser method)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.DirtyCCDCloser.Close">(promod3.modelling.DirtyCCDCloser method)</a> + </dt> + + + <dt><a href="modelling/loop_closing.html#promod3.modelling.KIC.Close">(promod3.modelling.KIC method)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.KICCloser.Close">(promod3.modelling.KICCloser method)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.NTerminalCloser.Close">(promod3.modelling.NTerminalCloser method)</a> + </dt> + + </dl></dd> + + <dt><a href="modelling/pipeline.html#promod3.modelling.CloseGaps">CloseGaps() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.CloseLargeDeletions">CloseLargeDeletions() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.CloserBase">CloserBase (class in promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.CloseSmallDeletions">CloseSmallDeletions() (in module promod3.modelling)</a> + </dt> + + + <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="cmake/index.html#command:convert_module_data"><strong>convert_module_data</strong></a> + </dt> + + + <dt><a href="cmake/index.html#command:module"><strong>module</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> + + + <dt><a href="cmake/index.html#command:pymod"><strong>pymod</strong></a> + </dt> + + </dl></dd> + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt> + command line option + </dt> + + <dd><dl> + + <dt><a href="actions/index.html#cmdoption-f">-f, --energy_function</a> + </dt> + + + <dt><a href="actions/index.html#cmdoption-i">-i, --backbone-independent</a> + </dt> + + + <dt><a href="actions/index.html#cmdoption-k">-k, --keep-sidechains</a> + </dt> + + + <dt><a href="actions/index.html#cmdoption-n">-n, --no-disulfids</a> + </dt> + + + <dt><a href="actions/index.html#cmdoption-r">-r, --rigid-rotamers</a> + </dt> + + + <dt><a href="actions/index.html#cmdoption-s">-s, --no-subrotamer-optimization</a> + </dt> + + </dl></dd> + + <dt><a href="scoring/backbone_score_env.html#promod3.scoring.ConstraintFunction">ConstraintFunction (class in promod3.scoring)</a> + </dt> + + + <dt><a href="core/geometry.html#promod3.core.ConstructAtomPos">ConstructAtomPos() (in module promod3.core)</a> + </dt> + + + <dt><a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.ConstructBackboneFrameResidue">ConstructBackboneFrameResidue() (promod3.sidechain.RotamerConstructor method)</a>, <a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.ConstructBackboneFrameResidue">[1]</a> + </dt> + + + <dt><a href="core/geometry.html#promod3.core.ConstructCBetaPos">ConstructCBetaPos() (in module promod3.core)</a> + </dt> + + + <dt><a href="core/geometry.html#promod3.core.ConstructCTerminalOxygens">ConstructCTerminalOxygens() (in module promod3.core)</a> + </dt> + + + <dt><a href="sidechain/rotamer_constructor.html#promod3.sidechain.SCWRL4RotamerConstructor.ConstructFrameResidue">ConstructFrameResidue() (promod3.sidechain.SCWRL4RotamerConstructor method)</a> + </dt> + + + <dt><a href="sidechain/rotamer_constructor.html#promod3.sidechain.SCWRL4RotamerConstructor.ConstructFrameResidueHeuristic">ConstructFrameResidueHeuristic() (promod3.sidechain.SCWRL4RotamerConstructor method)</a> + </dt> + + <dd><dl> + + <dt><a href="sidechain/rotamer_constructor.html#promod3.sidechain.VINARotamerConstructor.ConstructFrameResidueHeuristic">(promod3.sidechain.VINARotamerConstructor method)</a> + </dt> + + </dl></dd> + + <dt><a href="sidechain/rotamer_constructor.html#promod3.sidechain.VINARotamerConstructor.ConstructFRMRotamerHeuristic">ConstructFRMRotamerHeuristic() (promod3.sidechain.VINARotamerConstructor method)</a> + </dt> + + + <dt><a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.ConstructRRMRotamerGroup">ConstructRRMRotamerGroup() (promod3.sidechain.RotamerConstructor method)</a>, <a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.ConstructRRMRotamerGroup">[1]</a>, <a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.ConstructRRMRotamerGroup">[2]</a>, <a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.ConstructRRMRotamerGroup">[3]</a> + </dt> + + + <dt><a href="sidechain/rotamer_constructor.html#promod3.sidechain.VINARotamerConstructor.ConstructRRMRotamerHeuristic">ConstructRRMRotamerHeuristic() (promod3.sidechain.VINARotamerConstructor method)</a> + </dt> + + + <dt><a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.ConstructSidechainFrameResidue">ConstructSidechainFrameResidue() (promod3.sidechain.RotamerConstructor method)</a>, <a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor.ConstructSidechainFrameResidue">[1]</a> + </dt> + + + <dt><a href="scoring/backbone_score_env.html#promod3.scoring.ContactFunction">ContactFunction (class in promod3.scoring)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.FraggerMap.Contains">Contains() (promod3.loop.FraggerMap method)</a> + </dt> + + <dd><dl> + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.Contains">(promod3.modelling.ScoreContainer method)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomOverallScorer.Contains">(promod3.scoring.AllAtomOverallScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer.Contains">(promod3.scoring.BackboneOverallScorer method)</a> + </dt> + + </dl></dd> + + <dt> + convert_module_data + </dt> + + <dd><dl> + + <dt><a href="cmake/index.html#command:convert_module_data"><strong>command</strong></a> + </dt> + + </dl></dd> + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.CoolerBase">CoolerBase (class in promod3.modelling)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.CoordInfo">CoordInfo (class in promod3.loop)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.Copy">Copy() (promod3.loop.AllAtomPositions method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.Copy">(promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.Copy">(promod3.modelling.ModellingHandle method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.Copy">(promod3.modelling.ScoreContainer method)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.Copy">(promod3.modelling.StructuralGap method)</a> + </dt> + + + <dt><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.Copy">(promod3.scoring.BackboneScoreEnv method)</a> + </dt> + + </dl></dd> + + <dt><a href="modelling/gap_handling.html#promod3.modelling.CountEnclosedGaps">CountEnclosedGaps() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.CountEnclosedInsertions">CountEnclosedInsertions() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="sidechain/graph.html#promod3.sidechain.RotamerGraph.CreateFromFRMList">CreateFromFRMList() (promod3.sidechain.RotamerGraph static method)</a> + </dt> + + + <dt><a href="sidechain/graph.html#promod3.sidechain.RotamerGraph.CreateFromRRMList">CreateFromRRMList() (promod3.sidechain.RotamerGraph static method)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.CreateSCWRL3Particle">CreateSCWRL3Particle() (in module promod3.sidechain)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.CreateSCWRL4Particle">CreateSCWRL4Particle() (in module promod3.sidechain)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.CreateVINAParticle">CreateVINAParticle() (in module promod3.sidechain)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.CTerminalCloser">CTerminalCloser (class in promod3.modelling)</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="modelling/monte_carlo.html#promod3.modelling.DeNovoCloser">DeNovoCloser (class in promod3.modelling)</a> + </dt> + + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.DihedralConfiguration">DihedralConfiguration (class in promod3.sidechain)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.DirtyCCDCloser">DirtyCCDCloser (class in promod3.modelling)</a> + </dt> + + + <dt><a href="scoring/backbone_score_env.html#promod3.scoring.DiscoContainer">DiscoContainer (class in promod3.scoring)</a> + </dt> + + + <dt><a href="scoring/backbone_score_env.html#promod3.scoring.DiscoContainer.AddStructuralInfo">DiscoContainer.AddStructuralInfo() (in module promod3.scoring)</a> + </dt> + + + <dt><a href="scoring/backbone_score_env.html#promod3.scoring.DiscoContainer.AttachConstraints">DiscoContainer.AttachConstraints() (in module promod3.scoring)</a> + </dt> + + + <dt><a href="core/geometry.html#promod3.core.StemPairOrientation.distance">distance (promod3.core.StemPairOrientation attribute)</a> + </dt> + + + <dt><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData.disulfid_bridges">disulfid_bridges (promod3.modelling.SidechainReconstructionData attribute)</a> + </dt> + + + <dt><a href="sidechain/disulfid.html#promod3.sidechain.DisulfidScore">DisulfidScore() (in module promod3.sidechain)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomClashScorer.DoExternalScores">DoExternalScores() (promod3.scoring.AllAtomClashScorer method)</a> + </dt> + + <dd><dl> + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer.DoExternalScores">(promod3.scoring.AllAtomInteractionScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer.DoExternalScores">(promod3.scoring.CBetaScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.ClashScorer.DoExternalScores">(promod3.scoring.ClashScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer.DoExternalScores">(promod3.scoring.HBondScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.PairwiseScorer.DoExternalScores">(promod3.scoring.PairwiseScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer.DoExternalScores">(promod3.scoring.ReducedScorer method)</a> + </dt> + + </dl></dd> + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomClashScorer.DoInternalScores">DoInternalScores() (promod3.scoring.AllAtomClashScorer method)</a> + </dt> + + <dd><dl> + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer.DoInternalScores">(promod3.scoring.AllAtomInteractionScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer.DoInternalScores">(promod3.scoring.CBetaScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.ClashScorer.DoInternalScores">(promod3.scoring.ClashScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer.DoInternalScores">(promod3.scoring.HBondScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.PairwiseScorer.DoInternalScores">(promod3.scoring.PairwiseScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer.DoInternalScores">(promod3.scoring.ReducedScorer method)</a> + </dt> + + </dl></dd> + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomClashScorer.DoNormalize">DoNormalize() (promod3.scoring.AllAtomClashScorer method)</a> + </dt> + + <dd><dl> + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer.DoNormalize">(promod3.scoring.AllAtomInteractionScorer method)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer.DoNormalize">(promod3.scoring.AllAtomPackingScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer.DoNormalize">(promod3.scoring.CBPackingScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer.DoNormalize">(promod3.scoring.CBetaScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.ClashScorer.DoNormalize">(promod3.scoring.ClashScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer.DoNormalize">(promod3.scoring.HBondScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.PairwiseScorer.DoNormalize">(promod3.scoring.PairwiseScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer.DoNormalize">(promod3.scoring.ReducedScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.SSAgreementScorer.DoNormalize">(promod3.scoring.SSAgreementScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.TorsionScorer.DoNormalize">(promod3.scoring.TorsionScorer method)</a> + </dt> + + </dl></dd> + + <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> + + </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/backbone.html#promod3.loop.BackboneList.empty">empty() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData.env_pos">env_pos (promod3.modelling.SidechainReconstructionData attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLJPairInfo.epsilon">epsilon (promod3.loop.ForcefieldLJPairInfo attribute)</a> + </dt> + + + <dt><a href="core/geometry.html#promod3.core.EvaluateGromacsPosRule">EvaluateGromacsPosRule() (in module promod3.core)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.ExponentialCooler">ExponentialCooler (class in promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.FullGapExtender.Extend">Extend() (promod3.modelling.FullGapExtender method)</a> + </dt> + + <dd><dl> + + <dt><a href="modelling/gap_handling.html#promod3.modelling.GapExtender.Extend">(promod3.modelling.GapExtender method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.Extend">(promod3.modelling.ScoreContainer method)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.ScoringGapExtender.Extend">(promod3.modelling.ScoringGapExtender method)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.ShiftExtension.Extend">(promod3.modelling.ShiftExtension method)</a> + </dt> + + </dl></dd> + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.ExtendAtCTerm">ExtendAtCTerm() (promod3.modelling.StructuralGap method)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.ExtendAtNTerm">ExtendAtNTerm() (promod3.modelling.StructuralGap method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.Extract">Extract() (promod3.loop.AllAtomPositions method)</a>, <a href="loop/all_atom.html#promod3.loop.AllAtomPositions.Extract">[1]</a> + </dt> + + <dd><dl> + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.Extract">(promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.Extract">(promod3.loop.PsipredPrediction method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.Extract">(promod3.modelling.LoopCandidates method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.Extract">(promod3.modelling.ScoreContainer method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.ExtractBackbone">ExtractBackbone() (promod3.loop.AllAtomPositions method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.ExtractLoopPositions">ExtractLoopPositions() (promod3.loop.MmSystemCreator method)</a> + </dt> + + + <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="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.FillFromDatabase">FillFromDatabase() (promod3.modelling.LoopCandidates static method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.FillFromMonteCarloSampler">FillFromMonteCarloSampler() (promod3.modelling.LoopCandidates static method)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.FillLoopsByDatabase">FillLoopsByDatabase() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.FillLoopsByMonteCarlo">FillLoopsByMonteCarlo() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/model_checking.html#promod3.modelling.FilterCandidates">FilterCandidates() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/model_checking.html#promod3.modelling.FilterCandidatesWithSC">FilterCandidatesWithSC() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/algorithms.html#promod3.modelling.FindMotifs">FindMotifs() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldBondInfo.force_constant">force_constant (promod3.loop.ForcefieldBondInfo attribute)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicAngleInfo.force_constant">(promod3.loop.ForcefieldHarmonicAngleInfo attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicImproperInfo.force_constant">(promod3.loop.ForcefieldHarmonicImproperInfo attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldPeriodicDihedralInfo.force_constant">(promod3.loop.ForcefieldPeriodicDihedralInfo attribute)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldAminoAcid">ForcefieldAminoAcid (class in promod3.loop)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldBondInfo">ForcefieldBondInfo (class in promod3.loop)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldConnectivity">ForcefieldConnectivity (class in promod3.loop)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicAngleInfo">ForcefieldHarmonicAngleInfo (class in promod3.loop)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicImproperInfo">ForcefieldHarmonicImproperInfo (class in promod3.loop)</a> + </dt> + + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLJPairInfo">ForcefieldLJPairInfo (class in promod3.loop)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup">ForcefieldLookup (class in promod3.loop)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldPeriodicDihedralInfo">ForcefieldPeriodicDihedralInfo (class in promod3.loop)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldUreyBradleyAngleInfo">ForcefieldUreyBradleyAngleInfo (class in promod3.loop)</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> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.fragger_handles">fragger_handles (promod3.modelling.ModellingHandle attribute)</a> + </dt> + + + <dt><a href="modelling/algorithms.html#promod3.modelling.FraggerHandle">FraggerHandle (class in promod3.modelling)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.FraggerMap">FraggerMap (class in promod3.loop)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.FragmentInfo">FragmentInfo (class in promod3.loop)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.FragmentSampler">FragmentSampler (class in promod3.modelling)</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="loop/structure_db.html#promod3.loop.PsipredPrediction.FromHHM">FromHHM() (promod3.loop.PsipredPrediction method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.FromHoriz">FromHoriz() (promod3.loop.PsipredPrediction method)</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> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.full_seq">full_seq (promod3.modelling.StructuralGap attribute)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.FullGapExtender">FullGapExtender (class in promod3.modelling)</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="modelling/gap_handling.html#promod3.modelling.GapExtender">GapExtender (class in promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.gaps">gaps (promod3.modelling.ModellingHandle attribute)</a> + </dt> + + + <dt><a href="modelling/algorithms.html#promod3.modelling.GenerateDeNovoTrajectories">GenerateDeNovoTrajectories() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GenerateStructureProfile">GenerateStructureProfile() (promod3.loop.StructureDB method)</a> + </dt> + + + <dt><a href="modelling/algorithms.html#promod3.modelling.FraggerHandle.Get">Get() (promod3.modelling.FraggerHandle method)</a> + </dt> + + <dd><dl> + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.Get">(promod3.modelling.ScoreContainer method)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomOverallScorer.Get">(promod3.scoring.AllAtomOverallScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer.Get">(promod3.scoring.BackboneOverallScorer method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetAA">GetAA() (promod3.loop.AllAtomPositions method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetAA">(promod3.loop.AminoAcidLookup static method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.GetAA">(promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetAA">(promod3.loop.ForcefieldLookup method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetAAA">GetAAA() (promod3.loop.AminoAcidLookup static method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetAAH">GetAAH() (promod3.loop.AminoAcidLookup static method)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetActiveSubrotamer">GetActiveSubrotamer() (promod3.sidechain.FRMRotamer method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomEnv.GetAllAtomPositions">GetAllAtomPositions() (promod3.loop.AllAtomEnv method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.GetAllAtomScoringKeys">GetAllAtomScoringKeys() (promod3.modelling.ScoringWeights static method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.GetAllAtomWeights">GetAllAtomWeights() (promod3.modelling.ScoringWeights static method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetAnchorAtomIndex">GetAnchorAtomIndex() (promod3.loop.AminoAcidLookup static method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.FragDB.GetAngularBinSize">GetAngularBinSize() (promod3.loop.FragDB method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetAtomName">GetAtomName() (promod3.loop.AminoAcidLookup static method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetAtomNameAmber">GetAtomNameAmber() (promod3.loop.AminoAcidLookup static method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetAtomNameCharmm">GetAtomNameCharmm() (promod3.loop.AminoAcidLookup static method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetBackboneList">GetBackboneList() (promod3.loop.StructureDB method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.GetBackboneScoringKeys">GetBackboneScoringKeys() (promod3.modelling.ScoringWeights static method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.GetBackboneWeights">GetBackboneWeights() (promod3.modelling.ScoringWeights static 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="loop/backbone.html#promod3.loop.BackboneList.GetBounds">GetBounds() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.GetC">GetC() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.GetCA">GetCA() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.GetCB">GetCB() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.GetChain">GetChain() (promod3.modelling.StructuralGap method)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.GetChainIndex">GetChainIndex() (promod3.modelling.StructuralGap method)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.GetChainName">GetChainName() (promod3.modelling.StructuralGap method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetCharges">GetCharges() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.GetClusteredCandidates">GetClusteredCandidates() (promod3.modelling.LoopCandidates method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.GetClusters">GetClusters() (promod3.modelling.LoopCandidates method)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.Particle.GetCollisionDistance">GetCollisionDistance() (promod3.sidechain.Particle method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.GetConfidence">GetConfidence() (promod3.loop.PsipredPrediction method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.GetConfidences">GetConfidences() (promod3.loop.PsipredPrediction method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetCoordIdx">GetCoordIdx() (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/mm_system_creation.html#promod3.loop.MmSystemCreator.GetCpuPlatformSupport">GetCpuPlatformSupport() (promod3.loop.MmSystemCreator method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetDefault">GetDefault() (promod3.loop.ForcefieldLookup static method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetDihedralAngles">GetDihedralAngles() (promod3.loop.StructureDB method)</a> + </dt> + + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.GetDihedralConfiguration">GetDihedralConfiguration() (in module promod3.sidechain)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.FragDB.GetDistBinSize">GetDistBinSize() (promod3.loop.FragDB method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetDisulfidBridges">GetDisulfidBridges() (promod3.loop.MmSystemCreator method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetDisulfidConnectivity">GetDisulfidConnectivity() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetDSSPStates">GetDSSPStates() (promod3.loop.StructureDB method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetElement">GetElement() (promod3.loop.AminoAcidLookup static method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomEnv.GetEnvironment">GetEnvironment() (promod3.loop.AllAtomEnv method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetEpsilons">GetEpsilons() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetFirstIndex">GetFirstIndex() (promod3.loop.AllAtomPositions method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetForcefieldAminoAcids">GetForcefieldAminoAcids() (promod3.loop.MmSystemCreator method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.Fragger.GetFragmentInfo">GetFragmentInfo() (promod3.loop.Fragger method)</a> + </dt> + + <dd><dl> + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.GetFragmentInfo">(promod3.modelling.LoopCandidates method)</a> + </dt> + + </dl></dd> + + <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/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetFudgeLJ">GetFudgeLJ() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetFudgeQQ">GetFudgeQQ() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetH1Index">GetH1Index() (promod3.loop.AminoAcidLookup static method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetH2Index">GetH2Index() (promod3.loop.AminoAcidLookup static method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetH3Index">GetH3Index() (promod3.loop.AminoAcidLookup static method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetHeavyIndex">GetHeavyIndex() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <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="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetHNIndex">GetHNIndex() (promod3.loop.AminoAcidLookup static method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetHydrogenIndex">GetHydrogenIndex() (promod3.loop.AminoAcidLookup static method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetHydrogenIndex">(promod3.loop.ForcefieldLookup method)</a> + </dt> + + </dl></dd> + + <dt><a href="modelling/algorithms.html#promod3.modelling.MotifQuery.GetIdentifiers">GetIdentifiers() (promod3.modelling.MotifQuery method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetIndex">GetIndex() (promod3.loop.AllAtomPositions method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetIndex">(promod3.loop.AminoAcidLookup static method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetIndexing">GetIndexing() (promod3.loop.MmSystemCreator method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetInternalConnectivity">GetInternalConnectivity() (promod3.loop.ForcefieldLookup 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> + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.GetLargestCluster">GetLargestCluster() (promod3.modelling.LoopCandidates method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetLastIndex">GetLastIndex() (promod3.loop.AllAtomPositions method)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.GetLength">GetLength() (promod3.modelling.StructuralGap method)</a> + </dt> + + + <dt><a href="modelling/algorithms.html#promod3.modelling.FraggerHandle.GetList">GetList() (promod3.modelling.FraggerHandle method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetLoopLengths">GetLoopLengths() (promod3.loop.MmSystemCreator method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetLoopStartIndices">GetLoopStartIndices() (promod3.loop.MmSystemCreator method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetMasses">GetMasses() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetMaxNumAtoms">GetMaxNumAtoms() (promod3.loop.AminoAcidLookup static method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetMaxNumHydrogens">GetMaxNumHydrogens() (promod3.loop.AminoAcidLookup static method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.GetN">GetN() (promod3.loop.BackboneList method)</a> + </dt> + + <dd><dl> + + <dt><a href="modelling/algorithms.html#promod3.modelling.MotifQuery.GetN">(promod3.modelling.MotifQuery 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="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer.GetNonBondedCutoff">GetNonBondedCutoff() (promod3.modelling.BackboneRelaxer method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetNumAtoms">GetNumAtoms() (promod3.loop.AllAtomPositions method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetNumAtoms">(promod3.loop.AminoAcidLookup static method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetNumAtoms">(promod3.loop.ForcefieldLookup method)</a> + </dt> + + </dl></dd> + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.GetNumCandidates">GetNumCandidates() (promod3.modelling.ScoreContainer method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetNumCoords">GetNumCoords() (promod3.loop.StructureDB method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.FragDB.GetNumFragments">GetNumFragments() (promod3.loop.FragDB method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetNumHydrogens">GetNumHydrogens() (promod3.loop.AminoAcidLookup static method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetNumLoopResidues">GetNumLoopResidues() (promod3.loop.MmSystemCreator method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetNumResidues">GetNumResidues() (promod3.loop.AllAtomPositions method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetNumResidues">(promod3.loop.MmSystemCreator method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/structure_db.html#promod3.loop.FragDB.GetNumStemPairs">GetNumStemPairs() (promod3.loop.FragDB method)</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.GetO">GetO() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AminoAcidLookup.GetOLC">GetOLC() (promod3.loop.AminoAcidLookup static method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.GetOLC">(promod3.loop.BackboneList method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetOmegaTorsion">GetOmegaTorsion() (promod3.loop.AllAtomPositions method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.GetOmegaTorsion">(promod3.loop.BackboneList method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetOXTIndex">GetOXTIndex() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetPeptideBoundConnectivity">GetPeptideBoundConnectivity() (promod3.loop.ForcefieldLookup 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/all_atom.html#promod3.loop.AllAtomPositions.GetPhiTorsion">GetPhiTorsion() (promod3.loop.AllAtomPositions method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.GetPhiTorsion">(promod3.loop.BackboneList method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetPos">GetPos() (promod3.loop.AllAtomPositions method)</a> + </dt> + + <dd><dl> + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.Particle.GetPos">(promod3.sidechain.Particle method)</a> + </dt> + + </dl></dd> + + <dt><a href="modelling/algorithms.html#promod3.modelling.MotifQuery.GetPositions">GetPositions() (promod3.modelling.MotifQuery method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.GetPrediction">GetPrediction() (promod3.loop.PsipredPrediction method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.GetPredictions">GetPredictions() (promod3.loop.PsipredPrediction 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/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/all_atom.html#promod3.loop.AllAtomPositions.GetPsiTorsion">GetPsiTorsion() (promod3.loop.AllAtomPositions method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.GetPsiTorsion">(promod3.loop.BackboneList method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetResidueDepths">GetResidueDepths() (promod3.loop.StructureDB method)</a> + </dt> + + + <dt><a href="modelling/model_checking.html#promod3.modelling.GetRingPunches">GetRingPunches() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/model_checking.html#promod3.modelling.GetRings">GetRings() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.GetRotamericConfiguration">GetRotamericConfiguration() (in module promod3.sidechain)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.Fragger.GetScore">GetScore() (promod3.loop.Fragger method)</a>, <a href="loop/structure_db.html#promod3.loop.Fragger.GetScore">[1]</a> + </dt> + + <dd><dl> + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.LinearScorer.GetScore">(promod3.modelling.LinearScorer method)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.ScorerBase.GetScore">(promod3.modelling.ScorerBase method)</a> + </dt> + + </dl></dd> + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.Particle.GetScoringFunction">GetScoringFunction() (promod3.sidechain.Particle method)</a> + </dt> + + + <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/all_atom.html#promod3.loop.AllAtomEnv.GetSeqres">GetSeqres() (promod3.loop.AllAtomEnv method)</a> + </dt> + + <dd><dl> + + <dt><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.GetSeqres">(promod3.scoring.BackboneScoreEnv method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.GetSequence">GetSequence() (promod3.loop.AllAtomPositions method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.GetSequence">(promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetSequence">(promod3.loop.StructureDB method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.GetSequence">(promod3.modelling.LoopCandidates method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetSequenceProfile">GetSequenceProfile() (promod3.loop.StructureDB method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.GetSequenceProfileScoresKey">GetSequenceProfileScoresKey() (promod3.modelling.ScoringWeights static method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetSigmas">GetSigmas() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.GetSimulation">GetSimulation() (promod3.loop.MmSystemCreator method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetSolventAccessibilitites">GetSolventAccessibilitites() (promod3.loop.StructureDB method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.GetStemRMSDsKey">GetStemRMSDsKey() (promod3.modelling.ScoringWeights static method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetStructureProfile">GetStructureProfile() (promod3.loop.StructureDB method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.GetStructureProfileScoresKey">GetStructureProfileScoresKey() (promod3.modelling.ScoringWeights static method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetSubDB">GetSubDB() (promod3.loop.StructureDB method)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetSubrotamerDefinition">GetSubrotamerDefinition() (promod3.sidechain.FRMRotamer method)</a> + </dt> + + + <dt><a href="modelling/loop_closing.html#promod3.modelling.AllAtomRelaxer.GetSystemCreator">GetSystemCreator() (promod3.modelling.AllAtomRelaxer method)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.CoolerBase.GetTemperature">GetTemperature() (promod3.modelling.CoolerBase method)</a> + </dt> + + <dd><dl> + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.ExponentialCooler.GetTemperature">(promod3.modelling.ExponentialCooler method)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetTemperature">(promod3.sidechain.FRMRotamer method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.GetTransform">GetTransform() (promod3.loop.BackboneList method)</a>, <a href="loop/backbone.html#promod3.loop.BackboneList.GetTransform">[1]</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.GetWeights">GetWeights() (promod3.modelling.ScoringWeights static method)</a> + </dt> + + + <dt><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer">GraphMinimizer (class in promod3.core)</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/mm_system_creation.html#promod3.loop.ForcefieldConnectivity.harmonic_angles">harmonic_angles (promod3.loop.ForcefieldConnectivity attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldConnectivity.harmonic_bonds">harmonic_bonds (promod3.loop.ForcefieldConnectivity attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldConnectivity.harmonic_impropers">harmonic_impropers (promod3.loop.ForcefieldConnectivity attribute)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.HasData">HasData() (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.HasFragLength">HasFragLength() (promod3.loop.FragDB method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.HasFragmentInfos">HasFragmentInfos() (promod3.modelling.LoopCandidates method)</a> + </dt> + + + <dt><a href="modelling/model_checking.html#promod3.modelling.HasRingPunches">HasRingPunches() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer">HBondScorer (class in promod3.scoring)</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/structure_db.html#promod3.loop.CoordInfo.id">id (promod3.loop.CoordInfo attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicImproperInfo.index_four">index_four (promod3.loop.ForcefieldHarmonicImproperInfo attribute)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldPeriodicDihedralInfo.index_four">(promod3.loop.ForcefieldPeriodicDihedralInfo attribute)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldBondInfo.index_one">index_one (promod3.loop.ForcefieldBondInfo attribute)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicAngleInfo.index_one">(promod3.loop.ForcefieldHarmonicAngleInfo attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicImproperInfo.index_one">(promod3.loop.ForcefieldHarmonicImproperInfo attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLJPairInfo.index_one">(promod3.loop.ForcefieldLJPairInfo attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldPeriodicDihedralInfo.index_one">(promod3.loop.ForcefieldPeriodicDihedralInfo attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldUreyBradleyAngleInfo.index_one">(promod3.loop.ForcefieldUreyBradleyAngleInfo attribute)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicAngleInfo.index_three">index_three (promod3.loop.ForcefieldHarmonicAngleInfo attribute)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicImproperInfo.index_three">(promod3.loop.ForcefieldHarmonicImproperInfo attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldPeriodicDihedralInfo.index_three">(promod3.loop.ForcefieldPeriodicDihedralInfo attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldUreyBradleyAngleInfo.index_three">(promod3.loop.ForcefieldUreyBradleyAngleInfo attribute)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldBondInfo.index_two">index_two (promod3.loop.ForcefieldBondInfo attribute)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicAngleInfo.index_two">(promod3.loop.ForcefieldHarmonicAngleInfo attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldHarmonicImproperInfo.index_two">(promod3.loop.ForcefieldHarmonicImproperInfo attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLJPairInfo.index_two">(promod3.loop.ForcefieldLJPairInfo attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldPeriodicDihedralInfo.index_two">(promod3.loop.ForcefieldPeriodicDihedralInfo attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldUreyBradleyAngleInfo.index_two">(promod3.loop.ForcefieldUreyBradleyAngleInfo attribute)</a> + </dt> + + </dl></dd> + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.FragmentSampler.Initialize">Initialize() (promod3.modelling.FragmentSampler method)</a> + </dt> + + <dd><dl> + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.PhiPsiSampler.Initialize">(promod3.modelling.PhiPsiSampler method)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.SamplerBase.Initialize">(promod3.modelling.SamplerBase method)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.SoftSampler.Initialize">(promod3.modelling.SoftSampler method)</a> + </dt> + + </dl></dd> + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.InsertInto">InsertInto() (promod3.loop.AllAtomPositions method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.InsertInto">(promod3.loop.BackboneList method)</a>, <a href="loop/backbone.html#promod3.loop.BackboneList.InsertInto">[1]</a> + </dt> + + </dl></dd> + + <dt><a href="modelling/pipeline.html#promod3.modelling.InsertLoop">InsertLoop() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.InsertLoopClearGaps">InsertLoopClearGaps() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData.is_c_ter">is_c_ter (promod3.modelling.SidechainReconstructionData attribute)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingIssue.is_major">is_major() (promod3.modelling.ModellingIssue method)</a> + </dt> + + + <dt><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData.is_n_ter">is_n_ter (promod3.modelling.SidechainReconstructionData attribute)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.IsAllAtomScoringSetUp">IsAllAtomScoringSetUp() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.IsAllSet">IsAllSet() (promod3.loop.AllAtomPositions method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.IsAnySet">IsAnySet() (promod3.loop.AllAtomPositions method)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.IsBackboneScoringSetUp">IsBackboneScoringSetUp() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.IsCTerminal">IsCTerminal() (promod3.modelling.StructuralGap method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.IsEmpty">IsEmpty() (promod3.modelling.ScoreContainer method)</a> + </dt> + + + <dt><a href="core/runtime_profiling.html#promod3.core.StaticRuntimeProfiler.IsEnabled">IsEnabled() (promod3.core.StaticRuntimeProfiler static method)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.IsNTerminal">IsNTerminal() (promod3.modelling.StructuralGap method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.IsSet">IsSet() (promod3.loop.AllAtomPositions 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> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.IsTerminal">IsTerminal() (promod3.modelling.StructuralGap method)</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="modelling/loop_closing.html#promod3.modelling.KIC">KIC (class in promod3.modelling)</a> + </dt> + + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="modelling/loop_closing.html#promod3.modelling.KIC.KIC">KIC() (promod3.modelling.KIC method)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.KICCloser">KICCloser (class in promod3.modelling)</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> + + <dd><dl> + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.length">(promod3.modelling.StructuralGap attribute)</a> + </dt> + + </dl></dd> + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.LinearCombine">LinearCombine() (promod3.modelling.ScoreContainer method)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.LinearScorer">LinearScorer (class in promod3.modelling)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldConnectivity.lj_pairs">lj_pairs (promod3.loop.ForcefieldConnectivity attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.Load">Load() (promod3.loop.ForcefieldLookup static method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/structure_db.html#promod3.loop.FragDB.Load">(promod3.loop.FragDB static method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.FraggerMap.Load">(promod3.loop.FraggerMap method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.Load">(promod3.loop.StructureDB static method)</a> + </dt> + + + <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.Load">(promod3.loop.TorsionSampler static method)</a> + </dt> + + + <dt><a href="modelling/algorithms.html#promod3.modelling.MotifQuery.Load">(promod3.modelling.MotifQuery static method)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer.Load">(promod3.scoring.AllAtomInteractionScorer static method)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer.Load">(promod3.scoring.AllAtomPackingScorer static method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer.Load">(promod3.scoring.CBPackingScorer static method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer.Load">(promod3.scoring.CBetaScorer static method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer.Load">(promod3.scoring.HBondScorer static method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer.Load">(promod3.scoring.ReducedScorer static method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.SSAgreementScorer.Load">(promod3.scoring.SSAgreementScorer static method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.TorsionScorer.Load">(promod3.scoring.TorsionScorer static method)</a> + </dt> + + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.Load">(promod3.sidechain.BBDepRotamerLib static method)</a> + </dt> + + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib.Load">(promod3.sidechain.RotamerLib static method)</a> + </dt> + + </dl></dd> + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.LoadAllAtomInteractionScorer">LoadAllAtomInteractionScorer() (in module promod3.scoring)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.LoadAllAtomPackingScorer">LoadAllAtomPackingScorer() (in module promod3.scoring)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.FraggerMap.LoadBB">LoadBB() (promod3.loop.FraggerMap method)</a> + </dt> + + + <dt><a href="sidechain/loading.html#promod3.sidechain.LoadBBDepLib">LoadBBDepLib() (in module promod3.sidechain)</a> + </dt> + + + <dt><a href="modelling/algorithms.html#promod3.modelling.FraggerHandle.LoadCached">LoadCached() (promod3.modelling.FraggerHandle method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.LoadCBetaScorer">LoadCBetaScorer() (in module promod3.scoring)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.LoadCBPackingScorer">LoadCBPackingScorer() (in module promod3.scoring)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.LoadCHARMM">LoadCHARMM() (promod3.loop.ForcefieldLookup static method)</a> + </dt> + + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.LoadDefaultAllAtomOverallScorer">LoadDefaultAllAtomOverallScorer() (in module promod3.scoring)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.LoadDefaultBackboneOverallScorer">LoadDefaultBackboneOverallScorer() (in module promod3.scoring)</a> + </dt> + + + <dt><a href="loop/load_loop_objects.html#promod3.loop.LoadFragDB">LoadFragDB() (in module promod3.loop)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.LoadHBondScorer">LoadHBondScorer() (in module promod3.scoring)</a> + </dt> + + + <dt><a href="sidechain/loading.html#promod3.sidechain.LoadLib">LoadLib() (in module promod3.sidechain)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.LoadPortable">LoadPortable() (promod3.loop.ForcefieldLookup static method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/structure_db.html#promod3.loop.FragDB.LoadPortable">(promod3.loop.FragDB static method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.LoadPortable">(promod3.loop.StructureDB static method)</a> + </dt> + + + <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.LoadPortable">(promod3.loop.TorsionSampler static method)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer.LoadPortable">(promod3.scoring.AllAtomInteractionScorer static method)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer.LoadPortable">(promod3.scoring.AllAtomPackingScorer static method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer.LoadPortable">(promod3.scoring.CBPackingScorer static method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer.LoadPortable">(promod3.scoring.CBetaScorer static method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer.LoadPortable">(promod3.scoring.HBondScorer static method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer.LoadPortable">(promod3.scoring.ReducedScorer static method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.SSAgreementScorer.LoadPortable">(promod3.scoring.SSAgreementScorer static method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.TorsionScorer.LoadPortable">(promod3.scoring.TorsionScorer static method)</a> + </dt> + + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.LoadPortable">(promod3.sidechain.BBDepRotamerLib static method)</a> + </dt> + + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib.LoadPortable">(promod3.sidechain.RotamerLib static method)</a> + </dt> + + </dl></dd> + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.LoadReducedScorer">LoadReducedScorer() (in module promod3.scoring)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.LoadSSAgreementScorer">LoadSSAgreementScorer() (in module promod3.scoring)</a> + </dt> + + + <dt><a href="loop/load_loop_objects.html#promod3.loop.LoadStructureDB">LoadStructureDB() (in module promod3.loop)</a> + </dt> + + + <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="scoring/backbone_scorers.html#promod3.scoring.LoadTorsionScorer">LoadTorsionScorer() (in module promod3.scoring)</a> + </dt> + + + <dt><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData.loop_lengths">loop_lengths (promod3.modelling.SidechainReconstructionData attribute)</a> + </dt> + + + <dt><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData.loop_start_indices">loop_start_indices (promod3.modelling.SidechainReconstructionData attribute)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates">LoopCandidates (class in promod3.modelling)</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="modelling/pipeline.html#promod3.modelling.ModellingIssue.Severity.MAJOR">MAJOR (promod3.modelling.ModellingIssue.Severity attribute)</a> + </dt> + + + <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> + + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.MakeStatic">MakeStatic() (promod3.sidechain.BBDepRotamerLib method)</a> + </dt> + + <dd><dl> + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib.MakeStatic">(promod3.sidechain.RotamerLib method)</a> + </dt> + + </dl></dd> + + <dt><a href="modelling/algorithms.html#promod3.modelling.MotifMatch.mat">mat (promod3.modelling.MotifMatch attribute)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.FragDB.MaxFragLength">MaxFragLength() (promod3.loop.FragDB method)</a> + </dt> + + + <dt><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.MCSolve">MCSolve() (promod3.core.GraphMinimizer 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="modelling/gap_handling.html#promod3.modelling.MergeGaps">MergeGaps() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.MergeGapsByDistance">MergeGapsByDistance() (in module promod3.modelling)</a> + </dt> + + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="modelling/pipeline.html#promod3.modelling.MergeMHandle">MergeMHandle() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.MinCADistance">MinCADistance() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.MinimizeModelEnergy">MinimizeModelEnergy() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingIssue.Severity.MINOR">MINOR (promod3.modelling.ModellingIssue.Severity attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator">MmSystemCreator (class in promod3.loop)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.model">model (promod3.modelling.ModellingHandle attribute)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.modelling_issues">modelling_issues (promod3.modelling.ModellingHandle attribute)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle">ModellingHandle (class in promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingIssue">ModellingIssue (class in promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingIssue.Severity">ModellingIssue.Severity (class in promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModelTermini">ModelTermini() (in module promod3.modelling)</a> + </dt> + + + <dt> + module + </dt> + + <dd><dl> + + <dt><a href="cmake/index.html#command:module"><strong>command</strong></a> + </dt> + + </dl></dd> + + <dt><a href="modelling/algorithms.html#promod3.modelling.MotifMatch">MotifMatch (class in promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/algorithms.html#promod3.modelling.MotifQuery">MotifQuery (class in promod3.modelling)</a> + </dt> + + + <dt><a href="core/helper.html#promod3.core.helper.MsgErrorAndExit">MsgErrorAndExit() (in module promod3.core.helper)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldPeriodicDihedralInfo.multiplicity">multiplicity (promod3.loop.ForcefieldPeriodicDihedralInfo attribute)</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="core/geometry.html#promod3.core.StemCoords.n_coord">n_coord (promod3.core.StemCoords attribute)</a> + </dt> + + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.NaiveSolve">NaiveSolve() (promod3.core.GraphMinimizer method)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.NTerminalCloser">NTerminalCloser (class in promod3.modelling)</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/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> +</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="scoring/backbone_score_env.html#promod3.scoring.PairwiseFunction">PairwiseFunction (class in promod3.scoring)</a> + </dt> + + + <dt><a href="scoring/backbone_score_env.html#promod3.scoring.PairwiseFunctionType">PairwiseFunctionType (class in promod3.scoring)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.Particle.PairwiseScore">PairwiseScore() (promod3.sidechain.Particle method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.PairwiseScorer">PairwiseScorer (class in promod3.scoring)</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/mm_system_creation.html#promod3.loop.ForcefieldConnectivity.periodic_dihedrals">periodic_dihedrals (promod3.loop.ForcefieldConnectivity attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldConnectivity.periodic_impropers">periodic_impropers (promod3.loop.ForcefieldConnectivity attribute)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldPeriodicDihedralInfo.phase">phase (promod3.loop.ForcefieldPeriodicDihedralInfo attribute)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.PhiPsiSampler">PhiPsiSampler (class in promod3.modelling)</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="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.Pop">Pop() (promod3.scoring.BackboneScoreEnv method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.FragDB.PrintStatistics">PrintStatistics() (promod3.loop.FragDB method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.PrintStatistics">(promod3.loop.StructureDB method)</a> + </dt> + + </dl></dd> + + <dt><a href="core/runtime_profiling.html#promod3.core.StaticRuntimeProfiler.PrintSummary">PrintSummary() (promod3.core.StaticRuntimeProfiler static method)</a> + </dt> + + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.probability">probability (promod3.sidechain.RotamerLibEntry attribute)</a> + </dt> + + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.profiles">profiles (promod3.modelling.ModellingHandle attribute)</a> + </dt> + + + <dt><a href="core/index.html#module-promod3.core">promod3.core (module)</a> + </dt> + + + <dt><a href="core/helper.html#module-promod3.core.helper">promod3.core.helper (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="modelling/index.html#module-promod3.modelling">promod3.modelling (module)</a> + </dt> + + + <dt><a href="scoring/index.html#module-promod3.scoring">promod3.scoring (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="modelling/monte_carlo.html#promod3.modelling.FragmentSampler.ProposeStep">ProposeStep() (promod3.modelling.FragmentSampler method)</a> + </dt> + + <dd><dl> + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.PhiPsiSampler.ProposeStep">(promod3.modelling.PhiPsiSampler method)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.SamplerBase.ProposeStep">(promod3.modelling.SamplerBase method)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.SoftSampler.ProposeStep">(promod3.modelling.SoftSampler method)</a> + </dt> + + </dl></dd> + + <dt><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.Prune">Prune() (promod3.core.GraphMinimizer method)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.PScoringFunction">PScoringFunction (class in promod3.sidechain)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.psipred_predictions">psipred_predictions (promod3.modelling.ModellingHandle attribute)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.PsipredPrediction">PsipredPrediction (class in promod3.loop)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.PsipredPrediction.PsipredPrediction">PsipredPrediction() (promod3.loop.PsipredPrediction method)</a>, <a href="loop/structure_db.html#promod3.loop.PsipredPrediction.PsipredPrediction">[1]</a> + </dt> + + + <dt> + pymod + </dt> + + <dd><dl> + + <dt><a href="cmake/index.html#command:pymod"><strong>command</strong></a> + </dt> + + </dl></dd> + </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="modelling/algorithms.html#promod3.modelling.MotifMatch.query_idx">query_idx (promod3.modelling.MotifMatch attribute)</a> + </dt> + + </dl></td> + <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> + + <dd><dl> + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib.QueryLib">(promod3.sidechain.RotamerLib method)</a> + </dt> + + </dl></dd> + </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="sidechain/loading.html#promod3.sidechain.ReadDunbrackFile">ReadDunbrackFile() (in module promod3.sidechain)</a> + </dt> + + + <dt><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructor.Reconstruct">Reconstruct() (promod3.modelling.SidechainReconstructor method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.ReconstructCBetaPositions">ReconstructCBetaPositions() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.ReconstructCStemOxygen">ReconstructCStemOxygen() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.ReconstructOxygenPositions">ReconstructOxygenPositions() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="modelling/sidechain_reconstruction.html#promod3.modelling.ReconstructSidechains">ReconstructSidechains() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer">ReducedScorer (class in promod3.scoring)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.LoopCandidates.Remove">Remove() (promod3.modelling.LoopCandidates method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.RemoveCoordinates">RemoveCoordinates() (promod3.loop.StructureDB method)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.RemoveTerminalGaps">RemoveTerminalGaps() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ReorderGaps">ReorderGaps() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.ReplaceFragment">ReplaceFragment() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="modelling/model_checking.html#promod3.modelling.ReportMolProbityScores">ReportMolProbityScores() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomEnvPositions.res_indices">res_indices (promod3.loop.AllAtomEnvPositions attribute)</a> + </dt> + + + <dt><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.Reset">Reset() (promod3.core.GraphMinimizer method)</a> + </dt> + + <dd><dl> + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.CoolerBase.Reset">(promod3.modelling.CoolerBase method)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.ExponentialCooler.Reset">(promod3.modelling.ExponentialCooler method)</a> + </dt> + + </dl></dd> + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingIssue.residue_list">residue_list (promod3.modelling.ModellingIssue attribute)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.resize">resize() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="sidechain/disulfid.html#promod3.sidechain.ResolveCysteins">ResolveCysteins() (in module promod3.sidechain)</a> + </dt> + + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="modelling/algorithms.html#promod3.modelling.RigidBlocks">RigidBlocks() (in module promod3.modelling)</a>, <a href="modelling/algorithms.html#promod3.modelling.RigidBlocks">[1]</a>, <a href="modelling/algorithms.html#promod3.modelling.RigidBlocks">[2]</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.RMSD">RMSD() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData.rotamer_res_indices">rotamer_res_indices (promod3.modelling.SidechainReconstructionData attribute)</a> + </dt> + + + <dt><a href="sidechain/rotamer_constructor.html#promod3.sidechain.RotamerConstructor">RotamerConstructor (class in promod3.sidechain)</a> + </dt> + + + <dt><a href="sidechain/graph.html#promod3.sidechain.RotamerGraph">RotamerGraph (class in promod3.sidechain)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.RotamerID">RotamerID (class in promod3.sidechain)</a> + </dt> + + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib">RotamerLib (class in promod3.sidechain)</a> + </dt> + + + <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="loop/backbone.html#promod3.loop.BackboneList.RotateAroundOmegaTorsion">RotateAroundOmegaTorsion() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.RotateAroundPhiPsiTorsion">RotateAroundPhiPsiTorsion() (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="core/geometry.html#promod3.core.RotationAroundLine">RotationAroundLine() (in module promod3.core)</a>, <a href="core/geometry.html#promod3.core.RotationAroundLine">[1]</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="modelling/loop_closing.html#promod3.modelling.AllAtomRelaxer.Run">Run() (promod3.modelling.AllAtomRelaxer method)</a> + </dt> + + <dd><dl> + + <dt><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer.Run">(promod3.modelling.BackboneRelaxer method)</a> + </dt> + + </dl></dd> + + <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> + + + <dt><a href="modelling/model_checking.html#promod3.modelling.RunMolProbity">RunMolProbity() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/model_checking.html#promod3.modelling.RunMolProbityEntity">RunMolProbityEntity() (in module promod3.modelling)</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="modelling/monte_carlo.html#promod3.modelling.SampleMonteCarlo">SampleMonteCarlo() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.SamplerBase">SamplerBase (class in promod3.modelling)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.Save">Save() (promod3.loop.ForcefieldLookup 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.FraggerMap.Save">(promod3.loop.FraggerMap 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="modelling/algorithms.html#promod3.modelling.MotifQuery.Save">(promod3.modelling.MotifQuery method)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer.Save">(promod3.scoring.AllAtomInteractionScorer method)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer.Save">(promod3.scoring.AllAtomPackingScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer.Save">(promod3.scoring.CBPackingScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer.Save">(promod3.scoring.CBetaScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer.Save">(promod3.scoring.HBondScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer.Save">(promod3.scoring.ReducedScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.SSAgreementScorer.Save">(promod3.scoring.SSAgreementScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.TorsionScorer.Save">(promod3.scoring.TorsionScorer method)</a> + </dt> + + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.Save">(promod3.sidechain.BBDepRotamerLib method)</a> + </dt> + + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib.Save">(promod3.sidechain.RotamerLib method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/structure_db.html#promod3.loop.FraggerMap.SaveBB">SaveBB() (promod3.loop.FraggerMap method)</a> + </dt> + + + <dt><a href="modelling/algorithms.html#promod3.modelling.FraggerHandle.SaveCached">SaveCached() (promod3.modelling.FraggerHandle method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SavePortable">SavePortable() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/structure_db.html#promod3.loop.FragDB.SavePortable">(promod3.loop.FragDB method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.SavePortable">(promod3.loop.StructureDB method)</a> + </dt> + + + <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.SavePortable">(promod3.loop.TorsionSampler method)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer.SavePortable">(promod3.scoring.AllAtomInteractionScorer method)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer.SavePortable">(promod3.scoring.AllAtomPackingScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer.SavePortable">(promod3.scoring.CBPackingScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer.SavePortable">(promod3.scoring.CBetaScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer.SavePortable">(promod3.scoring.HBondScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer.SavePortable">(promod3.scoring.ReducedScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.SSAgreementScorer.SavePortable">(promod3.scoring.SSAgreementScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.TorsionScorer.SavePortable">(promod3.scoring.TorsionScorer method)</a> + </dt> + + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.SavePortable">(promod3.sidechain.BBDepRotamerLib method)</a> + </dt> + + + <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib.SavePortable">(promod3.sidechain.RotamerLib method)</a> + </dt> + + </dl></dd> + + <dt><a href="scoring/backbone_score_env.html#promod3.scoring.PairwiseFunction.Score">Score() (promod3.scoring.PairwiseFunction method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer">ScoreContainer (class in promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/monte_carlo.html#promod3.modelling.ScorerBase">ScorerBase (class in promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.ScoringGapExtender">ScoringGapExtender (class in promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights">ScoringWeights (class in promod3.modelling)</a> + </dt> + + + <dt><a href="scoring/other_scoring_functions.html#promod3.scoring.SCWRL3DisulfidScore">SCWRL3DisulfidScore() (in module promod3.scoring)</a> + </dt> + + + <dt><a href="scoring/other_scoring_functions.html#promod3.scoring.SCWRL3PairwiseScore">SCWRL3PairwiseScore() (in module promod3.scoring)</a> + </dt> + + + <dt><a href="sidechain/rotamer_constructor.html#promod3.sidechain.SCWRL3RotamerConstructor">SCWRL3RotamerConstructor (class in promod3.sidechain)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.SCWRL4ParticleType">SCWRL4ParticleType (class in promod3.sidechain)</a> + </dt> + + + <dt><a href="sidechain/rotamer_constructor.html#promod3.sidechain.SCWRL4RotamerConstructor">SCWRL4RotamerConstructor (class in promod3.sidechain)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.FragDB.SearchDB">SearchDB() (promod3.loop.FragDB method)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.seq">seq (promod3.modelling.StructuralGap attribute)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.seqres">seqres (promod3.modelling.ModellingHandle attribute)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.Set">Set() (promod3.loop.BackboneList method)</a> + </dt> + + <dd><dl> + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoreContainer.Set">(promod3.modelling.ScoreContainer method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SetAA">SetAA() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetActiveSubrotamer">SetActiveSubrotamer() (promod3.sidechain.FRMRotamer method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.SetAllAtomScoringKeys">SetAllAtomScoringKeys() (promod3.modelling.ScoringWeights static method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SetAroundOmegaTorsion">SetAroundOmegaTorsion() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SetAroundPhiPsiTorsion">SetAroundPhiPsiTorsion() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SetAroundPhiTorsion">SetAroundPhiTorsion() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SetAroundPsiTorsion">SetAroundPsiTorsion() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.SetBackboneScoringKeys">SetBackboneScoringKeys() (promod3.modelling.ScoringWeights static method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SetBackrub">SetBackrub() (promod3.loop.BackboneList method)</a>, <a href="loop/backbone.html#promod3.loop.BackboneList.SetBackrub">[1]</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SetC">SetC() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SetCA">SetCA() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SetCB">SetCB() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetCharges">SetCharges() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <dt><a href="core/setcompoundschemlib.html#promod3.SetCompoundsChemlib">SetCompoundsChemlib() (in module promod3)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.SetCpuPlatformSupport">SetCpuPlatformSupport() (promod3.loop.MmSystemCreator method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetDefault">SetDefault() (promod3.loop.ForcefieldLookup static method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetDisulfidConnectivity">SetDisulfidConnectivity() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer.SetEnergy">SetEnergy() (promod3.scoring.AllAtomInteractionScorer method)</a> + </dt> + + <dd><dl> + + <dt><a href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer.SetEnergy">(promod3.scoring.AllAtomPackingScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer.SetEnergy">(promod3.scoring.CBPackingScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer.SetEnergy">(promod3.scoring.CBetaScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer.SetEnergy">(promod3.scoring.HBondScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer.SetEnergy">(promod3.scoring.ReducedScorer method)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.TorsionScorer.SetEnergy">(promod3.scoring.TorsionScorer method)</a> + </dt> + + </dl></dd> + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomEnv.SetEnvironment">SetEnvironment() (promod3.loop.AllAtomEnv method)</a> + </dt> + + <dd><dl> + + <dt><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.SetEnvironment">(promod3.scoring.BackboneScoreEnv method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetEpsilons">SetEpsilons() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.SetFraggerHandles">SetFraggerHandles() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetFrameEnergy">SetFrameEnergy() (promod3.sidechain.FRMRotamer method)</a>, <a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetFrameEnergy">[1]</a> + </dt> + + <dd><dl> + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.SetFrameEnergy">(promod3.sidechain.FRMRotamerGroup method)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.SetFrameEnergy">(promod3.sidechain.RRMRotamer method)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup.SetFrameEnergy">(promod3.sidechain.RRMRotamerGroup method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetFudgeLJ">SetFudgeLJ() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetFudgeQQ">SetFudgeQQ() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomEnv.SetInitialEnvironment">SetInitialEnvironment() (promod3.loop.AllAtomEnv method)</a> + </dt> + + <dd><dl> + + <dt><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.SetInitialEnvironment">(promod3.scoring.BackboneScoreEnv method)</a> + </dt> + + </dl></dd> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetInternalConnectivity">SetInternalConnectivity() (promod3.loop.ForcefieldLookup 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/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetMasses">SetMasses() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SetN">SetN() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="modelling/loop_closing.html#promod3.modelling.BackboneRelaxer.SetNonBondedCutoff">SetNonBondedCutoff() (promod3.modelling.BackboneRelaxer method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SetO">SetO() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SetOLC">SetOLC() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetPeptideBoundConnectivity">SetPeptideBoundConnectivity() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.SetPos">SetPos() (promod3.loop.AllAtomPositions method)</a> + </dt> + + + <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="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.SetPsipredPrediction">SetPsipredPrediction() (promod3.scoring.BackboneScoreEnv method)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.SetPsipredPredictions">SetPsipredPredictions() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.SetResidue">SetResidue() (promod3.loop.AllAtomPositions method)</a>, <a href="loop/all_atom.html#promod3.loop.AllAtomPositions.SetResidue">[1]</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.SSAgreementScorer.SetScore">SetScore() (promod3.scoring.SSAgreementScorer method)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SetSequence">SetSequence() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.SetSequenceProfiles">SetSequenceProfiles() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.SetSequenceProfileScoresKey">SetSequenceProfileScoresKey() (promod3.modelling.ScoringWeights static method)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.SetSigmas">SetSigmas() (promod3.loop.ForcefieldLookup method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.SetStemRMSDsKey">SetStemRMSDsKey() (promod3.modelling.ScoringWeights static method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.SetStructureProfile">SetStructureProfile() (promod3.loop.StructureDB method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.SetStructureProfileScoresKey">SetStructureProfileScoresKey() (promod3.modelling.ScoringWeights static method)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetTemperature">SetTemperature() (promod3.sidechain.FRMRotamer method)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.SetupDefaultAllAtomScoring">SetupDefaultAllAtomScoring() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.SetupDefaultBackboneScoring">SetupDefaultBackboneScoring() (in module promod3.modelling)</a> + </dt> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.SetupSystem">SetupSystem() (promod3.loop.MmSystemCreator method)</a> + </dt> + + + <dt><a href="modelling/loop_candidates.html#promod3.modelling.ScoringWeights.SetWeights">SetWeights() (promod3.modelling.ScoringWeights static method)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingIssue.severity">severity (promod3.modelling.ModellingIssue attribute)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.CoordInfo.shift">shift (promod3.loop.CoordInfo attribute)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap.ShiftCTerminal">ShiftCTerminal() (promod3.modelling.StructuralGap method)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.ShiftExtension">ShiftExtension (class in promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/pipeline.html#promod3.modelling.ModellingHandle.sidechain_reconstructor">sidechain_reconstructor (promod3.modelling.ModellingHandle attribute)</a> + </dt> + + + <dt><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData">SidechainReconstructionData (class in promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructor">SidechainReconstructor (class in promod3.modelling)</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="loop/mm_system_creation.html#promod3.loop.ForcefieldLJPairInfo.sigma">sigma (promod3.loop.ForcefieldLJPairInfo 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="modelling/monte_carlo.html#promod3.modelling.SoftSampler">SoftSampler (class in promod3.modelling)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.SSAgreementScorer">SSAgreementScorer (class in promod3.scoring)</a> + </dt> + + + <dt><a href="core/runtime_profiling.html#promod3.core.StaticRuntimeProfiler.Start">Start() (promod3.core.StaticRuntimeProfiler static method)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.CoordInfo.start_resnum">start_resnum (promod3.loop.CoordInfo attribute)</a> + </dt> + + + <dt><a href="core/runtime_profiling.html#promod3.core.StaticRuntimeProfiler.StartScoped">StartScoped() (promod3.core.StaticRuntimeProfiler static method)</a> + </dt> + + + <dt><a href="scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv.Stash">Stash() (promod3.scoring.BackboneScoreEnv method)</a> + </dt> + + + <dt><a href="core/runtime_profiling.html#promod3.core.StaticRuntimeProfiler">StaticRuntimeProfiler (class in promod3.core)</a> + </dt> + + + <dt><a href="core/geometry.html#promod3.core.StemCoords">StemCoords (class in promod3.core)</a> + </dt> + + + <dt><a href="core/geometry.html#promod3.core.StemPairOrientation">StemPairOrientation (class in promod3.core)</a> + </dt> + + + <dt><a href="core/runtime_profiling.html#promod3.core.StaticRuntimeProfiler.Stop">Stop() (promod3.core.StaticRuntimeProfiler static method)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGap">StructuralGap (class in promod3.modelling)</a> + </dt> + + + <dt><a href="modelling/gap_handling.html#promod3.modelling.StructuralGapList">StructuralGapList (class in promod3.modelling)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDB">StructureDB (class in promod3.loop)</a> + </dt> + + + <dt><a href="loop/structure_db.html#promod3.loop.StructureDBDataType">StructureDBDataType (class in promod3.loop)</a> + </dt> + + + <dt><a href="sidechain/subrotamer_optimizer.html#promod3.sidechain.SubrotamerOptimizer">SubrotamerOptimizer() (in module promod3.sidechain)</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="modelling/pipeline.html#promod3.modelling.ModellingIssue.text">text (promod3.modelling.ModellingIssue attribute)</a> + </dt> + + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.TLCToRotID">TLCToRotID() (in module promod3.sidechain)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.ToDensity">ToDensity() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="loop/all_atom.html#promod3.loop.AllAtomPositions.ToEntity">ToEntity() (promod3.loop.AllAtomPositions method)</a> + </dt> + + <dd><dl> + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.ToEntity">(promod3.loop.BackboneList method)</a> + </dt> + + </dl></dd> + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.ToFrameResidue">ToFrameResidue() (promod3.sidechain.FRMRotamer method)</a> + </dt> + + <dd><dl> + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.ToFrameResidue">(promod3.sidechain.RRMRotamer method)</a> + </dt> + + </dl></dd> + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.ToRRMRotamer">ToRRMRotamer() (promod3.sidechain.FRMRotamer method)</a> + </dt> + + + <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler">TorsionSampler (class in promod3.loop)</a> + </dt> + + + <dt><a href="scoring/backbone_scorers.html#promod3.scoring.TorsionScorer">TorsionScorer (class in promod3.scoring)</a> + </dt> + + + <dt><a href="loop/backbone.html#promod3.loop.BackboneList.TransOmegaTorsions">TransOmegaTorsions() (promod3.loop.BackboneList method)</a> + </dt> + + + <dt><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.TreeSolve">TreeSolve() (promod3.core.GraphMinimizer 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> + + + <dt><a href="loop/mm_system_creation.html#promod3.loop.MmSystemCreator.UpdatePositions">UpdatePositions() (promod3.loop.MmSystemCreator method)</a> + </dt> + + <dd><dl> + + <dt><a href="modelling/loop_closing.html#promod3.modelling.AllAtomRelaxer.UpdatePositions">(promod3.modelling.AllAtomRelaxer method)</a> + </dt> + + </dl></dd> + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="loop/mm_system_creation.html#promod3.loop.ForcefieldConnectivity.urey_bradley_angles">urey_bradley_angles (promod3.loop.ForcefieldConnectivity attribute)</a> + </dt> + + </dl></td> +</tr></table> + +<h2 id="V">V</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="sidechain/rotamer.html#promod3.sidechain.VINAParticleType">VINAParticleType (class in promod3.sidechain)</a> + </dt> + + </dl></td> + <td style="width: 33%" valign="top"><dl> + + <dt><a href="sidechain/rotamer_constructor.html#promod3.sidechain.VINARotamerConstructor">VINARotamerConstructor (class in promod3.sidechain)</a> + </dt> + + </dl></td> +</tr></table> + + + + </div> + + </div> + </div> + <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> + <div class="sphinxsidebarwrapper"> + + <div class="relations"> +<h3>Related Topics</h3> +<ul> + <li><a href="index.html">Documentation overview</a><ul> + </ul></li> +</ul> +</div> + +<div id="searchbox" style="display: none" role="search"> + <h3>Quick search</h3> + <form class="search" action="search.html" method="get"> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> +<script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> @@ -2294,7 +4062,7 @@ ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> </div> diff --git a/doc/html/gettingstarted.html b/doc/html/gettingstarted.html index 983f421491abfffc470e9a5b45d167eb32c4eeca..040ad96124524394294b078c836828783f13f37c 100644 --- a/doc/html/gettingstarted.html +++ b/doc/html/gettingstarted.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Getting Started — ProMod3 3.0.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" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="index.html" /> + <link rel="up" title="Documentation For Users" href="users.html" /> <link rel="next" title="ProMod3 Actions" href="actions/index.html" /> <link rel="prev" title="Documentation For Users" href="users.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -42,30 +55,30 @@ <ol class="arabic"> <li><p class="first">Fetch the source code from <a class="reference external" href="https://git.scicore.unibas.ch/schwede/ProMod3.git">https://git.scicore.unibas.ch/schwede/ProMod3.git</a>. Or directly pull it with git:</p> -<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> git clone https://git.scicore.unibas.ch/schwede/ProMod3.git <DIR> +<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> git clone https://git.scicore.unibas.ch/schwede/ProMod3.git <DIR> </pre></div> </div> </li> -<li><p class="first">Obtain all dependencies and compile ProMod3 with <code class="docutils literal notranslate"><span class="pre">cmake</span></code> and <code class="docutils literal notranslate"><span class="pre">make</span></code> +<li><p class="first">Obtain all dependencies and compile ProMod3 with <code class="docutils literal"><span class="pre">cmake</span></code> and <code class="docutils literal"><span class="pre">make</span></code> (see <a class="reference internal" href="buildsystem.html#building-promod"><span class="std std-ref">here</span></a>).</p> </li> -<li><p class="first">Ensure that you have a <code class="docutils literal notranslate"><span class="pre">stage/bin</span></code> folder which includes a <code class="docutils literal notranslate"><span class="pre">pm</span></code> executable. -For convenience, add the folder to your <code class="docutils literal notranslate"><span class="pre">PATH</span></code> env. variable.</p> +<li><p class="first">Ensure that you have a <code class="docutils literal"><span class="pre">stage/bin</span></code> folder which includes a <code class="docutils literal"><span class="pre">pm</span></code> executable. +For convenience, add the folder to your <code class="docutils literal"><span class="pre">PATH</span></code> env. variable.</p> </li> <li><p class="first">You can now execute ProMod3 by running the following in your terminal:</p> </li> </ol> <blockquote> -<div><div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> pm <COMMAND> +<div><div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> pm <COMMAND> </pre></div> </div> -<p>Here <code class="docutils literal notranslate"><span class="pre"><COMMAND></span></code> can be:</p> +<p>Here <code class="docutils literal"><span class="pre"><COMMAND></span></code> can be:</p> <ul> -<li><p class="first">a predefined “action” (see <a class="reference internal" href="actions/index.html#promod-actions"><span class="std std-ref">here</span></a>)</p> +<li><p class="first">a predefined “action” (see <a class="reference internal" href="actions/index.html#promod-actions"><span class="std std-ref">here</span></a>)</p> </li> <li><p class="first">the path to a python script, such as the following example:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">io</span> -<span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">loop</span> +<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">io</span> +<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">loop</span> <span class="c1"># generate backbone with dihedrals of a helix and store it</span> <span class="n">sequence</span> <span class="o">=</span> <span class="s2">"HELLYEAH"</span> @@ -73,8 +86,8 @@ For convenience, add the folder to your <code class="docutils literal notranslat <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="s2">"test.pdb"</span><span class="p">)</span> </pre></div> </div> -<p>The execution of this script should generate a <code class="docutils literal notranslate"><span class="pre">test.pdb</span></code> file, which you -can visualize with any pdb reader (e.g. <code class="docutils literal notranslate"><span class="pre">dng</span></code> from OST).</p> +<p>The execution of this script should generate a <code class="docutils literal"><span class="pre">test.pdb</span></code> file, which you +can visualize with any pdb reader (e.g. <code class="docutils literal"><span class="pre">dng</span></code> from OST).</p> </li> </ul> </div></blockquote> @@ -87,17 +100,17 @@ the desired target sequence. The modelling steps then are:</p> <ul class="simple"> <li>Build a raw model from a template by copying the part of the template which is conserved</li> -<li>Perform loop modelling to close all gaps (see <a class="reference internal" href="loop/index.html#module-promod3.loop" title="promod3.loop: Loop Handling"><code class="xref py py-mod docutils literal notranslate"><span class="pre">loop</span></code></a> module)</li> -<li>Reconstruct sidechains (using <a class="reference internal" href="sidechain/index.html#module-promod3.sidechain" title="promod3.sidechain: Sidechain Modelling"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sidechain</span></code></a> module)</li> +<li>Perform loop modelling to close all gaps (see <a class="reference internal" href="loop/index.html#module-promod3.loop" title="promod3.loop: Loop Handling"><code class="xref py py-mod docutils literal"><span class="pre">loop</span></code></a> module)</li> +<li>Reconstruct sidechains (using <a class="reference internal" href="sidechain/index.html#module-promod3.sidechain" title="promod3.sidechain: Sidechain Modelling"><code class="xref py py-mod docutils literal"><span class="pre">sidechain</span></code></a> module)</li> <li>Minimize energy of final model using molecular mechanics -(using <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/molmm/#module-ost.mol.mm" title="(in OpenStructure v1.11.0)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ost.mol.mm</span></code></a> from OST)</li> +(using <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/molmm/#module-ost.mol.mm" title="(in OpenStructure v2.0.0)"><code class="xref py py-mod docutils literal"><span class="pre">ost.mol.mm</span></code></a> from OST)</li> </ul> <p>Since a good amount of time is spent in OpenMM routines to minimize energy, we -try to use the fast and multi-threaded “CPU” platform of OpenMM (should be +try to use the fast and multi-threaded “CPU” platform of OpenMM (should be included and working on any hardware supported by OpenMM). If the platform is -not available, we use the slower “Reference” platform. For the “CPU” platform, +not available, we use the slower “Reference” platform. For the “CPU” platform, multiple CPU threads can be used by setting the env. variable -<code class="docutils literal notranslate"><span class="pre">PM3_OPENMM_CPU_THREADS</span></code> to the number of desired threads. If the variable is +<code class="docutils literal"><span class="pre">PM3_OPENMM_CPU_THREADS</span></code> to the number of desired threads. If the variable is not set, 1 thread will be used by default.</p> </div> </div> @@ -109,39 +122,14 @@ not set, 1 thread will be used by default.</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="users.html">Users</a><ul class="current"> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="actions/index.html">ProMod3 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="container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="user_contributions.html">Contributing</a></li> + <h3><a href="index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Getting Started</a><ul> +<li><a class="reference internal" href="#get-and-run-project">Get and Run ProMod3</a></li> +<li><a class="reference internal" href="#modelling-pipeline">Modelling pipeline</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> @@ -153,26 +141,23 @@ not set, 1 thread will be used by default.</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="_sources/gettingstarted.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -181,11 +166,11 @@ not set, 1 thread will be used by default.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="_sources/gettingstarted.rst.txt" + <a href="_sources/gettingstarted.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/index.html b/doc/html/index.html index b8eb80d2c2c6cd0dab6805eaa4dacea1cf15a5cc..52816f747ceea71e4a33ae55f42b5ab7bb71c0ee 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -1,21 +1,32 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>ProMod3 — ProMod3 3.0.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" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="#" /> <link rel="next" title="Documentation For Users" href="users.html" /> <link rel="stylesheet" href="_static/custom.css" type="text/css" /> @@ -23,7 +34,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -51,12 +63,12 @@ algorithms.</p> <li class="toctree-l2"><a class="reference internal" href="actions/index.html">ProMod3 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="container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> +<li class="toctree-l2"><a class="reference internal" href="modelling/index.html"><code class="docutils literal"><span class="pre">modelling</span></code> - Protein 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="scoring/index.html"><code class="docutils literal"><span class="pre">scoring</span></code> - Loop Scoring</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 Handling</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="core/setcompoundschemlib.html"><code class="docutils literal"><span class="pre">SetCompoundsChemlib()</span></code></a></li> <li class="toctree-l2"><a class="reference internal" href="user_contributions.html">Contributing</a></li> </ul> </li> @@ -79,26 +91,13 @@ algorithms.</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="#">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul> -<li class="toctree-l1"><a class="reference internal" href="users.html">Users</a></li> + <h3><a href="#">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">ProMod3</a></li> +<li><a class="reference internal" href="#documentation">Documentation</a><ul> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li> +</li> </ul> - <div class="relations"> <h3>Related Topics</h3> <ul> @@ -107,26 +106,23 @@ algorithms.</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="_sources/index.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -135,11 +131,11 @@ algorithms.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="_sources/index.rst.txt" + <a href="_sources/index.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/license.html b/doc/html/license.html index 3706d3bc0534cbbdd79a35d97cd608dced80261c..04058dbcd20c214e5d0fc8ed7c6253aa21ac0014 100644 --- a/doc/html/license.html +++ b/doc/html/license.html @@ -1,21 +1,32 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>License — ProMod3 3.0.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" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="index.html" /> <link rel="next" title="References" href="references.html" /> <link rel="prev" title="Using Binary Files In ProMod3" href="portableIO.html" /> @@ -24,7 +35,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -36,7 +48,7 @@ <div class="section" id="license"> <h1>License<a class="headerlink" href="#license" title="Permalink to this headline">¶</a></h1> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> +<div class="highlight-default"><div class="highlight"><pre><span></span> Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -256,28 +268,7 @@ doc/Copyright_cmake.py.txt </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul> -<li class="toctree-l1"><a class="reference internal" href="users.html">Users</a></li> -</ul> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="developers.html">Developers</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="index.html">Documentation overview</a><ul> @@ -286,26 +277,23 @@ doc/Copyright_cmake.py.txt </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="_sources/license.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -314,11 +302,11 @@ doc/Copyright_cmake.py.txt ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="_sources/license.rst.txt" + <a href="_sources/license.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/loop/all_atom.html b/doc/html/loop/all_atom.html index 5092649eae89470936fcd8a8e3c1a1b578f38377..dfadecd6b489414ac1c71bbf09eb6963d6627076 100644 --- a/doc/html/loop/all_atom.html +++ b/doc/html/loop/all_atom.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Handling All Atom Positions — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="loop - Loop Handling" href="index.html" /> <link rel="next" title="Generate ost.mol.mm systems" href="mm_system_creation.html" /> <link rel="prev" title="Structural Data" href="structure_db.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -37,12 +50,12 @@ <div class="section" id="handling-all-atom-positions"> <h1>Handling All Atom Positions<a class="headerlink" href="#handling-all-atom-positions" title="Permalink to this headline">¶</a></h1> <p>To represent and handle all atom loops, we provide a container -(<a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a>) to represent arbitrary amino acid sequences with the -positions of all their heavy atoms and an environment (<a class="reference internal" href="#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnv</span></code></a>) to +(<a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a>) to represent arbitrary amino acid sequences with the +positions of all their heavy atoms and an environment (<a class="reference internal" href="#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnv</span></code></a>) to handle changes during loop modelling.</p> <p>The example below showcases some operations on the two classes:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">io</span><span class="p">,</span> <span class="n">geom</span> -<span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">loop</span> +<div class="highlight-default"><div class="highlight"><pre><span></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">geom</span> +<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">loop</span> <span class="c1"># load example (has res. numbering starting at 1)</span> <span class="n">ent</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="s2">"data/1CRN.pdb"</span><span class="p">)</span> @@ -83,8 +96,8 @@ new loop is being added.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.SequenceHandle</span></code></a> / -<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.SequenceList" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.SequenceList</span></code></a>) – Internal SEQRES to be set (single chain or list with one per +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.SequenceHandle</span></code></a> / +<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.SequenceList" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.SequenceList</span></code></a>) – Internal SEQRES to be set (single chain or list with one per chain). Whenever setting structural data, consistency with this SEQRES is enforced.</td> </tr> </tbody> @@ -106,11 +119,11 @@ concatenated one after each other (indexing starts at 0)</li> <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_structure</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.EntityHandle</span></code></a>) – Structral data to be set as environment. The chains +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>env_structure</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityHandle</span></code></a>) – Structral data to be set as environment. The chains in <em>env_structure</em> are expected to be in the same order as the SEQRES items provided in constructor.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>env</em> is inconsistent with +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>env</em> is inconsistent with SEQRES set in constructor. This can be because of corrupt residue numbers or sequence mismatches.</td> </tr> @@ -133,15 +146,15 @@ means, that positions in the env. may be reset, newly set or cleared.</p> <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>new_env_pos</strong> (<a class="reference internal" href="#promod3.loop.AllAtomEnvPositions" title="promod3.loop.AllAtomEnvPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnvPositions</span></code></a>) – Structural data to be set as environment.</li> -<li><strong>new_pos</strong> (<a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a>) – Structural data to be set as environment.</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 notranslate"><span class="pre">BackboneList</span></code></a>) – Backbone data to be set as environment.</li> -<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResNum" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResNum</span></code></a>) – Res. number defining the start position in the SEQRES.</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of chain the structural data belongs to.</li> +<li><strong>new_env_pos</strong> (<a class="reference internal" href="#promod3.loop.AllAtomEnvPositions" title="promod3.loop.AllAtomEnvPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnvPositions</span></code></a>) – Structural data to be set as environment.</li> +<li><strong>new_pos</strong> (<a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a>) – Structural data to be set as environment.</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>) – Backbone data to be set as environment.</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResNum" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResNum</span></code></a>) – Res. number defining the start position in the SEQRES.</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>new_pos</em> / <em>new_env_pos</em> / +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>new_pos</em> / <em>new_env_pos</em> / <em>bb_list</em> is inconsistent with SEQRES set in constructor or when either <em>start_resnum</em> or <em>chain_idx</em> point to invalid positions in the SEQRES.</p> @@ -161,13 +174,13 @@ with idx <em>chain_idx</em> starting from residue number <em>start_resnum</em></ <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>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Start of stretch to clear</li> -<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Length of stretch to clear</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Chain the stretch belongs to</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Start of stretch to clear</li> +<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Length of stretch to clear</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Chain the stretch 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> when either <em>start_resnum</em> or +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> when either <em>start_resnum</em> or <em>chain_idx</em> point to invalid positions in the SEQRES.</p> </td> </tr> @@ -183,20 +196,20 @@ with idx <em>chain_idx</em> starting from residue number <em>start_resnum</em></ <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Copy of stretch of structural data in environment. Useful to store -a loop to reset later with <a class="reference internal" href="#promod3.loop.AllAtomEnv.SetEnvironment" title="promod3.loop.AllAtomEnv.SetEnvironment"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetEnvironment()</span></code></a>.</p> +a loop to reset later with <a class="reference internal" href="#promod3.loop.AllAtomEnv.SetEnvironment" title="promod3.loop.AllAtomEnv.SetEnvironment"><code class="xref py py-meth docutils literal"><span class="pre">SetEnvironment()</span></code></a>.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.loop.AllAtomEnvPositions" title="promod3.loop.AllAtomEnvPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnvPositions</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.loop.AllAtomEnvPositions" title="promod3.loop.AllAtomEnvPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnvPositions</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Start of stretch to store</li> -<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Length of stretch to store</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Chain the stretch belongs to</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Start of stretch to store</li> +<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Length of stretch to store</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Chain the stretch 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> when either <em>start_resnum</em> or +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> when either <em>start_resnum</em> or <em>chain_idx</em> point to invalid positions in the SEQRES.</p> </td> </tr> @@ -213,7 +226,7 @@ a loop to reset later with <a class="reference internal" href="#promod3.loop.All <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">SEQRES that was set in constructor (one sequence per chain).</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.SequenceList" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.SequenceList</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.SequenceList" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.SequenceList</span></code></a></td> </tr> </tbody> </table> @@ -229,9 +242,9 @@ a loop to reset later with <a class="reference internal" href="#promod3.loop.All <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Reference (use with caution!) to the internal storage of all atom positions for the environment. All residues of all chains are stored continuously in there. To get a copy of some positions use -<a class="reference internal" href="#promod3.loop.AllAtomEnv.GetEnvironment" title="promod3.loop.AllAtomEnv.GetEnvironment"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetEnvironment()</span></code></a>.</td> +<a class="reference internal" href="#promod3.loop.AllAtomEnv.GetEnvironment" title="promod3.loop.AllAtomEnv.GetEnvironment"><code class="xref py py-meth docutils literal"><span class="pre">GetEnvironment()</span></code></a>.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a></td> </tr> </tbody> </table> @@ -248,15 +261,15 @@ stored continuously in there. To get a copy of some positions use <dd><p>Container for the positions of all heavy atoms of an arbitrary amino acid sequence. This is tailored for fast operations within C++ codes. The Python export described here, is mainly meant for debugging or to initialize the object and feed it to other classes using it.</p> <p>Indexing of positions and residues:</p> <ul class="simple"> -<li>residue indexing is in the range [0, <a class="reference internal" href="#promod3.loop.AllAtomPositions.GetNumResidues" title="promod3.loop.AllAtomPositions.GetNumResidues"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumResidues()</span></code></a>-1] and is in the +<li>residue indexing is in the range [0, <a class="reference internal" href="#promod3.loop.AllAtomPositions.GetNumResidues" title="promod3.loop.AllAtomPositions.GetNumResidues"><code class="xref py py-meth docutils literal"><span class="pre">GetNumResidues()</span></code></a>-1] and is in the order of the sequence used to initialize the object</li> -<li>indexing of single atoms is in the range [0, <a class="reference internal" href="#promod3.loop.AllAtomPositions.GetNumAtoms" title="promod3.loop.AllAtomPositions.GetNumAtoms"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumAtoms()</span></code></a>-1]. For -each residue you can find the bounds with <a class="reference internal" href="#promod3.loop.AllAtomPositions.GetFirstIndex" title="promod3.loop.AllAtomPositions.GetFirstIndex"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetFirstIndex()</span></code></a> and -<a class="reference internal" href="#promod3.loop.AllAtomPositions.GetLastIndex" title="promod3.loop.AllAtomPositions.GetLastIndex"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetLastIndex()</span></code></a> or find a single atom with <a class="reference internal" href="#promod3.loop.AllAtomPositions.GetIndex" title="promod3.loop.AllAtomPositions.GetIndex"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetIndex()</span></code></a></li> +<li>indexing of single atoms is in the range [0, <a class="reference internal" href="#promod3.loop.AllAtomPositions.GetNumAtoms" title="promod3.loop.AllAtomPositions.GetNumAtoms"><code class="xref py py-meth docutils literal"><span class="pre">GetNumAtoms()</span></code></a>-1]. For +each residue you can find the bounds with <a class="reference internal" href="#promod3.loop.AllAtomPositions.GetFirstIndex" title="promod3.loop.AllAtomPositions.GetFirstIndex"><code class="xref py py-meth docutils literal"><span class="pre">GetFirstIndex()</span></code></a> and +<a class="reference internal" href="#promod3.loop.AllAtomPositions.GetLastIndex" title="promod3.loop.AllAtomPositions.GetLastIndex"><code class="xref py py-meth docutils literal"><span class="pre">GetLastIndex()</span></code></a> or find a single atom with <a class="reference internal" href="#promod3.loop.AllAtomPositions.GetIndex" title="promod3.loop.AllAtomPositions.GetIndex"><code class="xref py py-meth docutils literal"><span class="pre">GetIndex()</span></code></a></li> </ul> <p>Each atom position is initially unset (unless a list of residues is passed -when constructing it) and can only be set with calls to <a class="reference internal" href="#promod3.loop.AllAtomPositions.SetPos" title="promod3.loop.AllAtomPositions.SetPos"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetPos()</span></code></a> or -<a class="reference internal" href="#promod3.loop.AllAtomPositions.SetResidue" title="promod3.loop.AllAtomPositions.SetResidue"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetResidue()</span></code></a>.</p> +when constructing it) and can only be set with calls to <a class="reference internal" href="#promod3.loop.AllAtomPositions.SetPos" title="promod3.loop.AllAtomPositions.SetPos"><code class="xref py py-meth docutils literal"><span class="pre">SetPos()</span></code></a> or +<a class="reference internal" href="#promod3.loop.AllAtomPositions.SetResidue" title="promod3.loop.AllAtomPositions.SetResidue"><code class="xref py py-meth docutils literal"><span class="pre">SetResidue()</span></code></a>.</p> <dl class="method"> <dt id="promod3.loop.AllAtomPositions.AllAtomPositions"> <code class="descname">AllAtomPositions</code><span class="sig-paren">(</span><em>sequence</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.AllAtomPositions.AllAtomPositions" title="Permalink to this definition">¶</a></dt> @@ -265,9 +278,9 @@ when constructing it) and can only be set with calls to <a class="reference inte <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Sequence of amino acid one letter codes.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Sequence of amino acid one letter codes.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>sequence</em> contains a one letter +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>sequence</em> contains a one letter code which is not one of the 20 default amino acids.</td> </tr> </tbody> @@ -283,9 +296,9 @@ are extracted from the given residues.</p> <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>residues</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandleList</span></code>) – List of residues</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>residues</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandleList</span></code>) – List of residues</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if any residue has a one letter +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if any residue has a one letter code which is not one of the 20 default amino acids.</td> </tr> </tbody> @@ -297,18 +310,18 @@ code which is not one of the 20 default amino acids.</td> <code class="descname">AllAtomPositions</code><span class="sig-paren">(</span><em>sequence</em>, <em>residues</em><span class="sig-paren">)</span></dt> <dd><p>Creates a container for the given <em>sequence</em> and extracts positions from <em>residues</em>. The residues may be different amino acids than the given -<em>sequence</em> (see <a class="reference internal" href="#promod3.loop.AllAtomPositions.SetResidue" title="promod3.loop.AllAtomPositions.SetResidue"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetResidue()</span></code></a>).</p> +<em>sequence</em> (see <a class="reference internal" href="#promod3.loop.AllAtomPositions.SetResidue" title="promod3.loop.AllAtomPositions.SetResidue"><code class="xref py py-meth docutils literal"><span class="pre">SetResidue()</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>sequence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Sequence of amino acid one letter codes.</li> -<li><strong>residues</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandleList</span></code>) – List of residues from which positions are extracted.</li> +<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Sequence of amino acid one letter codes.</li> +<li><strong>residues</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandleList</span></code>) – List of residues from which 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>sequence</em> contains a one letter +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>sequence</em> contains a one letter code which is not one of the 20 default amino acids or if <em>sequence</em> and <em>residues</em> are inconsistent in size.</p> </td> @@ -326,9 +339,9 @@ positions are extracted from the given residues.</p> <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 notranslate"><span class="pre">BackboneList</span></code></a>) – Backbone list of residues</td> +<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>) – Backbone list of residues</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if any residue has a one letter +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if any residue has a one letter code which is not one of the 20 default amino acids.</td> </tr> </tbody> @@ -346,12 +359,12 @@ and if found set the corresponding position, otherwise we unset it.</p> <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_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index</li> -<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue providing atoms</li> +<li><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index</li> +<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue providing atoms</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds.</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds.</p> </td> </tr> </tbody> @@ -369,13 +382,13 @@ position is set or cleared according to the data in <em>other</em>.</p> <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_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index</li> -<li><strong>other</strong> (<a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a>) – Position container from which we take data</li> -<li><strong>other_res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index in <em>other</em></li> +<li><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index</li> +<li><strong>other</strong> (<a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a>) – Position container from which we take data</li> +<li><strong>other_res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index in <em>other</em></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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>res_index</em> or <em>other_res_index</em> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>res_index</em> or <em>other_res_index</em> out of bounds or if residues in the two containers are inconsistent (different amino acids).</p> </td> @@ -392,12 +405,12 @@ out of bounds or if residues in the two containers are inconsistent <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Set position at that index.</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>) – Set position to <em>pos</em>.</li> +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Set position at that index.</li> +<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – Set position to <em>pos</em>.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>index</em> out of bounds.</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>index</em> out of bounds.</p> </td> </tr> </tbody> @@ -411,9 +424,9 @@ out of bounds or if residues in the two containers are inconsistent <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Unset position at that index.</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Unset position at that index.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>index</em> out of bounds.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>index</em> out of bounds.</td> </tr> </tbody> </table> @@ -426,9 +439,9 @@ out of bounds or if residues in the two containers are inconsistent <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_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Unset all positions for residue at that index.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Unset all positions for residue at that index.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds.</td> </tr> </tbody> </table> @@ -443,11 +456,11 @@ out of bounds or if residues in the two containers are inconsistent <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Position at given index.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a></td> </tr> -<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Atom position index.</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Atom position index.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>index</em> out of bounds.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>index</em> out of bounds.</td> </tr> </tbody> </table> @@ -462,11 +475,11 @@ out of bounds or if residues in the two containers are inconsistent <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, if the position at that index is currently set.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> -<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Atom position index.</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Atom position index.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>index</em> out of bounds.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>index</em> out of bounds.</td> </tr> </tbody> </table> @@ -483,17 +496,17 @@ out of bounds or if residues in the two containers are inconsistent naming) for residue at index <em>res_index</em>.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index</li> -<li><strong>atom_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Atom name</li> +<li><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index</li> +<li><strong>atom_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Atom name</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds or -if <em>atom_name</em> is not one of that residue’s heavy atoms.</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds or +if <em>atom_name</em> is not one of that residue’s heavy atoms.</p> </td> </tr> </tbody> @@ -509,11 +522,11 @@ if <em>atom_name</em> is not one of that residue’s heavy atoms.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">First atom position index for residue at index <em>res_index</em>.</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><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>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds.</td> </tr> </tbody> </table> @@ -528,11 +541,11 @@ if <em>atom_name</em> is not one of that residue’s heavy atoms.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Last atom position index for residue at index <em>res_index</em>.</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><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>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds.</td> </tr> </tbody> </table> @@ -547,11 +560,11 @@ if <em>atom_name</em> is not one of that residue’s heavy atoms.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Amino acid type of residue at index <em>res_index</em>.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds.</td> </tr> </tbody> </table> @@ -566,11 +579,11 @@ if <em>atom_name</em> is not one of that residue’s heavy atoms.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, if any atom position of residue at index <em>res_index</em> is set.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds.</td> </tr> </tbody> </table> @@ -585,11 +598,11 @@ if <em>atom_name</em> is not one of that residue’s heavy atoms.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, if all atom positions of residue at index <em>res_index</em> are set.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds.</td> </tr> </tbody> </table> @@ -606,16 +619,16 @@ if <em>atom_name</em> is not one of that residue’s heavy atoms.</p> if required atom positions (C-N-CA-C) are not set.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index</li> -<li><strong>def_angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Default phi angle.</li> +<li><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index</li> +<li><strong>def_angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Default phi 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>res_index</em> - 1 or <em>res_index</em> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>res_index</em> - 1 or <em>res_index</em> out of bounds.</p> </td> </tr> @@ -634,16 +647,16 @@ out of bounds.</p> if required atom positions (N-CA-C-N) are not set.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index</li> -<li><strong>def_angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Default psi angle.</li> +<li><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index</li> +<li><strong>def_angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Default psi 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>res_index</em> or <em>res_index</em> + 1 +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>res_index</em> or <em>res_index</em> + 1 out of bounds.</p> </td> </tr> @@ -661,20 +674,20 @@ out of bounds.</p> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Omega torsion angle of residue at index <em>res_index</em> or <em>def_angle</em> if required atom positions (CA-C-N-CA) are not set. Here, we use CA-C of residue <em>res_index</em> - 1 and N-CA of residue -<em>res_index</em> (consistent with OST’s -<code class="xref py py-meth docutils literal notranslate"><span class="pre">GetOmegaTorsion()</span></code>).</p> +<em>res_index</em> (consistent with OST’s +<code class="xref py py-meth docutils literal"><span class="pre">GetOmegaTorsion()</span></code>).</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index</li> -<li><strong>def_angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Default omega angle.</li> +<li><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index</li> +<li><strong>def_angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Default omega 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>res_index</em> - 1 or <em>res_index</em> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>res_index</em> - 1 or <em>res_index</em> out of bounds.</p> </td> </tr> @@ -691,7 +704,7 @@ out of bounds.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Number of atom positions stored in this container.</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -706,7 +719,7 @@ out of bounds.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Number of residues stored in this container.</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -721,7 +734,7 @@ out of bounds.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Sequence of one letter codes of all residues stored here.</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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a></td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></td> </tr> </tbody> </table> @@ -736,7 +749,7 @@ out of bounds.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Full copy of this object.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a></td> </tr> </tbody> </table> @@ -752,16 +765,16 @@ out of bounds.</p> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Container with residues with indices in range [<em>from</em>, <em>to</em>-1].</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>from</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – First residue index</li> -<li><strong>to</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – One after last residue index</li> +<li><strong>from</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – First residue index</li> +<li><strong>to</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – One after last residue index</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>from</em> >= <em>to</em> or if any residue +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>from</em> >= <em>to</em> or if any residue index is out of bounds.</p> </td> </tr> @@ -778,11 +791,11 @@ index is out of bounds.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Container with residues with indices in <em>res_indices</em>.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res_indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – List of residue index</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res_indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – List of residue index</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if any residue index is out of +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if any residue index is out of bounds.</td> </tr> </tbody> @@ -800,16 +813,16 @@ bounds.</td> CB atoms are reconstructed if unset.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><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></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>from</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – First residue index</li> -<li><strong>to</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – One after last residue index</li> +<li><strong>from</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – First residue index</li> +<li><strong>to</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – One after last residue index</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>from</em> >= <em>to</em>, if any residue +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>from</em> >= <em>to</em>, if any residue index is out of bounds or if any residue has any unset backbone atom (N, CA, C, O).</p> </td> @@ -826,9 +839,9 @@ atom (N, CA, C, O).</p> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">All residues packed in a single chain as an OST entity. -Connectivity resolved with <a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/connectivity/#ost.conop.HeuristicProcessor" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.HeuristicProcessor</span></code></a>.</td> +Connectivity resolved with <a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/connectivity/#ost.conop.HeuristicProcessor" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.HeuristicProcessor</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://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.EntityHandle</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityHandle</span></code></a></td> </tr> </tbody> </table> @@ -847,13 +860,13 @@ function efficient, we require the backbone atoms (N, C, CA) to be set.</p> <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_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index</li> -<li><strong>chain</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ChainHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ChainHandle</span></code></a>) – Chain into which we insert</li> -<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResNum" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResNum</span></code></a>) – Residue number for the inserted residue</li> +<li><strong>res_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index</li> +<li><strong>chain</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ChainHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ChainHandle</span></code></a>) – Chain into which we insert</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResNum" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResNum</span></code></a>) – Residue number for the inserted residue</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds, if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>res_index</em> out of bounds, if <em>chain</em> is invalid or if not all backbone atoms (N, C, CA) set.</p> </td> </tr> @@ -869,10 +882,10 @@ function efficient, we require the backbone atoms (N, C, CA) to be set.</p> <dl class="class"> <dt id="promod3.loop.AllAtomEnvPositions"> <em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">AllAtomEnvPositions</code><a class="headerlink" href="#promod3.loop.AllAtomEnvPositions" title="Permalink to this definition">¶</a></dt> -<dd><p>To link the arbitrary amino acid sequence defined in <a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a> -and the SEQRES of <a class="reference internal" href="#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnv</span></code></a>, we provide a helper class containing +<dd><p>To link the arbitrary amino acid sequence defined in <a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a> +and the SEQRES of <a class="reference internal" href="#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnv</span></code></a>, we provide a helper class containing structural data as well as a mapping to the internal residue indices of -<a class="reference internal" href="#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnv</span></code></a>.</p> +<a class="reference internal" href="#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnv</span></code></a>.</p> <dl class="attribute"> <dt id="promod3.loop.AllAtomEnvPositions.all_pos"> <code class="descname">all_pos</code><a class="headerlink" href="#promod3.loop.AllAtomEnvPositions.all_pos" title="Permalink to this definition">¶</a></dt> @@ -881,7 +894,7 @@ structural data as well as a mapping to the internal residue indices of <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="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a></td> </tr> </tbody> </table> @@ -890,13 +903,13 @@ structural data as well as a mapping to the internal residue indices of <dl class="attribute"> <dt id="promod3.loop.AllAtomEnvPositions.res_indices"> <code class="descname">res_indices</code><a class="headerlink" href="#promod3.loop.AllAtomEnvPositions.res_indices" title="Permalink to this definition">¶</a></dt> -<dd><p>Residue indices to be used by <a class="reference internal" href="#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnv</span></code></a> for each residue defined +<dd><p>Residue indices to be used by <a class="reference internal" href="#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnv</span></code></a> for each residue defined in <em>all_pos</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">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -929,7 +942,7 @@ where TLC is the standard three letter code of the amino acid and AN is the atom name (standard PDB naming) of the hydrogen. Examples: <em>ALA_H</em>, <em>ARG_HD3</em>, <em>ASN_HB2</em>, <em>ASP_HA</em>, <em>CYS_HB3</em>, <em>LEU_H</em>.</p> <p>We include all hydrogens that amino acids can have including <em>H1</em> (def. PDB -name = “H”), <em>H2</em> and (if not PRO) <em>H3</em> for charged N-terminal residues. Note +name = “H”), <em>H2</em> and (if not PRO) <em>H3</em> for charged N-terminal residues. Note that the H atom attached to N when peptide bound (<em>H</em>) is distinct from the N terminal hydrogens (e.g. <em>ALA_H</em> != <em>ALA_H1</em>). For <em>HIS</em> we consider the fully protonated state, while <em>ASP</em> and <em>GLU</em> are included in their charged state.</p> @@ -942,8 +955,8 @@ integer in the range [0, <em>XXX_NUM_HYDROGENS</em>-1].</p> <dt id="promod3.loop.AminoAcidLookup"> <em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">AminoAcidLookup</code><a class="headerlink" href="#promod3.loop.AminoAcidLookup" title="Permalink to this definition">¶</a></dt> <dd><p>Collection of static methods to lookup properties of amino acid types -(<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>), heavy atom types (<a class="reference internal" href="#promod3.loop.AminoAcidAtom" title="promod3.loop.AminoAcidAtom"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcidAtom</span></code></a>) and -hydrogen types (<a class="reference internal" href="#promod3.loop.AminoAcidHydrogen" title="promod3.loop.AminoAcidHydrogen"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcidHydrogen</span></code></a>).</p> +(<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>), heavy atom types (<a class="reference internal" href="#promod3.loop.AminoAcidAtom" title="promod3.loop.AminoAcidAtom"><code class="xref py py-class docutils literal"><span class="pre">AminoAcidAtom</span></code></a>) and +hydrogen types (<a class="reference internal" href="#promod3.loop.AminoAcidHydrogen" title="promod3.loop.AminoAcidHydrogen"><code class="xref py py-class docutils literal"><span class="pre">AminoAcidHydrogen</span></code></a>).</p> <dl class="staticmethod"> <dt id="promod3.loop.AminoAcidLookup.GetOLC"> <em class="property">static </em><code class="descname">GetOLC</code><span class="sig-paren">(</span><em>aa</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.AminoAcidLookup.GetOLC" title="Permalink to this definition">¶</a></dt> @@ -953,9 +966,9 @@ hydrogen types (<a class="reference internal" href="#promod3.loop.AminoAcidHydro <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">One letter code for the given amino acid</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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a></td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</td> </tr> </tbody> </table> @@ -973,17 +986,17 @@ hydrogen types (<a class="reference internal" href="#promod3.loop.AminoAcidHydro <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Heavy atom type for the given amino acid and atom.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.loop.AminoAcidAtom" title="promod3.loop.AminoAcidAtom"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcidAtom</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.loop.AminoAcidAtom" title="promod3.loop.AminoAcidAtom"><code class="xref py py-class docutils literal"><span class="pre">AminoAcidAtom</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</li> -<li><strong>atom_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Atom index (in [0, GetNumAtoms(aa)-1])</li> -<li><strong>atom_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Atom name</li> +<li><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</li> +<li><strong>atom_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Atom index (in [0, GetNumAtoms(aa)-1])</li> +<li><strong>atom_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Atom name</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>atom_idx</em> out of bounds or if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>atom_idx</em> out of bounds or if <em>atom_name</em> is not one of the heavy atoms of <em>aa</em>.</p> </td> </tr> @@ -1003,17 +1016,17 @@ hydrogen types (<a class="reference internal" href="#promod3.loop.AminoAcidHydro <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Hydrogen type for the given amino acid and atom.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.loop.AminoAcidHydrogen" title="promod3.loop.AminoAcidHydrogen"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcidHydrogen</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.loop.AminoAcidHydrogen" title="promod3.loop.AminoAcidHydrogen"><code class="xref py py-class docutils literal"><span class="pre">AminoAcidHydrogen</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</li> -<li><strong>atom_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Atom index (in [0, GetNumHydrogens(aa)-1])</li> -<li><strong>atom_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Atom name</li> +<li><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</li> +<li><strong>atom_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Atom index (in [0, GetNumHydrogens(aa)-1])</li> +<li><strong>atom_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Atom name</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>atom_idx</em> out of bounds or if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>atom_idx</em> out of bounds or if <em>atom_name</em> is not one of the hydrogens of <em>aa</em>.</p> </td> </tr> @@ -1032,16 +1045,16 @@ hydrogen types (<a class="reference internal" href="#promod3.loop.AminoAcidHydro atom.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</li> -<li><strong>atom_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Atom name</li> +<li><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</li> +<li><strong>atom_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Atom name</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>atom_name</em> is not one of the +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>atom_name</em> is not one of the heavy atoms of <em>aa</em>.</p> </td> </tr> @@ -1060,16 +1073,16 @@ heavy atoms of <em>aa</em>.</p> and atom.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</li> -<li><strong>atom_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Atom name</li> +<li><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</li> +<li><strong>atom_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Atom name</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>atom_name</em> is not one of the +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>atom_name</em> is not one of the hydrogens of <em>aa</em>.</p> </td> </tr> @@ -1086,9 +1099,9 @@ hydrogens of <em>aa</em>.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Number of heavy atoms of the given amino acid</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><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>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</td> </tr> </tbody> </table> @@ -1103,7 +1116,7 @@ hydrogens of <em>aa</em>.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Max. number of heavy atoms for any amino acid</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1118,9 +1131,9 @@ hydrogens of <em>aa</em>.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Number of hydrogens of the given amino acid</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><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>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</td> </tr> </tbody> </table> @@ -1135,7 +1148,7 @@ hydrogens of <em>aa</em>.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Max. number of hydrogens for any amino acid</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1153,12 +1166,12 @@ hydrogens of <em>aa</em>.</p> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Amino acid type of the given heavy atom type</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcid</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">AminoAcid</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>aaa</strong> (<a class="reference internal" href="#promod3.loop.AminoAcidAtom" title="promod3.loop.AminoAcidAtom"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcidAtom</span></code></a>) – Heavy atom type</li> -<li><strong>aah</strong> (<a class="reference internal" href="#promod3.loop.AminoAcidHydrogen" title="promod3.loop.AminoAcidHydrogen"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcidHydrogen</span></code></a>) – Hydrogen type</li> +<li><strong>aaa</strong> (<a class="reference internal" href="#promod3.loop.AminoAcidAtom" title="promod3.loop.AminoAcidAtom"><code class="xref py py-class docutils literal"><span class="pre">AminoAcidAtom</span></code></a>) – Heavy atom type</li> +<li><strong>aah</strong> (<a class="reference internal" href="#promod3.loop.AminoAcidHydrogen" title="promod3.loop.AminoAcidHydrogen"><code class="xref py py-class docutils literal"><span class="pre">AminoAcidHydrogen</span></code></a>) – Hydrogen type</li> </ul> </td> </tr> @@ -1187,12 +1200,12 @@ hydrogens of <em>aa</em>.</p> CHARMM or AMBER naming.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>aaa</strong> (<a class="reference internal" href="#promod3.loop.AminoAcidAtom" title="promod3.loop.AminoAcidAtom"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcidAtom</span></code></a>) – Heavy atom type</li> -<li><strong>aah</strong> (<a class="reference internal" href="#promod3.loop.AminoAcidHydrogen" title="promod3.loop.AminoAcidHydrogen"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcidHydrogen</span></code></a>) – Hydrogen type</li> +<li><strong>aaa</strong> (<a class="reference internal" href="#promod3.loop.AminoAcidAtom" title="promod3.loop.AminoAcidAtom"><code class="xref py py-class docutils literal"><span class="pre">AminoAcidAtom</span></code></a>) – Heavy atom type</li> +<li><strong>aah</strong> (<a class="reference internal" href="#promod3.loop.AminoAcidHydrogen" title="promod3.loop.AminoAcidHydrogen"><code class="xref py py-class docutils literal"><span class="pre">AminoAcidHydrogen</span></code></a>) – Hydrogen type</li> </ul> </td> </tr> @@ -1209,9 +1222,9 @@ CHARMM or AMBER naming.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Chemical element of the given heavy atom type</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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a></td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>aaa</strong> (<a class="reference internal" href="#promod3.loop.AminoAcidAtom" title="promod3.loop.AminoAcidAtom"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcidAtom</span></code></a>) – Heavy atom type</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>aaa</strong> (<a class="reference internal" href="#promod3.loop.AminoAcidAtom" title="promod3.loop.AminoAcidAtom"><code class="xref py py-class docutils literal"><span class="pre">AminoAcidAtom</span></code></a>) – Heavy atom type</td> </tr> </tbody> </table> @@ -1227,9 +1240,9 @@ CHARMM or AMBER naming.</p> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Atom index (in [0, GetNumAtoms(GetAA(aah))-1]) of the anchor to which the given hydrogen is attached.</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><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>aah</strong> (<a class="reference internal" href="#promod3.loop.AminoAcidHydrogen" title="promod3.loop.AminoAcidHydrogen"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcidHydrogen</span></code></a>) – Hydrogen type</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>aah</strong> (<a class="reference internal" href="#promod3.loop.AminoAcidHydrogen" title="promod3.loop.AminoAcidHydrogen"><code class="xref py py-class docutils literal"><span class="pre">AminoAcidHydrogen</span></code></a>) – Hydrogen type</td> </tr> </tbody> </table> @@ -1245,11 +1258,11 @@ which the given hydrogen is attached.</td> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Atom index (in [0, GetNumHydrogens(aa)-1]) of H atom attached to N when residue is peptide bound.</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><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>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if no such atom (i.e. PRO)</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if no such atom (i.e. PRO)</td> </tr> </tbody> </table> @@ -1269,11 +1282,11 @@ when residue is peptide bound.</td> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Atom index (in [0, GetNumHydrogens(aa)-1]) of H atom attached to N when residue is N terminal.</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><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>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if no such atom (i.e. H3 for PRO)</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if no such atom (i.e. H3 for PRO)</td> </tr> </tbody> </table> @@ -1291,72 +1304,46 @@ when residue is N terminal.</td> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Handling All Atom Positions</a><ul> +<li><a class="reference internal" href="#the-allatomenv-class">The AllAtomEnv class</a></li> +<li><a class="reference internal" href="#the-allatompositions-class">The AllAtomPositions class</a></li> +<li><a class="reference internal" href="#the-allatomenvpositions-class">The AllAtomEnvPositions class</a></li> +<li><a class="reference internal" href="#distinguishing-amino-acid-atoms">Distinguishing amino acid atoms</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Handling</a><ul> <li>Previous: <a href="structure_db.html" title="previous chapter">Structural Data</a></li> - <li>Next: <a href="mm_system_creation.html" title="next chapter">Generate <code class="docutils literal notranslate"><span class="pre">ost.mol.mm</span></code> systems</a></li> + <li>Next: <a href="mm_system_creation.html" title="next chapter">Generate <code class="docutils literal"><span class="pre">ost.mol.mm</span></code> systems</a></li> </ul></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/loop/all_atom.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -1365,11 +1352,11 @@ when residue is N terminal.</td> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/loop/all_atom.rst.txt" + <a href="../_sources/loop/all_atom.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/loop/backbone.html b/doc/html/loop/backbone.html index 781f0ffd68e243f65acbe3e779d1c5485b1b4b63..40d4716eb10fc56ed0ef6e7626f2ea8d3bc366f8 100644 --- a/doc/html/loop/backbone.html +++ b/doc/html/loop/backbone.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Representing Loops — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="loop - Loop Handling" href="index.html" /> <link rel="next" title="Sampling Dihedral Angles" href="torsion_sampler.html" /> <link rel="prev" title="loop - Loop Handling" href="index.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -37,12 +50,12 @@ <div class="section" id="representing-loops"> <h1>Representing Loops<a class="headerlink" href="#representing-loops" 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.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>. It provides a way to store the backbone positions of +<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>. It provides a way to store the backbone positions of residues. They provide structural manipulations, they can be manipulated and -converted from, to, or inserted to a <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.EntityHandle</span></code></a>.</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">io</span> -<span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">conop</span> -<span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">loop</span> +converted from, to, or inserted to a <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityHandle</span></code></a>.</p> +<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">io</span> +<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">promod3</span> <span class="kn">import</span> <span class="n">loop</span> <span class="n">sequence</span> <span class="o">=</span> <span class="s2">"AAAAAAAA"</span> @@ -85,11 +98,11 @@ converted from, to, or inserted to a <a class="reference external" href="https:/ amino acid types of a segment. This object allows to get, set or modify the atom positions, etc through a set of functions (<strong>indexing to access each residue starts at 0</strong>). To simplify algorithms, which use this structure, each -residue has a CB position defined (i.e. even if it’s a glycine) and we only +residue has a CB position defined (i.e. even if it’s a glycine) and we only allow amino acid types belonging to the 20 default amino acids. Note that the omega torsion angle defined here for residue <em>i</em> is the dihedral between CA-C of residue <em>i</em> and N-CA of residue <em>i+1</em> (this is shifted by 1 residue -compared to OST’s <code class="xref py py-meth docutils literal notranslate"><span class="pre">GetOmegaTorsion()</span></code>).</p> +compared to OST’s <code class="xref py py-meth docutils literal"><span class="pre">GetOmegaTorsion()</span></code>).</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> @@ -104,9 +117,9 @@ compared to OST’s <code class="xref py py-meth docutils literal notranslate">< <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Sequence of created BackboneList</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Sequence of created BackboneList</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>sequence</em> contains a one letter +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>sequence</em> contains a one letter code which is not one of the 20 default amino acids.</td> </tr> </tbody> @@ -122,10 +135,10 @@ code which is not one of the 20 default amino acids.</td> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Sequence of created BackboneList</li> -<li><strong>dihedral_angles</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – List of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> objects defining the backbone +<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Sequence of created BackboneList</li> +<li><strong>dihedral_angles</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – List of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> objects defining the backbone dihedral angles of created BackboneList. Every -<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> must either have two or three +<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> must either have two or three elements. Two elements are considered to define the phi and psi angles, leading to an idealized omega angle of 180 degrees. In case of three elements, all @@ -133,7 +146,7 @@ angles are defined.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>sequence</em> contains a one letter +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>sequence</em> contains a one letter code which is not one of the 20 default amino acids or if <em>sequence</em> and <em>dihedral_angles</em> are inconsistent in size.</p> </td> @@ -151,11 +164,11 @@ code which is not one of the 20 default amino acids or if <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>residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – List of <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a> objects from +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – List of <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a> objects from which the backbone positions and one letter codes are extracted.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if a residue in <em>residues</em> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if a residue in <em>residues</em> contains a one letter code which is not one of the 20 default amino acids or when there is a residue not providing all required positions.</td> @@ -174,13 +187,13 @@ required positions.</td> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Sequence of created BackboneList</li> -<li><strong>residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – List of <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a> objects from +<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Sequence of created BackboneList</li> +<li><strong>residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – List of <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>sequence</em> contains a one letter +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>sequence</em> contains a one letter code which is not one of the 20 default amino acids or if <em>sequence</em> and <em>residues</em> are inconsistent in size or when there is a residue not providing all necessary positions.</p> @@ -199,7 +212,7 @@ a residue not providing all necessary positions.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The whole backbone list converted to a density map.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/1.11/img/base/img/#ost.img.ImageHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.img.ImageHandle</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/img/base/img/#ost.img.ImageHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.img.ImageHandle</span></code></a></td> </tr> </tbody> </table> @@ -208,10 +221,10 @@ a residue not providing all necessary positions.</p> <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>padding</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – </li> -<li><strong>sampling</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – </li> -<li><strong>resolution</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – </li> -<li><strong>high_resolution</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – </li> +<li><strong>padding</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – </li> +<li><strong>sampling</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – </li> +<li><strong>resolution</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – </li> +<li><strong>high_resolution</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – </li> </ul> </td> </tr> @@ -228,7 +241,7 @@ a residue not providing all necessary positions.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The whole backbone list converted to an OST entity.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.EntityHandle</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityHandle</span></code></a></td> </tr> </tbody> </table> @@ -238,15 +251,15 @@ a residue not providing all necessary positions.</p> <dt id="promod3.loop.BackboneList.InsertInto"> <code class="descname">InsertInto</code><span class="sig-paren">(</span><em>chain</em>, <em>start_resnum</em><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 <em>chain</em>. 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 notranslate"><span class="pre">BackboneList</span></code></a> are already present in the entity, they will +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> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ChainHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ChainHandle</span></code></a>) – The chain</li> -<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResNum" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResNum</span></code></a>) – Residue number defining the start location of insertion</li> +<li><strong>chain</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ChainHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ChainHandle</span></code></a>) – The chain</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResNum" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResNum</span></code></a>) – Residue number defining the start location of insertion</li> </ul> </td> </tr> @@ -262,9 +275,9 @@ be replaced, otherwise they will be added to the entity.</p> <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>map</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/img/base/img/#ost.img.ImageHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.img.ImageHandle</span></code></a>) – </li> -<li><strong>resolution</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – </li> -<li><strong>high_resolution</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – </li> +<li><strong>map</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/img/base/img/#ost.img.ImageHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.img.ImageHandle</span></code></a>) – </li> +<li><strong>resolution</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – </li> +<li><strong>high_resolution</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – </li> </ul> </td> </tr> @@ -281,9 +294,9 @@ be replaced, otherwise they will be added to the entity.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"></td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/composite/#ost.geom.AlignedCuboid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.AlignedCuboid</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/composite/#ost.geom.AlignedCuboid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.AlignedCuboid</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>all_atom</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – </td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>all_atom</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – </td> </tr> </tbody> </table> @@ -298,7 +311,7 @@ be replaced, otherwise they will be added to the entity.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The amino acid 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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a></td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></td> </tr> </tbody> </table> @@ -311,9 +324,9 @@ be replaced, otherwise they will be added to the entity.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Set amino acid sequence to this.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Set amino acid sequence to this.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>sequence</em> contains a one letter +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>sequence</em> contains a one letter code which is not one of the 20 default amino acids or size of <em>sequence</em> does not match.</td> </tr> @@ -328,9 +341,9 @@ code which is not one of the 20 default amino acids or size of <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">Items with indices <em>from</em>, …, <em>to</em>-1 of this list.</td> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Items with indices <em>from</em>, ..., <em>to</em>-1 of this list.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><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></td> </tr> </tbody> </table> @@ -339,26 +352,26 @@ code which is not one of the 20 default amino acids or size of <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>, <em>superpose_stems</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 notranslate"><span class="pre">BackboneList</span></code></a> starting at position +<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 <em>index</em> by the <em>sub_fragment</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>sub_fragment</strong> (<a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – The fragment to be inserted</li> -<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The position at which the fragment +<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>) – The fragment to be inserted</li> +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The position at which the fragment replacement will begin</li> -<li><strong>superpose_stems</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – If set to false, the function will simply +<li><strong>superpose_stems</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – If set to false, the function will simply replace the according -<code class="xref py py-class docutils literal notranslate"><span class="pre">Backbone</span></code> objects. If set to True, +<code class="xref py py-class docutils literal"><span class="pre">Backbone</span></code> objects. If set to True, the n-terminal and c-terminal tails are superposed onto the <em>sub_fragment</em> stems using the positions at <em>index</em> and <em>index</em> + len( <em>sub_fragment</em> )-1.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>sub_fragment</em> does not fully fit into actual fragment at specified <em>index</em></p> </td> @@ -385,9 +398,9 @@ actual fragment at specified <em>index</em></p> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Position of nitrogen / alpha carbon / beta carbon / carbon / oxygen atom for residue at given index.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a></td> </tr> -<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index.</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index.</td> </tr> </tbody> </table> @@ -409,8 +422,8 @@ atom for residue at given index.</td> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index.</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Set position of nitrogen / alpha carbon / beta carbon / carbon +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index.</li> +<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Set position of nitrogen / alpha carbon / beta carbon / carbon / oxygen atom to this.</li> </ul> </td> @@ -428,9 +441,9 @@ atom for residue at given index.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">One letter code of the residue at given index.</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 notranslate"><span class="pre">char</span></code></td> +<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">char</span></code></td> </tr> -<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index.</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index.</td> </tr> </tbody> </table> @@ -444,8 +457,8 @@ atom for residue at given index.</td> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index.</li> -<li><strong>olc</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">char</span></code>) – Set one letter code of the residue to this.</li> +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index.</li> +<li><strong>olc</strong> (<code class="xref py py-class docutils literal"><span class="pre">char</span></code>) – Set one letter code of the residue to this.</li> </ul> </td> </tr> @@ -462,9 +475,9 @@ atom for residue at given index.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Amino acid type of the residue at given index.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a></td> </tr> -<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index.</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index.</td> </tr> </tbody> </table> @@ -478,12 +491,12 @@ atom for residue at given index.</td> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index.</li> -<li><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – Set amino acid type of the residue to this.</li> +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index.</li> +<li><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – Set amino acid type of the residue to this.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>aa</em> == ost.conop.XXX.</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>aa</em> == ost.conop.XXX.</p> </td> </tr> </tbody> @@ -504,14 +517,14 @@ and set the amino acid type according to the given one letter code.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index.</li> -<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ResidueHandle</span></code></a>) – Residue from which to extract backbone atom positions</li> -<li><strong>n_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Set position of nitrogen atom to this.</li> -<li><strong>ca_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Set position of alpha carbon atom to this.</li> -<li><strong>cb_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Set position of beta carbon atom to this.</li> -<li><strong>c_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Set position of carbon atom to this.</li> -<li><strong>o_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Set position of oxygen atom to this.</li> -<li><strong>olc</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">char</span></code>) – Set one letter code of the residue to this.</li> +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index.</li> +<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ResidueHandle</span></code></a>) – Residue from which to extract backbone atom positions</li> +<li><strong>n_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Set position of nitrogen atom to this.</li> +<li><strong>ca_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Set position of alpha carbon atom to this.</li> +<li><strong>cb_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Set position of beta carbon atom to this.</li> +<li><strong>c_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Set position of carbon atom to this.</li> +<li><strong>o_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Set position of oxygen atom to this.</li> +<li><strong>olc</strong> (<code class="xref py py-class docutils literal"><span class="pre">char</span></code>) – Set one letter code of the residue to this.</li> </ul> </td> </tr> @@ -528,7 +541,7 @@ and set the amino acid type according to the given one letter code.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Number of residues in this backbone list.</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -541,7 +554,7 @@ and set the amino acid type according to the given one letter code.</p> <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>new_size</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Resize backbone list to contain this number of residues. +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>new_size</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Resize backbone list to contain this number of residues. If new residues are added, their properties will not be initialized. Existing residues are untouched unless the list is shrinked (in that case extra residues are deleted).</td> @@ -559,7 +572,7 @@ list is shrinked (in that case extra residues are deleted).</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True if the list is empty (i.e. size 0).</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -572,7 +585,7 @@ list is shrinked (in that case extra residues are deleted).</td> <code class="descname">append</code><span class="sig-paren">(</span><em>n_pos</em>, <em>ca_pos</em>, <em>c_pos</em>, <em>o_pos</em>, <em>olc</em><span class="sig-paren">)</span></dt> <dt> <code class="descname">append</code><span class="sig-paren">(</span><em>res</em>, <em>olc</em><span class="sig-paren">)</span></dt> -<dd><p>Appends a new residue 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 notranslate"><span class="pre">BackboneList</span></code></a>. This will +<dd><p>Appends a new residue 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>. This will reconstruct CB positions if needed and set the amino acid type according to the given one letter code.</p> <table class="docutils field-list" frame="void" rules="none"> @@ -580,13 +593,13 @@ to the given one letter code.</p> <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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ResidueHandle</span></code></a>) – Residue from which to extract backbone atom positions</li> -<li><strong>n_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Set position of nitrogen atom to this.</li> -<li><strong>ca_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Set position of alpha carbon atom to this.</li> -<li><strong>cb_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Set position of beta carbon atom to this.</li> -<li><strong>c_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Set position of carbon atom to this.</li> -<li><strong>o_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>) – Set position of oxygen atom to this.</li> -<li><strong>olc</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">char</span></code>) – Set one letter code of the residue to this.</li> +<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ResidueHandle</span></code></a>) – Residue from which to extract backbone atom positions</li> +<li><strong>n_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Set position of nitrogen atom to this.</li> +<li><strong>ca_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Set position of alpha carbon atom to this.</li> +<li><strong>cb_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Set position of beta carbon atom to this.</li> +<li><strong>c_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Set position of carbon atom to this.</li> +<li><strong>o_pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Set position of oxygen atom to this.</li> +<li><strong>olc</strong> (<code class="xref py py-class docutils literal"><span class="pre">char</span></code>) – Set one letter code of the residue to this.</li> </ul> </td> </tr> @@ -603,13 +616,13 @@ to the given one letter code.</p> <dl class="method"> <dt id="promod3.loop.BackboneList.Copy"> <code class="descname">Copy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.Copy" title="Permalink to this definition">¶</a></dt> -<dd><p>Creates and returns a deep copy of this <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>. This can be +<dd><p>Creates and returns a deep copy of 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>. This can be useful, since Python uses reference assignments.</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 internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><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></td> </tr> </tbody> </table> @@ -632,7 +645,7 @@ residue, an additional parameter is therefore required.</p> <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>last_psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Psi angle of the last BackboneList residue, +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>last_psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Psi angle of the last BackboneList residue, the default value corresponds to a typical alpha-helix.</td> </tr> </tbody> @@ -649,7 +662,7 @@ reconstructed if the residue handle is valid.</p> <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>after_c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue following the C stem (C stem residue is last +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>after_c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue following the C stem (C stem residue is last element of this backbone list)</td> </tr> </tbody> @@ -665,8 +678,8 @@ element of this backbone list)</td> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index.</li> -<li><strong>transform</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Mat4</span></code></a>) – The transformation</li> +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index.</li> +<li><strong>transform</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a>) – The transformation</li> </ul> </td> </tr> @@ -678,15 +691,15 @@ element of this backbone list)</td> <dt> <code class="descname">ApplyTransform</code><span class="sig-paren">(</span><em>from</em>, <em>to</em>, <em>transform</em><span class="sig-paren">)</span></dt> <dd><p>Applies a transformation to the positions of the residues with indices -<em>from</em>, …, <em>to</em>-1 of this list.</p> +<em>from</em>, ..., <em>to</em>-1 of this 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>from</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Start index.</li> -<li><strong>to</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – End index (one past last residue to transform).</li> -<li><strong>transform</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Mat4</span></code></a>) – The transformation</li> +<li><strong>from</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Start index.</li> +<li><strong>to</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – End index (one past last residue to transform).</li> +<li><strong>transform</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a>) – The transformation</li> </ul> </td> </tr> @@ -702,7 +715,7 @@ element of this backbone list)</td> <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 notranslate"><span class="pre">ost.geom.Transform</span></code> / <a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Mat4</span></code></a>) – The transformation</td> +<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> / <a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a>) – The transformation</td> </tr> </tbody> </table> @@ -722,14 +735,14 @@ residue <em>other_index</em> of <em>other</em> backbone list considering the positions of the N, CA and C atoms.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Mat4</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a></p> </td> </tr> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index.</li> -<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – The other residue.</li> -<li><strong>other</strong> (<a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – The other backbone list.</li> -<li><strong>other_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index in <em>other</em> backbone list.</li> +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index.</li> +<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – The other residue.</li> +<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>) – The other backbone list.</li> +<li><strong>other_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index in <em>other</em> backbone list.</li> </ul> </td> </tr> @@ -747,9 +760,9 @@ positions of the N, CA and C atoms.</p> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Get minimum RMSD transformation of CA positions of this backbone list onto CA positions of <em>other</em> backbone list.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Mat4</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a></td> </tr> -<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 notranslate"><span class="pre">BackboneList</span></code></a>) – The other backbone list.</td> +<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>) – The other backbone list.</td> </tr> </tbody> </table> @@ -763,7 +776,7 @@ list onto CA positions of <em>other</em> backbone list.</td> <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 notranslate"><span class="pre">BackboneList</span></code></a>) – The other backbone list.</td> +<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>) – The other backbone list.</td> </tr> </tbody> </table> @@ -793,11 +806,11 @@ list onto CA positions of <em>other</em> backbone list.</td> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index.</li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Angle by which to rotate phi torsion.</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Angle by which to rotate psi torsion.</li> -<li><strong>omega</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Angle by which to rotate omega torsion.</li> -<li><strong>sequential</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – If <em>True</em>, the rotation will be propagated to all +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index.</li> +<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Angle by which to rotate phi torsion.</li> +<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Angle by which to rotate psi torsion.</li> +<li><strong>omega</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Angle by which to rotate omega torsion.</li> +<li><strong>sequential</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – If <em>True</em>, the rotation will be propagated to all residues after the one with <em>index</em>. Otherwise, it will be propagated in the direction where it will affect the least number of residues.</li> @@ -821,9 +834,9 @@ least number of residues.</li> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The phi/psi/omega torsion angle for residue at given index.</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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><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">Parameters:</th><td class="field-body"><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index.</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index.</td> </tr> </tbody> </table> @@ -840,8 +853,8 @@ unfavorable omega torsion angle in your backbone.</p> <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>thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Allowed deviation from ideal trans angle (pi)</li> -<li><strong>allow_prepro_cis</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Flag, whether cis-omega torsions should be +<li><strong>thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Allowed deviation from ideal trans angle (pi)</li> +<li><strong>allow_prepro_cis</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Flag, whether cis-omega torsions should be allowed in case of a subsequent proline.</li> </ul> </td> @@ -849,10 +862,10 @@ allowed in case of a subsequent proline.</li> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">whether <em>bb_list</em> only contains trans-omega torsions.</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></p> </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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if size of this backbone list is +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if size of this backbone list is smaller than 3.</p> </td> </tr> @@ -879,16 +892,16 @@ from residue at position <strong>index</strong> +1 with an angle of <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Position of central residue of the backrub motion</li> -<li><strong>primary_rot_angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Angle of the first rotation in radians</li> -<li><strong>flanking_rot_angle_one</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Angle of the first compensatory rotation +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Position of central residue of the backrub motion</li> +<li><strong>primary_rot_angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Angle of the first rotation in radians</li> +<li><strong>flanking_rot_angle_one</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Angle of the first compensatory rotation in radians</li> -<li><strong>flanking_rot_angle_two</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Angle of the second compensatory rotation +<li><strong>flanking_rot_angle_two</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Angle of the second compensatory rotation in radians</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <strong>index</strong> is smaller 1 or +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <strong>index</strong> is smaller 1 or larger size of BackboneList - 2</p> </td> </tr> @@ -908,14 +921,14 @@ down by <strong>scaling</strong> to make them less extreme.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Position of central residue of the backrub motion</li> -<li><strong>primary_rot_angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Angle of the first rotation in radians</li> -<li><strong>scaling</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The ideal angles for the compensatory rotations will +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Position of central residue of the backrub motion</li> +<li><strong>primary_rot_angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Angle of the first rotation in radians</li> +<li><strong>scaling</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The ideal angles for the compensatory rotations will be scaled by this 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <strong>index</strong> is smaller 1 or +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <strong>index</strong> is smaller 1 or larger size of BackboneList - 2</p> </td> </tr> @@ -933,9 +946,9 @@ larger size of BackboneList - 2</p> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Minimal pairwise CA-distance between this and the <em>other</em> backbone list.</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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><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">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 notranslate"><span class="pre">BackboneList</span></code></a>) – The other backbone list.</td> +<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>) – The other backbone list.</td> </tr> </tbody> </table> @@ -953,12 +966,12 @@ backbone list.</td> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">RMSD / C-alpha RMSD between this and the <em>other</em> backbone list.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </td> </tr> <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 notranslate"><span class="pre">BackboneList</span></code></a>) – The other backbone list.</li> -<li><strong>superposed_rmsd</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to superpose before calculating the RMSD.</li> +<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>) – The other backbone list.</li> +<li><strong>superposed_rmsd</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to superpose before calculating the RMSD.</li> </ul> </td> </tr> @@ -978,72 +991,43 @@ backbone list.</td> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Representing Loops</a><ul> +<li><a class="reference internal" href="#the-backbonelist-class">The BackboneList class</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a><ul> - <li>Previous: <a href="index.html" title="previous chapter"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> + <li><a href="index.html"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Handling</a><ul> + <li>Previous: <a href="index.html" title="previous chapter"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Handling</a></li> <li>Next: <a href="torsion_sampler.html" title="next chapter">Sampling Dihedral Angles</a></li> </ul></li> </ul></li> </ul></li> </ul> </div> + <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> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -1052,11 +1036,11 @@ backbone list.</td> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/loop/backbone.rst.txt" + <a href="../_sources/loop/backbone.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/loop/index.html b/doc/html/loop/index.html index 63370d5478e7abe9e288748ee9e72d168c4316d5..7bf3f8c338c75ba1b5d38429d398fec172c11624 100644 --- a/doc/html/loop/index.html +++ b/doc/html/loop/index.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>loop - Loop Handling — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="Documentation For Users" href="../users.html" /> <link rel="next" title="Representing Loops" href="backbone.html" /> <link rel="prev" title="Other Scoring Functions" href="../scoring/other_scoring_functions.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -35,12 +48,12 @@ <div class="body" role="main"> <div class="section" id="module-promod3.loop"> -<span id="loop-loop-handling"></span><h1><a class="reference internal" href="#module-promod3.loop" title="promod3.loop: Loop Handling"><code class="xref py py-mod docutils literal notranslate"><span class="pre">loop</span></code></a> - Loop Handling<a class="headerlink" href="#module-promod3.loop" title="Permalink to this headline">¶</a></h1> +<span id="loop-loop-handling"></span><h1><a class="reference internal" href="#module-promod3.loop" title="promod3.loop: Loop Handling"><code class="xref py py-mod docutils literal"><span class="pre">loop</span></code></a> - Loop Handling<a class="headerlink" href="#module-promod3.loop" title="Permalink to this headline">¶</a></h1> <p>Tools and algorithms for loop handling. This module provides ways for representation of peptides and to obtain fragments to potentially use as loops. The following example should give you an idea of what can be done:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">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</span> <span class="k">import</span> <span class="n">loop</span> +<div class="highlight-default"><div class="highlight"><pre><span></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</span> <span class="kn">import</span> <span class="n">loop</span> <span class="c1"># 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="s1">'data/1CRN.pdb'</span><span class="p">)</span> @@ -107,7 +120,7 @@ loops. The following example should give you an idea of what can be done:</p> <li class="toctree-l2"><a class="reference internal" href="all_atom.html#distinguishing-amino-acid-atoms">Distinguishing amino acid atoms</a></li> </ul> </li> -<li class="toctree-l1"><a class="reference internal" href="mm_system_creation.html">Generate <code class="docutils literal notranslate"><span class="pre">ost.mol.mm</span></code> systems</a><ul> +<li class="toctree-l1"><a class="reference internal" href="mm_system_creation.html">Generate <code class="docutils literal"><span class="pre">ost.mol.mm</span></code> systems</a><ul> <li class="toctree-l2"><a class="reference internal" href="mm_system_creation.html#create-mm-systems-for-loops">Create MM systems for loops</a></li> <li class="toctree-l2"><a class="reference internal" href="mm_system_creation.html#forcefield-lookup-for-amino-acids">Forcefield lookup for amino acids</a></li> </ul> @@ -123,41 +136,7 @@ loops. The following example should give you an idea of what can be done:</p> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> @@ -168,26 +147,23 @@ loops. The following example should give you an idea of what can be done:</p> </ul></li> </ul> </div> + <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> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -196,11 +172,11 @@ loops. The following example should give you an idea of what can be done:</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/loop/index.rst.txt" + <a href="../_sources/loop/index.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/loop/load_loop_objects.html b/doc/html/loop/load_loop_objects.html index ee23109893c737c3bf64d4e571bfcd188954096c..d4b5d8329d34aa539f9896870d42ff0f2b436ccf 100644 --- a/doc/html/loop/load_loop_objects.html +++ b/doc/html/loop/load_loop_objects.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Loading Precomputed Objects — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="loop - Loop Handling" href="index.html" /> <link rel="next" title="core - ProMod3 Core Functionality" href="../core/index.html" /> <link rel="prev" title="Generate ost.mol.mm systems" href="mm_system_creation.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -48,11 +61,11 @@ non-redundant protein structures.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Seed for internal random number generator</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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 notranslate"><span class="pre">TorsionSampler</span></code></a></td> +<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> @@ -68,11 +81,11 @@ residues of non-redundant protein structures.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Seed for internal random number generator</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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 notranslate"><span class="pre">TorsionSampler</span></code></a></td> +<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> @@ -88,11 +101,11 @@ residues of non-redundant protein structures.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Seed for internal random number generator</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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 notranslate"><span class="pre">TorsionSampler</span></code></a></td> +<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> @@ -108,11 +121,11 @@ residues of non-redundant protein structures.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Seed for internal random number generator</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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 notranslate"><span class="pre">TorsionSampler</span></code></a></td> +<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> @@ -129,7 +142,7 @@ PDB with seqid redundancy cutoff of 60%</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The structure db</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.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a></td> +<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.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal"><span class="pre">StructureDB</span></code></a></td> </tr> </tbody> </table> @@ -140,15 +153,15 @@ PDB with seqid redundancy cutoff of 60%</p> <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 containing fragments up to the length of 14, therefore capable of bridging gaps up to the length of 12. The returned -databases contains the location of fragments in the <a class="reference internal" href="structure_db.html#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a> -returned by <a class="reference internal" href="#promod3.loop.LoadStructureDB" title="promod3.loop.LoadStructureDB"><code class="xref py py-meth docutils literal notranslate"><span class="pre">LoadStructureDB()</span></code></a>.</p> +databases contains the location of fragments in the <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> +returned by <a class="reference internal" href="#promod3.loop.LoadStructureDB" title="promod3.loop.LoadStructureDB"><code class="xref py py-meth docutils literal"><span class="pre">LoadStructureDB()</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">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 notranslate"><span class="pre">FragDB</span></code></a></td> +<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> @@ -162,73 +175,36 @@ returned by <a class="reference internal" href="#promod3.loop.LoadStructureDB" t </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a><ul> - <li>Previous: <a href="mm_system_creation.html" title="previous chapter">Generate <code class="docutils literal notranslate"><span class="pre">ost.mol.mm</span></code> systems</a></li> - <li>Next: <a href="../core/index.html" title="next chapter"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> + <li><a href="index.html"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Handling</a><ul> + <li>Previous: <a href="mm_system_creation.html" title="previous chapter">Generate <code class="docutils literal"><span class="pre">ost.mol.mm</span></code> systems</a></li> + <li>Next: <a href="../core/index.html" title="next chapter"><code class="docutils literal"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> </ul></li> </ul></li> </ul></li> </ul> </div> + <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> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -237,11 +213,11 @@ returned by <a class="reference internal" href="#promod3.loop.LoadStructureDB" t ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/loop/load_loop_objects.rst.txt" + <a href="../_sources/loop/load_loop_objects.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/loop/mm_system_creation.html b/doc/html/loop/mm_system_creation.html index dceee02b650a9d1a12cfa4723b756a1adb3036df..2a16d4466d582ba4cbbc5a8a19f17090f2f7583d 100644 --- a/doc/html/loop/mm_system_creation.html +++ b/doc/html/loop/mm_system_creation.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Generate ost.mol.mm systems — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="loop - Loop Handling" href="index.html" /> <link rel="next" title="Loading Precomputed Objects" href="load_loop_objects.html" /> <link rel="prev" title="Handling All Atom Positions" href="all_atom.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -35,13 +48,13 @@ <div class="body" role="main"> <div class="section" id="generate-ost-mol-mm-systems"> -<h1>Generate <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/molmm/#module-ost.mol.mm" title="(in OpenStructure v1.11.0)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ost.mol.mm</span></code></a> systems<a class="headerlink" href="#generate-ost-mol-mm-systems" title="Permalink to this headline">¶</a></h1> -<p>To simplify the creation of <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/molmm/#module-ost.mol.mm" title="(in OpenStructure v1.11.0)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ost.mol.mm</span></code></a> / OpenMM simulations for loops in -proteins, we define a system creator for loops (<a class="reference internal" href="#promod3.loop.MmSystemCreator" title="promod3.loop.MmSystemCreator"><code class="xref py py-class docutils literal notranslate"><span class="pre">MmSystemCreator</span></code></a>) and a -specialized forcefield lookup for amino acids (<a class="reference internal" href="#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldLookup</span></code></a>).</p> +<h1>Generate <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/molmm/#module-ost.mol.mm" title="(in OpenStructure v2.0.0)"><code class="xref py py-mod docutils literal"><span class="pre">ost.mol.mm</span></code></a> systems<a class="headerlink" href="#generate-ost-mol-mm-systems" title="Permalink to this headline">¶</a></h1> +<p>To simplify the creation of <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/molmm/#module-ost.mol.mm" title="(in OpenStructure v2.0.0)"><code class="xref py py-mod docutils literal"><span class="pre">ost.mol.mm</span></code></a> / OpenMM simulations for loops in +proteins, we define a system creator for loops (<a class="reference internal" href="#promod3.loop.MmSystemCreator" title="promod3.loop.MmSystemCreator"><code class="xref py py-class docutils literal"><span class="pre">MmSystemCreator</span></code></a>) and a +specialized forcefield lookup for amino acids (<a class="reference internal" href="#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldLookup</span></code></a>).</p> <p>The example below showcases the creation and use of an MM system:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">io</span><span class="p">,</span> <span class="n">geom</span> -<span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">loop</span> +<div class="highlight-default"><div class="highlight"><pre><span></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">geom</span> +<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">loop</span> <span class="c1"># setup system creator</span> <span class="n">ff_lookup</span> <span class="o">=</span> <span class="n">loop</span><span class="o">.</span><span class="n">ForcefieldLookup</span><span class="o">.</span><span class="n">GetDefault</span><span class="p">()</span> @@ -84,8 +97,8 @@ specialized forcefield lookup for amino acids (<a class="reference internal" hre <p class="first admonition-title">Note</p> <p class="last">To simplify use when sidechains may be missing and the region of interest for the MM system has to be determined, it might be better to use the simpler -<a class="reference internal" href="../modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructor" title="promod3.modelling.SidechainReconstructor"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.modelling.SidechainReconstructor</span></code></a> and -<a class="reference internal" href="../modelling/loop_closing.html#promod3.modelling.AllAtomRelaxer" title="promod3.modelling.AllAtomRelaxer"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.modelling.AllAtomRelaxer</span></code></a> classes. Even if all the sidechains +<a class="reference internal" href="../modelling/sidechain_reconstruction.html#promod3.modelling.SidechainReconstructor" title="promod3.modelling.SidechainReconstructor"><code class="xref py py-class docutils literal"><span class="pre">promod3.modelling.SidechainReconstructor</span></code></a> and +<a class="reference internal" href="../modelling/loop_closing.html#promod3.modelling.AllAtomRelaxer" title="promod3.modelling.AllAtomRelaxer"><code class="xref py py-class docutils literal"><span class="pre">promod3.modelling.AllAtomRelaxer</span></code></a> classes. Even if all the sidechains are available, those classes will be helpful since the overhead to check sidechains without reconstructing them is minimal.</p> </div> @@ -95,7 +108,7 @@ sidechains without reconstructing them is minimal.</p> <dt id="promod3.loop.MmSystemCreator"> <em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">MmSystemCreator</code><span class="sig-paren">(</span><em>ff_lookup</em>, <em>fix_surrounding_hydrogens=True</em>, <em>kill_electrostatics=False</em>, <em>nonbonded_cutoff=8</em>, <em>inaccurate_pot_energy=False</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.MmSystemCreator" title="Permalink to this definition">¶</a></dt> <dd><p>Setup a system creator for a specific forcefield. The constructor only stores -the settings. Most setup work is done by <a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetupSystem()</span></code></a>.</p> +the settings. Most setup work is done by <a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal"><span class="pre">SetupSystem()</span></code></a>.</p> <p>The idea is to have a set of movable loop residues and a set of fixed surrounding residues which interact with the loop.</p> <table class="docutils field-list" frame="void" rules="none"> @@ -103,19 +116,19 @@ surrounding residues which interact with the loop.</p> <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>ff_lookup</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldLookup</span></code></a>) – Forcefield to use with this system creator.</li> -<li><strong>fix_surrounding_hydrogens</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – If False, the hydrogens of the surrounding +<li><strong>ff_lookup</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldLookup</span></code></a>) – Forcefield to use with this system creator.</li> +<li><strong>fix_surrounding_hydrogens</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – If False, the hydrogens of the surrounding residues can move to improve H-bond building (True by default as it only has a minor impact on the result and a big one on performance).</li> -<li><strong>kill_electrostatics</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – If True, all charges are removed from the system. +<li><strong>kill_electrostatics</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – If True, all charges are removed from the system. This is good for H-bond building, but may be bad if residues in the surrounding are missing (gaps).</li> -<li><strong>nonbonded_cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Defines cutoff to set for non bonded interactions. +<li><strong>nonbonded_cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Defines cutoff to set for non bonded interactions. Recommended values: 5 if kill_electrostatics = True, 8 otherwise. Negative value means no cutoff.</li> -<li><strong>inaccurate_pot_energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – If True, we do not set correct non-bonded +<li><strong>inaccurate_pot_energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – If True, we do not set correct non-bonded interactions between fixed atoms. This leads to inaccurate pot. energies but it is faster and has no effect on simulation runs (e.g. ApplySD) @@ -136,12 +149,12 @@ otherwise.</li> assumed to have a disulfid bridge (CYS-SG pairs within 2.5 A).</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> with two <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> with two <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>all_pos</strong> (<a class="reference internal" href="all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a>) – Provides positions for each <em>res_indices[i]</em>.</li> -<li><strong>res_indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue indices into <em>all_pos</em>.</li> +<li><strong>all_pos</strong> (<a class="reference internal" href="all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a>) – Provides positions for each <em>res_indices[i]</em>.</li> +<li><strong>res_indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue indices into <em>all_pos</em>.</li> </ul> </td> </tr> @@ -173,31 +186,31 @@ residues. Overlapping loops are merged and 0-length loops are removed.</p> <p>If <em>loop_length</em> is given, a single loop with start index 0 and the given loop length is defined.</p> <p>If a system was setup previously, it is overwritten completely.</p> -<p>If possible, this uses the “CPU” platform in OpenMM using the env. variable -<code class="docutils literal notranslate"><span class="pre">PM3_OPENMM_CPU_THREADS</span></code> to define the number of desired threads (1 thread +<p>If possible, this uses the “CPU” platform in OpenMM using the env. variable +<code class="docutils literal"><span class="pre">PM3_OPENMM_CPU_THREADS</span></code> to define the number of desired threads (1 thread is used if variable is undefined).</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>all_pos</strong> (<a class="reference internal" href="all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a>) – Provides positions for each <em>res_indices[i]</em>.</li> -<li><strong>res_indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue indices into <em>all_pos</em>.</li> -<li><strong>loop_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Length of single loop (incl. stems).</li> -<li><strong>loop_start_indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Start indices of loops.</li> -<li><strong>loop_lengths</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Lengths of loops (incl. stems).</li> -<li><strong>is_n_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – For each <em>res_indices[i]</em>, <em>is_n_ter[i]</em> defines whether +<li><strong>all_pos</strong> (<a class="reference internal" href="all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a>) – Provides positions for each <em>res_indices[i]</em>.</li> +<li><strong>res_indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue indices into <em>all_pos</em>.</li> +<li><strong>loop_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Length of single loop (incl. stems).</li> +<li><strong>loop_start_indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Start indices of loops.</li> +<li><strong>loop_lengths</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Lengths of loops (incl. stems).</li> +<li><strong>is_n_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – For each <em>res_indices[i]</em>, <em>is_n_ter[i]</em> defines whether that residue is N-terminal.</li> -<li><strong>is_c_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – For each <em>res_indices[i]</em>, <em>is_c_ter[i]</em> defines whether +<li><strong>is_c_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – For each <em>res_indices[i]</em>, <em>is_c_ter[i]</em> defines whether that residue is C-terminal.</li> -<li><strong>disulfid_bridges</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> with two -<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Pairs of indices (i,j), where res_indices[i] and +<li><strong>disulfid_bridges</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> with two +<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Pairs of indices (i,j), where res_indices[i] and res_indices[j] form a disulfid bridge (see -<a class="reference internal" href="#promod3.loop.MmSystemCreator.GetDisulfidBridges" title="promod3.loop.MmSystemCreator.GetDisulfidBridges"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetDisulfidBridges()</span></code></a>)</li> +<a class="reference internal" href="#promod3.loop.MmSystemCreator.GetDisulfidBridges" title="promod3.loop.MmSystemCreator.GetDisulfidBridges"><code class="xref py py-meth docutils literal"><span class="pre">GetDisulfidBridges()</span></code></a>)</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if loops out of bounds with respect +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if loops out of bounds with respect to <em>res_indices</em>, <em>loop_start_indices</em> / <em>loop_lengths</em> or <em>res_indices</em> / <em>is_n_ter</em> / <em>is_c_ter</em> have inconsistent lengths, or if any <em>all_pos[res_indices[i]]</em> is invalid or has unset heavy @@ -211,21 +224,21 @@ atoms.</p> <dl class="method"> <dt id="promod3.loop.MmSystemCreator.UpdatePositions"> <code class="descname">UpdatePositions</code><span class="sig-paren">(</span><em>all_pos</em>, <em>res_indices</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.MmSystemCreator.UpdatePositions" title="Permalink to this definition">¶</a></dt> -<dd><p>Updates the positions in the system. Even though <a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetupSystem()</span></code></a> is +<dd><p>Updates the positions in the system. Even though <a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal"><span class="pre">SetupSystem()</span></code></a> is already very fast, this can speed up resetting a simulation. The data must -be consistent with the data used in the last <a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetupSystem()</span></code></a> call.</p> +be consistent with the data used in the last <a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal"><span class="pre">SetupSystem()</span></code></a> call.</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>all_pos</strong> (<a class="reference internal" href="all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a>) – Provides positions for each <em>res_indices[i]</em>.</li> -<li><strong>res_indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue indices into <em>all_pos</em>.</li> +<li><strong>all_pos</strong> (<a class="reference internal" href="all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a>) – Provides positions for each <em>res_indices[i]</em>.</li> +<li><strong>res_indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue indices into <em>all_pos</em>.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if data is inconsistent with last -<a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetupSystem()</span></code></a> call (same number of residues, same AA).</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if data is inconsistent with last +<a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal"><span class="pre">SetupSystem()</span></code></a> call (same number of residues, same AA).</p> </td> </tr> </tbody> @@ -238,33 +251,33 @@ be consistent with the data used in the last <a class="reference internal" href= <dt> <code class="descname">ExtractLoopPositions</code><span class="sig-paren">(</span><em>out_pos</em>, <em>res_indices</em><span class="sig-paren">)</span></dt> <dd><p>Extracts loop positions from the current simulation. If the simulation was -run (via <a class="reference internal" href="#promod3.loop.MmSystemCreator.GetSimulation" title="promod3.loop.MmSystemCreator.GetSimulation"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetSimulation()</span></code></a>), we internally have new positions for the +run (via <a class="reference internal" href="#promod3.loop.MmSystemCreator.GetSimulation" title="promod3.loop.MmSystemCreator.GetSimulation"><code class="xref py py-meth docutils literal"><span class="pre">GetSimulation()</span></code></a>), we internally have new positions for the residues corresponding to <em>all_pos[res_indices[i]]</em> passed in -<a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetupSystem()</span></code></a>. This function then extracts these positions back into a +<a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal"><span class="pre">SetupSystem()</span></code></a>. This function then extracts these positions back into a compatible output storage.</p> <p>If <em>loop_pos</em> is passed, only the loops are stored. The loop residues are stored contiguously and the loops are stored in the order given by -<a class="reference internal" href="#promod3.loop.MmSystemCreator.GetLoopStartIndices" title="promod3.loop.MmSystemCreator.GetLoopStartIndices"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetLoopStartIndices()</span></code></a> / <a class="reference internal" href="#promod3.loop.MmSystemCreator.GetLoopLengths" title="promod3.loop.MmSystemCreator.GetLoopLengths"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetLoopLengths()</span></code></a>. The <em>loop_pos</em> storage -must have at least <a class="reference internal" href="#promod3.loop.MmSystemCreator.GetNumLoopResidues" title="promod3.loop.MmSystemCreator.GetNumLoopResidues"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumLoopResidues()</span></code></a> residues and must have +<a class="reference internal" href="#promod3.loop.MmSystemCreator.GetLoopStartIndices" title="promod3.loop.MmSystemCreator.GetLoopStartIndices"><code class="xref py py-meth docutils literal"><span class="pre">GetLoopStartIndices()</span></code></a> / <a class="reference internal" href="#promod3.loop.MmSystemCreator.GetLoopLengths" title="promod3.loop.MmSystemCreator.GetLoopLengths"><code class="xref py py-meth docutils literal"><span class="pre">GetLoopLengths()</span></code></a>. The <em>loop_pos</em> storage +must have at least <a class="reference internal" href="#promod3.loop.MmSystemCreator.GetNumLoopResidues" title="promod3.loop.MmSystemCreator.GetNumLoopResidues"><code class="xref py py-meth docutils literal"><span class="pre">GetNumLoopResidues()</span></code></a> residues and must have matching amino acid types with respect to the loop residues passed as -<em>all_pos</em> of <a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetupSystem()</span></code></a>.</p> +<em>all_pos</em> of <a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal"><span class="pre">SetupSystem()</span></code></a>.</p> <p>If <em>out_pos</em> and <em>res_indices</em> are passed, residues must have matching amino acid types for <em>out_pos[res_indices[i]]</em> and <em>all_pos[res_indices[i]]</em> of -<a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetupSystem()</span></code></a>. Only loop residues with <em>i</em> in the ranges defined by -<a class="reference internal" href="#promod3.loop.MmSystemCreator.GetLoopStartIndices" title="promod3.loop.MmSystemCreator.GetLoopStartIndices"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetLoopStartIndices()</span></code></a> / <a class="reference internal" href="#promod3.loop.MmSystemCreator.GetLoopLengths" title="promod3.loop.MmSystemCreator.GetLoopLengths"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetLoopLengths()</span></code></a> are touched.</p> +<a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal"><span class="pre">SetupSystem()</span></code></a>. Only loop residues with <em>i</em> in the ranges defined by +<a class="reference internal" href="#promod3.loop.MmSystemCreator.GetLoopStartIndices" title="promod3.loop.MmSystemCreator.GetLoopStartIndices"><code class="xref py py-meth docutils literal"><span class="pre">GetLoopStartIndices()</span></code></a> / <a class="reference internal" href="#promod3.loop.MmSystemCreator.GetLoopLengths" title="promod3.loop.MmSystemCreator.GetLoopLengths"><code class="xref py py-meth docutils literal"><span class="pre">GetLoopLengths()</span></code></a> are touched.</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>loop_pos</strong> (<a class="reference internal" href="all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a>) – Reduced storage only covering loop positions.</li> -<li><strong>out_pos</strong> (<a class="reference internal" href="all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a>) – Storage for loop positions linked to <em>res_indices</em>.</li> -<li><strong>res_indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue indices into <em>out_pos</em>.</li> +<li><strong>loop_pos</strong> (<a class="reference internal" href="all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a>) – Reduced storage only covering loop positions.</li> +<li><strong>out_pos</strong> (<a class="reference internal" href="all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a>) – Storage for loop positions linked to <em>res_indices</em>.</li> +<li><strong>res_indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue indices into <em>out_pos</em>.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if data is inconsistent with last -<a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetupSystem()</span></code></a> call (big enough and matching AA).</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if data is inconsistent with last +<a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal"><span class="pre">SetupSystem()</span></code></a> call (big enough and matching AA).</p> </td> </tr> </tbody> @@ -278,10 +291,10 @@ acid types for <em>out_pos[res_indices[i]]</em> and <em>all_pos[res_indices[i]]< <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">Simulation object setup by <a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetupSystem()</span></code></a>. Use this to run +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Simulation object setup by <a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal"><span class="pre">SetupSystem()</span></code></a>. Use this to run MM simulations.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/simulation/#ost.mol.mm.Simulation" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.mm.Simulation</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/simulation/#ost.mol.mm.Simulation" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.mm.Simulation</span></code></a></td> </tr> </tbody> </table> @@ -296,7 +309,7 @@ MM simulations.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Number of residues of current simulation setup.</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -311,7 +324,7 @@ MM simulations.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Number of loop residues (incl. stems) of current simulation setup.</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -324,9 +337,9 @@ MM simulations.</td> <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">Start indices of loops (see <a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetupSystem()</span></code></a>).</td> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Start indices of loops (see <a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal"><span class="pre">SetupSystem()</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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -339,9 +352,9 @@ MM simulations.</td> <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">Lengths of loops (see <a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetupSystem()</span></code></a>).</td> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Lengths of loops (see <a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal"><span class="pre">SetupSystem()</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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -355,9 +368,9 @@ MM simulations.</td> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Forcefield-specific amino acid type for each residue of last -<a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetupSystem()</span></code></a> call.</td> +<a class="reference internal" href="#promod3.loop.MmSystemCreator.SetupSystem" title="promod3.loop.MmSystemCreator.SetupSystem"><code class="xref py py-meth docutils literal"><span class="pre">SetupSystem()</span></code></a> call.</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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldAminoAcid</span></code></a></td> +<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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldAminoAcid</span></code></a></td> </tr> </tbody> </table> @@ -368,7 +381,7 @@ MM simulations.</td> <code class="descname">GetIndexing</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.MmSystemCreator.GetIndexing" title="Permalink to this definition">¶</a></dt> <dd><p>The atoms of residue <em>i</em> are stored from <em>idx[i]</em> to <em>idx[i+1]-1</em>, where <em>idx</em> is the list returned by this function. The atoms themselves are -ordered according to the indexing defined by <a class="reference internal" href="#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldLookup</span></code></a>.</p> +ordered according to the indexing defined by <a class="reference internal" href="#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldLookup</span></code></a>.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> @@ -377,7 +390,7 @@ ordered according to the indexing defined by <a class="reference internal" href= The last item of the list contains the number of atoms in the system.</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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -390,10 +403,10 @@ system.</td> <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">True, if we will use OpenMM’s “CPU” platform (enabled by default -if platform is available). False, if we use “Reference” platform.</td> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, if we will use OpenMM’s “CPU” platform (enabled by default +if platform is available). False, if we use “Reference” platform.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -402,15 +415,15 @@ if platform is available). False, if we use “Reference” platform.</td> <dl class="method"> <dt id="promod3.loop.MmSystemCreator.SetCpuPlatformSupport"> <code class="descname">SetCpuPlatformSupport</code><span class="sig-paren">(</span><em>cpu_platform_support</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.MmSystemCreator.SetCpuPlatformSupport" title="Permalink to this definition">¶</a></dt> -<dd><p>Override “CPU” platform support setting. Useful to force the use of the -OpenMM’s “Reference” platform for testing (by default we use “CPU” if it is +<dd><p>Override “CPU” platform support setting. Useful to force the use of the +OpenMM’s “Reference” platform for testing (by default we use “CPU” if it is available).</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>cpu_platform_support</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True, if “CPU” platform desired (ignored if -platform not available). False, if “Reference” +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>cpu_platform_support</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True, if “CPU” platform desired (ignored if +platform not available). False, if “Reference” platform desired.</td> </tr> </tbody> @@ -422,24 +435,24 @@ platform desired.</td> </div> <div class="section" id="forcefield-lookup-for-amino-acids"> <h2>Forcefield lookup for amino acids<a class="headerlink" href="#forcefield-lookup-for-amino-acids" title="Permalink to this headline">¶</a></h2> -<p>The <a class="reference internal" href="#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldLookup</span></code></a> class and its helpers define a fast way to extract +<p>The <a class="reference internal" href="#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldLookup</span></code></a> class and its helpers define a fast way to extract FF specific data for amino acids in a protein. We distinguish amino acid types (and a few variants thereof) which may all be N- and/or C-terminal.</p> <dl class="class"> <dt id="promod3.loop.ForcefieldLookup"> <em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">ForcefieldLookup</code><a class="headerlink" href="#promod3.loop.ForcefieldLookup" title="Permalink to this definition">¶</a></dt> -<dd><p>This class provides all functionality to generate <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/simulation/#ost.mol.mm.Simulation" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.mm.Simulation</span></code></a> objects. Specifically, we can:</p> +<dd><p>This class provides all functionality to generate <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/simulation/#ost.mol.mm.Simulation" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.mm.Simulation</span></code></a> objects. Specifically, we can:</p> <ul class="simple"> <li>get a consistent indexing of each atom of each residue in [<em>0, N-1</em>], where -<em>N</em> = <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetNumAtoms" title="promod3.loop.ForcefieldLookup.GetNumAtoms"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumAtoms()</span></code></a> (note that only OXT indexing depends on whether a +<em>N</em> = <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetNumAtoms" title="promod3.loop.ForcefieldLookup.GetNumAtoms"><code class="xref py py-meth docutils literal"><span class="pre">GetNumAtoms()</span></code></a> (note that only OXT indexing depends on whether a residue is terminal)</li> <li>extract masses, charges and LJ-parameters for each atom (list of length <em>N</em>)</li> -<li>extract connectivities (<a class="reference internal" href="#promod3.loop.ForcefieldConnectivity" title="promod3.loop.ForcefieldConnectivity"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldConnectivity</span></code></a>), which include all +<li>extract connectivities (<a class="reference internal" href="#promod3.loop.ForcefieldConnectivity" title="promod3.loop.ForcefieldConnectivity"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldConnectivity</span></code></a>), which include all possible bonds, angles, dihedrals, impropers and LJ pairs</li> </ul> <p>There is functionality to adapt the lookup and store it as needed or you can -load a predefined one with <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetDefault" title="promod3.loop.ForcefieldLookup.GetDefault"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetDefault()</span></code></a> or <a class="reference internal" href="#promod3.loop.ForcefieldLookup.LoadCHARMM" title="promod3.loop.ForcefieldLookup.LoadCHARMM"><code class="xref py py-meth docutils literal notranslate"><span class="pre">LoadCHARMM()</span></code></a>.</p> -<p>The atom indexing and <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetAA" title="promod3.loop.ForcefieldLookup.GetAA"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetAA()</span></code></a> are independent of the loaded file.</p> +load a predefined one with <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetDefault" title="promod3.loop.ForcefieldLookup.GetDefault"><code class="xref py py-meth docutils literal"><span class="pre">GetDefault()</span></code></a> or <a class="reference internal" href="#promod3.loop.ForcefieldLookup.LoadCHARMM" title="promod3.loop.ForcefieldLookup.LoadCHARMM"><code class="xref py py-meth docutils literal"><span class="pre">LoadCHARMM()</span></code></a>.</p> +<p>The atom indexing and <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetAA" title="promod3.loop.ForcefieldLookup.GetAA"><code class="xref py py-meth docutils literal"><span class="pre">GetAA()</span></code></a> are independent of the loaded file.</p> <dl class="staticmethod"> <dt id="promod3.loop.ForcefieldLookup.GetDefault"> <em class="property">static </em><code class="descname">GetDefault</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.ForcefieldLookup.GetDefault" title="Permalink to this definition">¶</a></dt> @@ -451,7 +464,7 @@ load a predefined one with <a class="reference internal" href="#promod3.loop.For of this class with all data defined. Using this instance has the advantage that the object is only loaded once!</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldLookup</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldLookup</span></code></a></td> </tr> </tbody> </table> @@ -460,12 +473,12 @@ advantage that the object is only loaded once!</td> <dl class="staticmethod"> <dt id="promod3.loop.ForcefieldLookup.SetDefault"> <em class="property">static </em><code class="descname">SetDefault</code><span class="sig-paren">(</span><em>new_default</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.ForcefieldLookup.SetDefault" title="Permalink to this definition">¶</a></dt> -<dd><p>Sets default singleton instance for all future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetDefault" title="promod3.loop.ForcefieldLookup.GetDefault"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetDefault()</span></code></a> calls.</p> +<dd><p>Sets default singleton instance for all future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetDefault" title="promod3.loop.ForcefieldLookup.GetDefault"><code class="xref py py-meth docutils literal"><span class="pre">GetDefault()</span></code></a> calls.</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>new_default</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldLookup</span></code></a>) – Lookup object to use as the new default.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>new_default</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldLookup</span></code></a>) – Lookup object to use as the new default.</td> </tr> </tbody> </table> @@ -481,7 +494,7 @@ advantage that the object is only loaded once!</td> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Predefined lookup object extracted from a CHARMM forcefield (loaded from disk)</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldLookup</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldLookup</span></code></a></td> </tr> </tbody> </table> @@ -492,20 +505,20 @@ advantage that the object is only loaded once!</td> <em class="property">static </em><code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.ForcefieldLookup.Load" title="Permalink to this definition">¶</a></dt> <dt id="promod3.loop.ForcefieldLookup.LoadPortable"> <em class="property">static </em><code class="descname">LoadPortable</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.ForcefieldLookup.LoadPortable" title="Permalink to this definition">¶</a></dt> -<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.loop.ForcefieldLookup.Save" title="promod3.loop.ForcefieldLookup.Save"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Save()</span></code></a> (optimized for fast -reading) / portable file generated with <a class="reference internal" href="#promod3.loop.ForcefieldLookup.SavePortable" title="promod3.loop.ForcefieldLookup.SavePortable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SavePortable()</span></code></a> (slower but +<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.loop.ForcefieldLookup.Save" title="promod3.loop.ForcefieldLookup.Save"><code class="xref py py-meth docutils literal"><span class="pre">Save()</span></code></a> (optimized for fast +reading) / portable file generated with <a class="reference internal" href="#promod3.loop.ForcefieldLookup.SavePortable" title="promod3.loop.ForcefieldLookup.SavePortable"><code class="xref py py-meth docutils literal"><span class="pre">SavePortable()</span></code></a> (slower but less machine-dependent).</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The loaded lookup object</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.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldLookup</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldLookup</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened or if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened or if file cannot be parsed (see <a class="reference internal" href="../portableIO.html#portableio"><span class="std std-ref">here</span></a> for details).</td> </tr> </tbody> @@ -524,9 +537,9 @@ for details.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file where it will be saved.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file where it 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> </tr> </tbody> </table> @@ -541,9 +554,9 @@ for details.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Amino acid type for given <em>ff_aa</em></td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</td> </tr> </tbody> </table> @@ -559,13 +572,13 @@ for details.</p> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Number of atoms for given input.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> -<li><strong>is_nter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True if N-terminal variant desired</li> -<li><strong>is_cter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True if C-terminal variant desired</li> +<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> +<li><strong>is_nter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True if N-terminal variant desired</li> +<li><strong>is_cter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True if C-terminal variant desired</li> </ul> </td> </tr> @@ -582,16 +595,16 @@ for details.</p> <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"><p class="first">Internal index for given heavy atom in [0, <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetNumAtoms" title="promod3.loop.ForcefieldLookup.GetNumAtoms"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumAtoms()</span></code></a>]</p> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Internal index for given heavy atom in [0, <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetNumAtoms" title="promod3.loop.ForcefieldLookup.GetNumAtoms"><code class="xref py py-meth docutils literal"><span class="pre">GetNumAtoms()</span></code></a>]</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> -<li><strong>atom_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Atom index as returned by <a class="reference internal" href="all_atom.html#promod3.loop.AminoAcidLookup.GetIndex" title="promod3.loop.AminoAcidLookup.GetIndex"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AminoAcidLookup.GetIndex()</span></code></a></li> -<li><strong>atom_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Atom name</li> +<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> +<li><strong>atom_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Atom index as returned by <a class="reference internal" href="all_atom.html#promod3.loop.AminoAcidLookup.GetIndex" title="promod3.loop.AminoAcidLookup.GetIndex"><code class="xref py py-meth docutils literal"><span class="pre">AminoAcidLookup.GetIndex()</span></code></a></li> +<li><strong>atom_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Atom name</li> </ul> </td> </tr> @@ -608,17 +621,17 @@ for details.</p> <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"><p class="first">Internal index for given hydrogen atom in [0, <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetNumAtoms" title="promod3.loop.ForcefieldLookup.GetNumAtoms"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumAtoms()</span></code></a>]</p> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Internal index for given hydrogen atom in [0, <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetNumAtoms" title="promod3.loop.ForcefieldLookup.GetNumAtoms"><code class="xref py py-meth docutils literal"><span class="pre">GetNumAtoms()</span></code></a>]</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> -<li><strong>atom_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Atom index as returned by -<a class="reference internal" href="all_atom.html#promod3.loop.AminoAcidLookup.GetHydrogenIndex" title="promod3.loop.AminoAcidLookup.GetHydrogenIndex"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AminoAcidLookup.GetHydrogenIndex()</span></code></a></li> -<li><strong>atom_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Atom name</li> +<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> +<li><strong>atom_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Atom index as returned by +<a class="reference internal" href="all_atom.html#promod3.loop.AminoAcidLookup.GetHydrogenIndex" title="promod3.loop.AminoAcidLookup.GetHydrogenIndex"><code class="xref py py-meth docutils literal"><span class="pre">AminoAcidLookup.GetHydrogenIndex()</span></code></a></li> +<li><strong>atom_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Atom name</li> </ul> </td> </tr> @@ -636,12 +649,12 @@ for details.</p> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Internal index of OXT atom for C-terminal residue</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> -<li><strong>is_nter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True if N-terminal variant desired</li> +<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> +<li><strong>is_nter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True if N-terminal variant desired</li> </ul> </td> </tr> @@ -657,9 +670,9 @@ for details.</p> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Dampening factor for LJ 1,4 interactions (see -<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/topology/#ost.mol.mm.Topology.SetFudgeLJ" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.mol.mm.Topology.SetFudgeLJ()</span></code></a>)</td> +<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/topology/#ost.mol.mm.Topology.SetFudgeLJ" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.SetFudgeLJ()</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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -673,9 +686,9 @@ for details.</p> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Dampening factor for electrostatic 1,4 interactions (see -<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/topology/#ost.mol.mm.Topology.SetFudgeQQ" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.mol.mm.Topology.SetFudgeQQ()</span></code></a>)</td> +<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/topology/#ost.mol.mm.Topology.SetFudgeQQ" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.SetFudgeQQ()</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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -688,16 +701,16 @@ for details.</p> <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"><p class="first">Mass for each atom (see <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/topology/#ost.mol.mm.Topology.SetMasses" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.mol.mm.Topology.SetMasses()</span></code></a>)</p> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Mass for each atom (see <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/topology/#ost.mol.mm.Topology.SetMasses" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.SetMasses()</span></code></a>)</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a> (length = <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetNumAtoms" title="promod3.loop.ForcefieldLookup.GetNumAtoms"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumAtoms()</span></code></a>)</p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a> (length = <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetNumAtoms" title="promod3.loop.ForcefieldLookup.GetNumAtoms"><code class="xref py py-meth docutils literal"><span class="pre">GetNumAtoms()</span></code></a>)</p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> -<li><strong>is_nter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True if N-terminal variant desired</li> -<li><strong>is_cter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True if C-terminal variant desired</li> +<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> +<li><strong>is_nter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True if N-terminal variant desired</li> +<li><strong>is_cter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True if C-terminal variant desired</li> </ul> </td> </tr> @@ -712,16 +725,16 @@ for details.</p> <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"><p class="first">Charge for each atom (see <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/topology/#ost.mol.mm.Topology.SetCharges" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.mol.mm.Topology.SetCharges()</span></code></a>)</p> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Charge for each atom (see <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/topology/#ost.mol.mm.Topology.SetCharges" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.SetCharges()</span></code></a>)</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a> (length = <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetNumAtoms" title="promod3.loop.ForcefieldLookup.GetNumAtoms"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumAtoms()</span></code></a>)</p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a> (length = <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetNumAtoms" title="promod3.loop.ForcefieldLookup.GetNumAtoms"><code class="xref py py-meth docutils literal"><span class="pre">GetNumAtoms()</span></code></a>)</p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> -<li><strong>is_nter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True if N-terminal variant desired</li> -<li><strong>is_cter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True if C-terminal variant desired</li> +<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> +<li><strong>is_nter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True if N-terminal variant desired</li> +<li><strong>is_cter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True if C-terminal variant desired</li> </ul> </td> </tr> @@ -737,16 +750,16 @@ for details.</p> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Sigma in nm for each atom -(see <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/topology/#ost.mol.mm.Topology.SetSigmas" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.mol.mm.Topology.SetSigmas()</span></code></a>)</p> +(see <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/topology/#ost.mol.mm.Topology.SetSigmas" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.SetSigmas()</span></code></a>)</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a> (length = <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetNumAtoms" title="promod3.loop.ForcefieldLookup.GetNumAtoms"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumAtoms()</span></code></a>)</p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a> (length = <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetNumAtoms" title="promod3.loop.ForcefieldLookup.GetNumAtoms"><code class="xref py py-meth docutils literal"><span class="pre">GetNumAtoms()</span></code></a>)</p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> -<li><strong>is_nter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True if N-terminal variant desired</li> -<li><strong>is_cter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True if C-terminal variant desired</li> +<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> +<li><strong>is_nter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True if N-terminal variant desired</li> +<li><strong>is_cter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True if C-terminal variant desired</li> </ul> </td> </tr> @@ -762,16 +775,16 @@ for details.</p> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Epsilon in kJ/mol for each atom -(see <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/topology/#ost.mol.mm.Topology.SetEpsilons" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.mol.mm.Topology.SetEpsilons()</span></code></a>)</p> +(see <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/topology/#ost.mol.mm.Topology.SetEpsilons" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.SetEpsilons()</span></code></a>)</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a> (length = <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetNumAtoms" title="promod3.loop.ForcefieldLookup.GetNumAtoms"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumAtoms()</span></code></a>)</p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a> (length = <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetNumAtoms" title="promod3.loop.ForcefieldLookup.GetNumAtoms"><code class="xref py py-meth docutils literal"><span class="pre">GetNumAtoms()</span></code></a>)</p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> -<li><strong>is_nter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True if N-terminal variant desired</li> -<li><strong>is_cter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True if C-terminal variant desired</li> +<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> +<li><strong>is_nter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True if N-terminal variant desired</li> +<li><strong>is_cter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True if C-terminal variant desired</li> </ul> </td> </tr> @@ -789,13 +802,13 @@ for details.</p> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Internal connectivity of a residue</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.loop.ForcefieldConnectivity" title="promod3.loop.ForcefieldConnectivity"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldConnectivity</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.loop.ForcefieldConnectivity" title="promod3.loop.ForcefieldConnectivity"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldConnectivity</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> -<li><strong>is_nter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True if N-terminal variant desired</li> -<li><strong>is_cter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True if C-terminal variant desired</li> +<li><strong>ff_aa</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type</li> +<li><strong>is_nter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True if N-terminal variant desired</li> +<li><strong>is_cter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True if C-terminal variant desired</li> </ul> </td> </tr> @@ -811,17 +824,17 @@ for details.</p> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">All connectivity which include peptide bond between two residues -(additional to <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetInternalConnectivity" title="promod3.loop.ForcefieldLookup.GetInternalConnectivity"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetInternalConnectivity()</span></code></a>)</p> +(additional to <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetInternalConnectivity" title="promod3.loop.ForcefieldLookup.GetInternalConnectivity"><code class="xref py py-meth docutils literal"><span class="pre">GetInternalConnectivity()</span></code></a>)</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.loop.ForcefieldConnectivity" title="promod3.loop.ForcefieldConnectivity"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldConnectivity</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.loop.ForcefieldConnectivity" title="promod3.loop.ForcefieldConnectivity"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldConnectivity</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>ff_aa_one</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type of first residue</li> -<li><strong>ff_aa_two</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type of second residue</li> -<li><strong>is_nter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True if first residue is N-terminal</li> -<li><strong>is_cter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True if second residue is C-terminal</li> +<li><strong>ff_aa_one</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type of first residue</li> +<li><strong>ff_aa_two</strong> (<a class="reference internal" href="#promod3.loop.ForcefieldAminoAcid" title="promod3.loop.ForcefieldAminoAcid"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldAminoAcid</span></code></a>) – Forcefield-specific amino acid type of second residue</li> +<li><strong>is_nter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True if first residue is N-terminal</li> +<li><strong>is_cter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True if second residue is C-terminal</li> </ul> </td> </tr> @@ -837,9 +850,9 @@ for details.</p> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">All connectivity which include disulfid bridge between two cysteins -(additional to <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetInternalConnectivity" title="promod3.loop.ForcefieldLookup.GetInternalConnectivity"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetInternalConnectivity()</span></code></a>)</td> +(additional to <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetInternalConnectivity" title="promod3.loop.ForcefieldLookup.GetInternalConnectivity"><code class="xref py py-meth docutils literal"><span class="pre">GetInternalConnectivity()</span></code></a>)</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.ForcefieldConnectivity" title="promod3.loop.ForcefieldConnectivity"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldConnectivity</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.ForcefieldConnectivity" title="promod3.loop.ForcefieldConnectivity"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldConnectivity</span></code></a></td> </tr> </tbody> </table> @@ -848,57 +861,57 @@ for details.</p> <dl class="method"> <dt id="promod3.loop.ForcefieldLookup.SetFudgeLJ"> <code class="descname">SetFudgeLJ</code><span class="sig-paren">(</span><em>fudge</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.ForcefieldLookup.SetFudgeLJ" title="Permalink to this definition">¶</a></dt> -<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetFudgeLJ" title="promod3.loop.ForcefieldLookup.GetFudgeLJ"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetFudgeLJ()</span></code></a> calls to <em>fudge</em>.</p> +<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetFudgeLJ" title="promod3.loop.ForcefieldLookup.GetFudgeLJ"><code class="xref py py-meth docutils literal"><span class="pre">GetFudgeLJ()</span></code></a> calls to <em>fudge</em>.</p> </dd></dl> <dl class="method"> <dt id="promod3.loop.ForcefieldLookup.SetFudgeQQ"> <code class="descname">SetFudgeQQ</code><span class="sig-paren">(</span><em>fudge</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.ForcefieldLookup.SetFudgeQQ" title="Permalink to this definition">¶</a></dt> -<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetFudgeQQ" title="promod3.loop.ForcefieldLookup.GetFudgeQQ"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetFudgeQQ()</span></code></a> calls to <em>fudge</em>.</p> +<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetFudgeQQ" title="promod3.loop.ForcefieldLookup.GetFudgeQQ"><code class="xref py py-meth docutils literal"><span class="pre">GetFudgeQQ()</span></code></a> calls to <em>fudge</em>.</p> </dd></dl> <dl class="method"> <dt id="promod3.loop.ForcefieldLookup.SetMasses"> <code class="descname">SetMasses</code><span class="sig-paren">(</span><em>ff_aa</em>, <em>is_nter</em>, <em>is_cter</em>, <em>masses</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.ForcefieldLookup.SetMasses" title="Permalink to this definition">¶</a></dt> -<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetMasses" title="promod3.loop.ForcefieldLookup.GetMasses"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetMasses()</span></code></a> calls to <em>masses</em>.</p> +<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetMasses" title="promod3.loop.ForcefieldLookup.GetMasses"><code class="xref py py-meth docutils literal"><span class="pre">GetMasses()</span></code></a> calls to <em>masses</em>.</p> </dd></dl> <dl class="method"> <dt id="promod3.loop.ForcefieldLookup.SetCharges"> <code class="descname">SetCharges</code><span class="sig-paren">(</span><em>ff_aa</em>, <em>is_nter</em>, <em>is_cter</em>, <em>charges</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.ForcefieldLookup.SetCharges" title="Permalink to this definition">¶</a></dt> -<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetCharges" title="promod3.loop.ForcefieldLookup.GetCharges"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetCharges()</span></code></a> calls to <em>charges</em>.</p> +<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetCharges" title="promod3.loop.ForcefieldLookup.GetCharges"><code class="xref py py-meth docutils literal"><span class="pre">GetCharges()</span></code></a> calls to <em>charges</em>.</p> </dd></dl> <dl class="method"> <dt id="promod3.loop.ForcefieldLookup.SetSigmas"> <code class="descname">SetSigmas</code><span class="sig-paren">(</span><em>ff_aa</em>, <em>is_nter</em>, <em>is_cter</em>, <em>sigmas</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.ForcefieldLookup.SetSigmas" title="Permalink to this definition">¶</a></dt> -<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetSigmas" title="promod3.loop.ForcefieldLookup.GetSigmas"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetSigmas()</span></code></a> calls to <em>sigmas</em>.</p> +<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetSigmas" title="promod3.loop.ForcefieldLookup.GetSigmas"><code class="xref py py-meth docutils literal"><span class="pre">GetSigmas()</span></code></a> calls to <em>sigmas</em>.</p> </dd></dl> <dl class="method"> <dt id="promod3.loop.ForcefieldLookup.SetEpsilons"> <code class="descname">SetEpsilons</code><span class="sig-paren">(</span><em>ff_aa</em>, <em>is_nter</em>, <em>is_cter</em>, <em>epsilons</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.ForcefieldLookup.SetEpsilons" title="Permalink to this definition">¶</a></dt> -<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetEpsilons" title="promod3.loop.ForcefieldLookup.GetEpsilons"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetEpsilons()</span></code></a> calls to <em>epsilons</em>.</p> +<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetEpsilons" title="promod3.loop.ForcefieldLookup.GetEpsilons"><code class="xref py py-meth docutils literal"><span class="pre">GetEpsilons()</span></code></a> calls to <em>epsilons</em>.</p> </dd></dl> <dl class="method"> <dt id="promod3.loop.ForcefieldLookup.SetInternalConnectivity"> <code class="descname">SetInternalConnectivity</code><span class="sig-paren">(</span><em>ff_aa</em>, <em>is_nter</em>, <em>is_cter</em>, <em>connectivity</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.ForcefieldLookup.SetInternalConnectivity" title="Permalink to this definition">¶</a></dt> -<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetInternalConnectivity" title="promod3.loop.ForcefieldLookup.GetInternalConnectivity"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetInternalConnectivity()</span></code></a> calls to +<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetInternalConnectivity" title="promod3.loop.ForcefieldLookup.GetInternalConnectivity"><code class="xref py py-meth docutils literal"><span class="pre">GetInternalConnectivity()</span></code></a> calls to <em>connectivity</em>.</p> </dd></dl> <dl class="method"> <dt id="promod3.loop.ForcefieldLookup.SetPeptideBoundConnectivity"> <code class="descname">SetPeptideBoundConnectivity</code><span class="sig-paren">(</span><em>ff_aa_one</em>, <em>ff_aa_two</em>, <em>is_nter</em>, <em>is_cter</em>, <em>connectivity</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.ForcefieldLookup.SetPeptideBoundConnectivity" title="Permalink to this definition">¶</a></dt> -<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetPeptideBoundConnectivity" title="promod3.loop.ForcefieldLookup.GetPeptideBoundConnectivity"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetPeptideBoundConnectivity()</span></code></a> calls to +<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetPeptideBoundConnectivity" title="promod3.loop.ForcefieldLookup.GetPeptideBoundConnectivity"><code class="xref py py-meth docutils literal"><span class="pre">GetPeptideBoundConnectivity()</span></code></a> calls to <em>connectivity</em>.</p> </dd></dl> <dl class="method"> <dt id="promod3.loop.ForcefieldLookup.SetDisulfidConnectivity"> <code class="descname">SetDisulfidConnectivity</code><span class="sig-paren">(</span><em>connectivity</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.ForcefieldLookup.SetDisulfidConnectivity" title="Permalink to this definition">¶</a></dt> -<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetDisulfidConnectivity" title="promod3.loop.ForcefieldLookup.GetDisulfidConnectivity"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetDisulfidConnectivity()</span></code></a> calls to +<dd><p>Set value for future <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetDisulfidConnectivity" title="promod3.loop.ForcefieldLookup.GetDisulfidConnectivity"><code class="xref py py-meth docutils literal"><span class="pre">GetDisulfidConnectivity()</span></code></a> calls to <em>connectivity</em>.</p> </dd></dl> @@ -908,7 +921,7 @@ for details.</p> <dt id="promod3.loop.ForcefieldAminoAcid"> <em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">ForcefieldAminoAcid</code><a class="headerlink" href="#promod3.loop.ForcefieldAminoAcid" title="Permalink to this definition">¶</a></dt> <dd><p>Enumerates the amino acid types for forcefields. The first 20 values -correspond to the 20 values of <a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>. Additionally, +correspond to the 20 values of <a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>. Additionally, there are values for disulfid bridges (<em>FF_CYS2</em>), d-protonated histidine (<em>FF_HISD</em>, default for <em>ost.conop.HIS</em> is <em>FF_HISE</em>) and <em>FF_XXX</em> for unknown types. The full list of values is:</p> @@ -924,10 +937,10 @@ types. The full list of values is:</p> <em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">ForcefieldConnectivity</code><a class="headerlink" href="#promod3.loop.ForcefieldConnectivity" title="Permalink to this definition">¶</a></dt> <dd><p>Contains lists of bonds, angles, dihedrals, impropers and LJ pairs (exclusions are the combination of all bonds and 1,3 pairs of angles and are not stored -separately). Each type of connectivity has it’s own class (see below) storing -indices and parameters to be used for methods of <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/topology/#ost.mol.mm.Topology" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.mm.Topology</span></code></a>. +separately). Each type of connectivity has it’s own class (see below) storing +indices and parameters to be used for methods of <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/topology/#ost.mol.mm.Topology" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.mm.Topology</span></code></a>. The indexing of atoms for internal connectivities is in [<em>0, N-1</em>], where <em>N</em> -= <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetNumAtoms" title="promod3.loop.ForcefieldLookup.GetNumAtoms"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ForcefieldLookup.GetNumAtoms()</span></code></a>. For connectivities of pairs of += <a class="reference internal" href="#promod3.loop.ForcefieldLookup.GetNumAtoms" title="promod3.loop.ForcefieldLookup.GetNumAtoms"><code class="xref py py-meth docutils literal"><span class="pre">ForcefieldLookup.GetNumAtoms()</span></code></a>. For connectivities of pairs of residues, atoms of the first residue are in [<em>0, N1-1</em>] and atoms of the second one are in [<em>N1, N1+N2-1</em>], where <em>N1</em> and <em>N2</em> are the number of atoms of the two residues. For disulfid bridges, <em>N1</em> = <em>N2</em> = <em>GetNumAtoms(FF_CYS2, @@ -940,7 +953,7 @@ False, False)</em>.</p> <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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.loop.ForcefieldBondInfo" title="promod3.loop.ForcefieldBondInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldBondInfo</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.loop.ForcefieldBondInfo" title="promod3.loop.ForcefieldBondInfo"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldBondInfo</span></code></a></td> </tr> </tbody> </table> @@ -954,7 +967,7 @@ False, False)</em>.</p> <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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.loop.ForcefieldHarmonicAngleInfo" title="promod3.loop.ForcefieldHarmonicAngleInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldHarmonicAngleInfo</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.loop.ForcefieldHarmonicAngleInfo" title="promod3.loop.ForcefieldHarmonicAngleInfo"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldHarmonicAngleInfo</span></code></a></td> </tr> </tbody> </table> @@ -968,7 +981,7 @@ False, False)</em>.</p> <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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.loop.ForcefieldUreyBradleyAngleInfo" title="promod3.loop.ForcefieldUreyBradleyAngleInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldUreyBradleyAngleInfo</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.loop.ForcefieldUreyBradleyAngleInfo" title="promod3.loop.ForcefieldUreyBradleyAngleInfo"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldUreyBradleyAngleInfo</span></code></a></td> </tr> </tbody> </table> @@ -982,7 +995,7 @@ False, False)</em>.</p> <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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.loop.ForcefieldPeriodicDihedralInfo" title="promod3.loop.ForcefieldPeriodicDihedralInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldPeriodicDihedralInfo</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.loop.ForcefieldPeriodicDihedralInfo" title="promod3.loop.ForcefieldPeriodicDihedralInfo"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldPeriodicDihedralInfo</span></code></a></td> </tr> </tbody> </table> @@ -996,7 +1009,7 @@ False, False)</em>.</p> <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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.loop.ForcefieldPeriodicDihedralInfo" title="promod3.loop.ForcefieldPeriodicDihedralInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldPeriodicDihedralInfo</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.loop.ForcefieldPeriodicDihedralInfo" title="promod3.loop.ForcefieldPeriodicDihedralInfo"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldPeriodicDihedralInfo</span></code></a></td> </tr> </tbody> </table> @@ -1010,7 +1023,7 @@ False, False)</em>.</p> <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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.loop.ForcefieldHarmonicImproperInfo" title="promod3.loop.ForcefieldHarmonicImproperInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldHarmonicImproperInfo</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.loop.ForcefieldHarmonicImproperInfo" title="promod3.loop.ForcefieldHarmonicImproperInfo"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldHarmonicImproperInfo</span></code></a></td> </tr> </tbody> </table> @@ -1024,7 +1037,7 @@ False, False)</em>.</p> <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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.loop.ForcefieldLJPairInfo" title="promod3.loop.ForcefieldLJPairInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldLJPairInfo</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.loop.ForcefieldLJPairInfo" title="promod3.loop.ForcefieldLJPairInfo"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldLJPairInfo</span></code></a></td> </tr> </tbody> </table> @@ -1035,7 +1048,7 @@ False, False)</em>.</p> <dl class="class"> <dt id="promod3.loop.ForcefieldBondInfo"> <em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">ForcefieldBondInfo</code><a class="headerlink" href="#promod3.loop.ForcefieldBondInfo" title="Permalink to this definition">¶</a></dt> -<dd><p>Define harmonic bond (see <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/topology/#ost.mol.mm.Topology.AddHarmonicBond" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.mol.mm.Topology.AddHarmonicBond()</span></code></a>)</p> +<dd><p>Define harmonic bond (see <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/topology/#ost.mol.mm.Topology.AddHarmonicBond" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.AddHarmonicBond()</span></code></a>)</p> <dl class="attribute"> <dt id="promod3.loop.ForcefieldBondInfo.index_one"> <code class="descname">index_one</code><a class="headerlink" href="#promod3.loop.ForcefieldBondInfo.index_one" title="Permalink to this definition">¶</a></dt> @@ -1044,7 +1057,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1058,7 +1071,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1072,7 +1085,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -1086,7 +1099,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -1097,7 +1110,7 @@ False, False)</em>.</p> <dl class="class"> <dt id="promod3.loop.ForcefieldHarmonicAngleInfo"> <em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">ForcefieldHarmonicAngleInfo</code><a class="headerlink" href="#promod3.loop.ForcefieldHarmonicAngleInfo" title="Permalink to this definition">¶</a></dt> -<dd><p>Define harmonic angle (see <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/topology/#ost.mol.mm.Topology.AddHarmonicAngle" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.mol.mm.Topology.AddHarmonicAngle()</span></code></a>)</p> +<dd><p>Define harmonic angle (see <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/topology/#ost.mol.mm.Topology.AddHarmonicAngle" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.AddHarmonicAngle()</span></code></a>)</p> <dl class="attribute"> <dt id="promod3.loop.ForcefieldHarmonicAngleInfo.index_one"> <code class="descname">index_one</code><a class="headerlink" href="#promod3.loop.ForcefieldHarmonicAngleInfo.index_one" title="Permalink to this definition">¶</a></dt> @@ -1106,7 +1119,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1120,7 +1133,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1134,7 +1147,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1148,7 +1161,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -1162,7 +1175,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -1174,7 +1187,7 @@ False, False)</em>.</p> <dt id="promod3.loop.ForcefieldUreyBradleyAngleInfo"> <em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">ForcefieldUreyBradleyAngleInfo</code><a class="headerlink" href="#promod3.loop.ForcefieldUreyBradleyAngleInfo" title="Permalink to this definition">¶</a></dt> <dd><p>Define Urey-Bradley angle -(see <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/topology/#ost.mol.mm.Topology.AddUreyBradleyAngle" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.mol.mm.Topology.AddUreyBradleyAngle()</span></code></a>)</p> +(see <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/topology/#ost.mol.mm.Topology.AddUreyBradleyAngle" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.AddUreyBradleyAngle()</span></code></a>)</p> <dl class="attribute"> <dt id="promod3.loop.ForcefieldUreyBradleyAngleInfo.index_one"> <code class="descname">index_one</code><a class="headerlink" href="#promod3.loop.ForcefieldUreyBradleyAngleInfo.index_one" title="Permalink to this definition">¶</a></dt> @@ -1183,7 +1196,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1197,7 +1210,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1211,7 +1224,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1225,7 +1238,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -1239,7 +1252,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -1253,7 +1266,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -1267,7 +1280,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -1279,8 +1292,8 @@ False, False)</em>.</p> <dt id="promod3.loop.ForcefieldPeriodicDihedralInfo"> <em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">ForcefieldPeriodicDihedralInfo</code><a class="headerlink" href="#promod3.loop.ForcefieldPeriodicDihedralInfo" title="Permalink to this definition">¶</a></dt> <dd><p>Define periodic dihedral or improper (see -<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/topology/#ost.mol.mm.Topology.AddPeriodicDihedral" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.mol.mm.Topology.AddPeriodicDihedral()</span></code></a> and -<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/topology/#ost.mol.mm.Topology.AddPeriodicImproper" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.mol.mm.Topology.AddPeriodicImproper()</span></code></a>)</p> +<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/topology/#ost.mol.mm.Topology.AddPeriodicDihedral" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.AddPeriodicDihedral()</span></code></a> and +<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/topology/#ost.mol.mm.Topology.AddPeriodicImproper" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.AddPeriodicImproper()</span></code></a>)</p> <dl class="attribute"> <dt id="promod3.loop.ForcefieldPeriodicDihedralInfo.index_one"> <code class="descname">index_one</code><a class="headerlink" href="#promod3.loop.ForcefieldPeriodicDihedralInfo.index_one" title="Permalink to this definition">¶</a></dt> @@ -1289,7 +1302,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1303,7 +1316,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1317,7 +1330,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1331,7 +1344,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1345,7 +1358,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1359,7 +1372,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -1373,7 +1386,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -1384,7 +1397,7 @@ False, False)</em>.</p> <dl class="class"> <dt id="promod3.loop.ForcefieldHarmonicImproperInfo"> <em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">ForcefieldHarmonicImproperInfo</code><a class="headerlink" href="#promod3.loop.ForcefieldHarmonicImproperInfo" title="Permalink to this definition">¶</a></dt> -<dd><p>Define harmonic improper (see <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/topology/#ost.mol.mm.Topology.AddHarmonicImproper" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.mol.mm.Topology.AddHarmonicImproper()</span></code></a>)</p> +<dd><p>Define harmonic improper (see <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/topology/#ost.mol.mm.Topology.AddHarmonicImproper" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.AddHarmonicImproper()</span></code></a>)</p> <dl class="attribute"> <dt id="promod3.loop.ForcefieldHarmonicImproperInfo.index_one"> <code class="descname">index_one</code><a class="headerlink" href="#promod3.loop.ForcefieldHarmonicImproperInfo.index_one" title="Permalink to this definition">¶</a></dt> @@ -1393,7 +1406,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1407,7 +1420,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1421,7 +1434,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1435,7 +1448,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1449,7 +1462,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -1463,7 +1476,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -1474,7 +1487,7 @@ False, False)</em>.</p> <dl class="class"> <dt id="promod3.loop.ForcefieldLJPairInfo"> <em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">ForcefieldLJPairInfo</code><a class="headerlink" href="#promod3.loop.ForcefieldLJPairInfo" title="Permalink to this definition">¶</a></dt> -<dd><p>Define LJ pair (see <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/topology/#ost.mol.mm.Topology.AddLJPair" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.mol.mm.Topology.AddLJPair()</span></code></a>)</p> +<dd><p>Define LJ pair (see <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/topology/#ost.mol.mm.Topology.AddLJPair" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.AddLJPair()</span></code></a>)</p> <dl class="attribute"> <dt id="promod3.loop.ForcefieldLJPairInfo.index_one"> <code class="descname">index_one</code><a class="headerlink" href="#promod3.loop.ForcefieldLJPairInfo.index_one" title="Permalink to this definition">¶</a></dt> @@ -1483,7 +1496,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1497,7 +1510,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1511,7 +1524,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -1525,7 +1538,7 @@ False, False)</em>.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -1543,45 +1556,20 @@ False, False)</em>.</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Generate <code class="docutils literal"><span class="pre">ost.mol.mm</span></code> systems</a><ul> +<li><a class="reference internal" href="#create-mm-systems-for-loops">Create MM systems for loops</a></li> +<li><a class="reference internal" href="#forcefield-lookup-for-amino-acids">Forcefield lookup for amino acids</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Handling</a><ul> <li>Previous: <a href="all_atom.html" title="previous chapter">Handling All Atom Positions</a></li> <li>Next: <a href="load_loop_objects.html" title="next chapter">Loading Precomputed Objects</a></li> </ul></li> @@ -1589,26 +1577,23 @@ False, False)</em>.</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/loop/mm_system_creation.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -1617,11 +1602,11 @@ False, False)</em>.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/loop/mm_system_creation.rst.txt" + <a href="../_sources/loop/mm_system_creation.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/loop/structure_db.html b/doc/html/loop/structure_db.html index 08783a97cdbff8238ce60579153e31aadb710366..5eebf7852d21dc65b572a917e016ba590eb13bc7 100644 --- a/doc/html/loop/structure_db.html +++ b/doc/html/loop/structure_db.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Structural Data — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="loop - Loop Handling" href="index.html" /> <link rel="next" title="Handling All Atom Positions" href="all_atom.html" /> <link rel="prev" title="Sampling Dihedral Angles" href="torsion_sampler.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -36,11 +49,11 @@ <div class="section" id="structural-data"> <h1>Structural Data<a class="headerlink" href="#structural-data" title="Permalink to this headline">¶</a></h1> -<p>The <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a> serves as a container for structural backbone and +<p>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> serves as a container for structural backbone and sequence data. Custom accessor objects can be implemented that relate arbitrary features to structural data. Examples provided by ProMod3 include -accession using matching stem geometry (see: <a class="reference internal" href="#promod3.loop.FragDB" title="promod3.loop.FragDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">FragDB</span></code></a>) or sequence -features (see: <a class="reference internal" href="#promod3.loop.Fragger" title="promod3.loop.Fragger"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fragger</span></code></a>). +accession using matching stem geometry (see: <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>) or sequence +features (see: <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>). Besides backbone and sequence data, derived features can optionally be stored. E.g. sequence profiles or secondary structure information. Optional data includes:</p> @@ -63,7 +76,7 @@ version of the residue depth as discussed in <a class="reference internal" href= directly calculated when structural information is added to the StructureDB.</li> <li>The amino acid frequency derived from structural alignments as described in <a class="reference internal" href="../references.html#zhou2005" id="id2">[zhou2005]</a> - Since the calculation of such a profile already requires a -StructureDB, we end up in a hen and egg problem here… When adding +StructureDB, we end up in a hen and egg problem here... When adding structural information to the StructureDB, the according memory gets just allocated and set to zero. The usage of this information is therefore only meaningful if you calculate these profiles @@ -76,7 +89,7 @@ and manually set them (or load the provided default database).</li> <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 -a <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a>. It contains internal information of how a +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>. It contains internal information of how a connected stretch of residues is stored in the database.</p> <dl class="attribute"> <dt id="promod3.loop.CoordInfo.id"> @@ -97,13 +110,13 @@ structure db</p> <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 stretch are stored in a linear memory layout. The offset parameter tells us where it exactly starts in the global data -structure. (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>)</p> +structure. (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>)</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 number of residues in that stretch (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>)</p> +<dd><p>The number of residues in that stretch (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>)</p> </dd></dl> <dl class="attribute"> @@ -111,14 +124,14 @@ structure. (<a class="reference external" href="https://docs.python.org/3.6/libr <code class="descname">start_resnum</code><a class="headerlink" href="#promod3.loop.CoordInfo.start_resnum" title="Permalink to this definition">¶</a></dt> <dd><p>Residue number of first residue in the added stretch. The residue number is relative to the SEQRES provided in the input profile when adding the -stuff to the structure db. (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>)</p> +stuff to the structure db. (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>)</p> </dd></dl> <dl class="attribute"> <dt id="promod3.loop.CoordInfo.shift"> <code class="descname">shift</code><a class="headerlink" href="#promod3.loop.CoordInfo.shift" title="Permalink to this definition">¶</a></dt> <dd><p>Translation from original coordinates that has been applied before storing -structural information in db. (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>)</p> +structural information in db. (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>)</p> </dd></dl> </dd></dl> @@ -126,16 +139,16 @@ structural information in db. (<a class="reference external" href="https://www.o <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 any fragment in the <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a>. If you +<dd><p>The FragmentInfo defines any fragment 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>. If you implement your own accessor object, thats the information you want to store.</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> – Fills <a class="reference internal" href="#promod3.loop.FragmentInfo.chain_index" title="promod3.loop.FragmentInfo.chain_index"><code class="xref py py-attr docutils literal notranslate"><span class="pre">chain_index</span></code></a></li> -<li><strong>offset</strong> – Fills <a class="reference internal" href="#promod3.loop.FragmentInfo.offset" title="promod3.loop.FragmentInfo.offset"><code class="xref py py-attr docutils literal notranslate"><span class="pre">offset</span></code></a></li> -<li><strong>length</strong> – Fills <a class="reference internal" href="#promod3.loop.FragmentInfo.length" title="promod3.loop.FragmentInfo.length"><code class="xref py py-attr docutils literal notranslate"><span class="pre">length</span></code></a></li> +<li><strong>chain_index</strong> – Fills <a class="reference internal" href="#promod3.loop.FragmentInfo.chain_index" title="promod3.loop.FragmentInfo.chain_index"><code class="xref py py-attr docutils literal"><span class="pre">chain_index</span></code></a></li> +<li><strong>offset</strong> – Fills <a class="reference internal" href="#promod3.loop.FragmentInfo.offset" title="promod3.loop.FragmentInfo.offset"><code class="xref py py-attr docutils literal"><span class="pre">offset</span></code></a></li> +<li><strong>length</strong> – Fills <a class="reference internal" href="#promod3.loop.FragmentInfo.length" title="promod3.loop.FragmentInfo.length"><code class="xref py py-attr docutils literal"><span class="pre">length</span></code></a></li> </ul> </td> </tr> @@ -144,20 +157,20 @@ implement your own accessor object, thats the information you want to store.</p> <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><p>The index of the chain (defined by <a class="reference internal" href="#promod3.loop.CoordInfo" title="promod3.loop.CoordInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">CoordInfo</span></code></a>) in the -<a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a> this particle belongs to. (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>)</p> +<dd><p>The index of the chain (defined by <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>) 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> this particle belongs to. (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>)</p> </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><p>Index of residue in <strong>chain</strong> the fragment starts. (0-based, <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>)</p> +<dd><p>Index of residue in <strong>chain</strong> the fragment starts. (0-based, <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>)</p> </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><p>Length of the fragment (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>)</p> +<dd><p>Length of the fragment (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>)</p> </dd></dl> </dd></dl> @@ -167,8 +180,8 @@ implement your own accessor object, thats the information you want to store.</p> <h2>The Structure Database<a class="headerlink" href="#the-structure-database" title="Permalink to this headline">¶</a></h2> <p>The following code example demonstrates how to create a structural database and fill it with content.</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">loop</span> -<span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">io</span><span class="p">,</span> <span class="n">seq</span> +<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">loop</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">import</span> <span class="nn">os</span> <span class="c1"># StructureDB where all data get extracted</span> @@ -260,7 +273,7 @@ database, you might want to consider two things:</p> <ol class="arabic simple"> <li>Use a database of limited size to generate the actual profiles (something in between 5000 and 10000 nonredundant chains is enough)</li> -<li>Use the <a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.ProfileDB" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.ProfileDB</span></code></a> to gather profiles produced from jobs +<li>Use the <a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.ProfileDB" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileDB</span></code></a> to gather profiles produced from jobs running in parallel</li> </ol> <dl class="class"> @@ -272,10 +285,10 @@ to backbone coordinates and sequence. For the bare minimum (only backbone coordinates and sequence), use Minimal. If you want to store all data possible, use All. If you only want a subset, you can combine some of the datatypes with a bitwise or operation -(see example script for <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a>). One important note: +(see example script for <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>). One important note: If you enable AAFrequenciesStruct, the actual information is not automatically assigned. Only the according memory is allocated and set to zero, the actual -information must be assigned manually (see example script again…).</p> +information must be assigned manually (see example script again...).</p> <p>Minimal, All, Dihedrals, SolventAccessibilities, ResidueDepths, DSSP, AAFrequencies, AAFrequenciesStruct</p> </dd></dl> @@ -283,15 +296,15 @@ AAFrequencies, AAFrequenciesStruct</p> <dl class="class"> <dt id="promod3.loop.StructureDB"> <em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">StructureDB</code><span class="sig-paren">(</span><em>data_to_store</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB" title="Permalink to this definition">¶</a></dt> -<dd><p>Generates an empty <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a> that can be filled with content -through <a class="reference internal" href="#promod3.loop.StructureDB.AddCoordinates" title="promod3.loop.StructureDB.AddCoordinates"><code class="xref py py-func docutils literal notranslate"><span class="pre">AddCoordinates()</span></code></a>. The information extracted there is defined by -<em>data_to_store</em>. Have a look at the <a class="reference internal" href="#promod3.loop.StructureDBDataType" title="promod3.loop.StructureDBDataType"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDBDataType</span></code></a> -documentation and at the example script…</p> +<dd><p>Generates an empty <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> that can be filled with content +through <a class="reference internal" href="#promod3.loop.StructureDB.AddCoordinates" title="promod3.loop.StructureDB.AddCoordinates"><code class="xref py py-func docutils literal"><span class="pre">AddCoordinates()</span></code></a>. The information extracted there is defined by +<em>data_to_store</em>. Have a look at the <a class="reference internal" href="#promod3.loop.StructureDBDataType" title="promod3.loop.StructureDBDataType"><code class="xref py py-class docutils literal"><span class="pre">StructureDBDataType</span></code></a> +documentation and at the example script...</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>data_to_store</strong> (<a class="reference internal" href="#promod3.loop.StructureDBDataType" title="promod3.loop.StructureDBDataType"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDBDataType</span></code></a>) – Specifies what data to store in the database, several +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>data_to_store</strong> (<a class="reference internal" href="#promod3.loop.StructureDBDataType" title="promod3.loop.StructureDBDataType"><code class="xref py py-class docutils literal"><span class="pre">StructureDBDataType</span></code></a>) – Specifies what data to store in the database, several flags can be combined with a bitwise or operator.</td> </tr> </tbody> @@ -301,20 +314,20 @@ flags can be combined with a bitwise or operator.</td> <em class="property">static </em><code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.Load" title="Permalink to this definition">¶</a></dt> <dt id="promod3.loop.StructureDB.LoadPortable"> <em class="property">static </em><code class="descname">LoadPortable</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.LoadPortable" title="Permalink to this definition">¶</a></dt> -<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.loop.StructureDB.Save" title="promod3.loop.StructureDB.Save"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Save()</span></code></a> (optimized for fast -reading) / portable file generated with <a class="reference internal" href="#promod3.loop.StructureDB.SavePortable" title="promod3.loop.StructureDB.SavePortable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SavePortable()</span></code></a> (slower but +<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.loop.StructureDB.Save" title="promod3.loop.StructureDB.Save"><code class="xref py py-meth docutils literal"><span class="pre">Save()</span></code></a> (optimized for fast +reading) / portable file generated with <a class="reference internal" href="#promod3.loop.StructureDB.SavePortable" title="promod3.loop.StructureDB.SavePortable"><code class="xref py py-meth docutils literal"><span class="pre">SavePortable()</span></code></a> (slower but less machine-dependent).</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file from which to load the database.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – 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 data base</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.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><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></td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened or if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened or if file cannot be parsed (see <a class="reference internal" href="../portableIO.html#portableio"><span class="std std-ref">here</span></a> for details).</td> </tr> </tbody> @@ -333,9 +346,9 @@ for details.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file where the database will be saved</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened</td> </tr> </tbody> </table> @@ -349,11 +362,11 @@ for details.</p> <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>data_type</strong> (<a class="reference internal" href="#promod3.loop.StructureDBDataType" title="promod3.loop.StructureDBDataType"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDBDataType</span></code></a>) – Data type to check</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>data_type</strong> (<a class="reference internal" href="#promod3.loop.StructureDBDataType" title="promod3.loop.StructureDBDataType"><code class="xref py py-class docutils literal"><span class="pre">StructureDBDataType</span></code></a>) – Data type to check</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Whether the requested datatype is available</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -373,11 +386,11 @@ All residues in chain with name <em>chain_name</em> must have residue numbers that directly relate them to the <em>seqres</em> with an indexing scheme starting from one. If this is not the case, an error gets thrown. You might want to -consider to use <code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.seq.Renumber()</span></code> for proper numbering. +consider to use <code class="xref py py-meth docutils literal"><span class="pre">ost.seq.Renumber()</span></code> for proper numbering. Based on consecutive numbering and additionally checking for valid peptide bonds, connected stretches are identified and every added connected stretch gets its own entry with -<a class="reference internal" href="#promod3.loop.CoordInfo" title="promod3.loop.CoordInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">CoordInfo</span></code></a> as a descriptor. +<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> as a descriptor. To avoid cluttering the database with many small fragments, the flag: <em>only_longest_stretch</em> can be used. Set it to False if all connected stretches of chain with name <em>chain_name</em> should be added. @@ -387,21 +400,21 @@ z - direction for every connected stretch is limited to 655A. This should be sufficient for most structures, but stretches exceeding this maximum are discarded. For storing the structural data given these restraints, a translation is applied that gets stored as the <em>shift</em> attribute -in the according <a class="reference internal" href="#promod3.loop.CoordInfo" title="promod3.loop.CoordInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">CoordInfo</span></code></a> object.</p> +in the according <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.</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>id</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – identifier of the added structure (e.g. pdb id)</li> -<li><strong>chain_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Name of the chain in <em>ent</em> you want to add</li> -<li><strong>ent</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.EntityHandle</span></code></a> / -<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.EntityView</span></code></a>) – The full entity that must contain a chain named +<li><strong>id</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – identifier of the added structure (e.g. pdb id)</li> +<li><strong>chain_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Name of the chain in <em>ent</em> you want to add</li> +<li><strong>ent</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityHandle</span></code></a> / +<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityView</span></code></a>) – The full entity that must contain a chain named as specified by <em>chain_name</em>.</li> -<li><strong>seqres</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.SequenceHandle</span></code></a>) – The reference sequence of chain with name <em>chain_name</em></li> -<li><strong>prof</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – Profile information for the chain with name +<li><strong>seqres</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.SequenceHandle</span></code></a>) – The reference sequence of chain with name <em>chain_name</em></li> +<li><strong>prof</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – Profile information for the chain with name <em>chain_name</em>. The profile sequence must match <em>seqres</em>.</li> -<li><strong>only_longest_stretch</strong> – Flag whether you want to add only the longest +<li><strong>only_longest_stretch</strong> – Flag whether you want to add only the longest connected stretch of residues are all connected stretches of residues</li> </ul> @@ -410,10 +423,10 @@ stretches of residues</li> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">indices of added stretches in db</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <cite>int</cite></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <cite>int</cite></p> </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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if the residues in chain with +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if the residues in chain with name <em>chain_name</em> do not match <em>seqres</em> given the residue numbers, when AAFrequencies have to to be extracted and the sequence in <em>prof</em> does not match the <em>seqres</em> or <em>prof</em> is @@ -428,7 +441,7 @@ invalid.</p> <dt id="promod3.loop.StructureDB.RemoveCoordinates"> <code class="descname">RemoveCoordinates</code><span class="sig-paren">(</span><em>coord_idx</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.RemoveCoordinates" title="Permalink to this definition">¶</a></dt> <dd><p>Removes coordinates at specified location and all its associated data. This -has an impact on the offset values of all <a class="reference internal" href="#promod3.loop.CoordInfo" title="promod3.loop.CoordInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">CoordInfo</span></code></a> objects +has an impact on the offset values of all <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> objects that are internally stored afterwards and on the actual coord indices (all shifted by one). So make sure that you adapt your data access accordingly!</p> @@ -436,9 +449,9 @@ accordingly!</p> <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>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Specifies coordinates to be removed</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Specifies coordinates to be removed</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>coord_idx</em> is invalid</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>coord_idx</em> is invalid</td> </tr> </tbody> </table> @@ -451,17 +464,17 @@ accordingly!</p> <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"><p class="first">The <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a> indices (in [0, <a class="reference internal" href="#promod3.loop.StructureDB.GetNumCoords" title="promod3.loop.StructureDB.GetNumCoords"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumCoords()</span></code></a>-1]) +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">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> indices (in [0, <a class="reference internal" href="#promod3.loop.StructureDB.GetNumCoords" title="promod3.loop.StructureDB.GetNumCoords"><code class="xref py py-meth docutils literal"><span class="pre">GetNumCoords()</span></code></a>-1]) of all coords (connected stretches) with matching <em>id</em> / <em>chain_name</em>.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>id</strong> – Identifier given when calling <a class="reference internal" href="#promod3.loop.StructureDB.AddCoordinates" title="promod3.loop.StructureDB.AddCoordinates"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AddCoordinates()</span></code></a></li> -<li><strong>chain_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Name of chain given when calling <a class="reference internal" href="#promod3.loop.StructureDB.AddCoordinates" title="promod3.loop.StructureDB.AddCoordinates"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AddCoordinates()</span></code></a></li> +<li><strong>id</strong> – Identifier given when calling <a class="reference internal" href="#promod3.loop.StructureDB.AddCoordinates" title="promod3.loop.StructureDB.AddCoordinates"><code class="xref py py-meth docutils literal"><span class="pre">AddCoordinates()</span></code></a></li> +<li><strong>chain_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Name of chain given when calling <a class="reference internal" href="#promod3.loop.StructureDB.AddCoordinates" title="promod3.loop.StructureDB.AddCoordinates"><code class="xref py py-meth docutils literal"><span class="pre">AddCoordinates()</span></code></a></li> </ul> </td> </tr> @@ -479,9 +492,9 @@ of all coords (connected stretches) with matching <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Object describing the stretch of connected residues with index <em>idx</em>.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.CoordInfo" title="promod3.loop.CoordInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">CoordInfo</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><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></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a> index (in [0, <a class="reference internal" href="#promod3.loop.StructureDB.GetNumCoords" title="promod3.loop.StructureDB.GetNumCoords"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumCoords()</span></code></a>-1])</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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> index (in [0, <a class="reference internal" href="#promod3.loop.StructureDB.GetNumCoords" title="promod3.loop.StructureDB.GetNumCoords"><code class="xref py py-meth docutils literal"><span class="pre">GetNumCoords()</span></code></a>-1])</td> </tr> </tbody> </table> @@ -497,7 +510,7 @@ index <em>idx</em>.</td> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Number of connected stretches of residues that have been added to the database.</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -526,23 +539,23 @@ the database.</td> full entry at <em>coord_idx</em></p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><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></p> </td> </tr> <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 notranslate"><span class="pre">FragmentInfo</span></code></a>) – Fragment definition from which to extract positions.</li> -<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx of entry from which to extract positions.</li> -<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Sequence of the returned backbone list. If not +<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>) – Fragment definition from which to extract positions.</li> +<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of entry from which to extract positions.</li> +<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Sequence of the returned backbone list. If not set, the original sequence at specified location in the database is used.</li> -<li><strong>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Positions on which the backbone list’s N-terminus should be +<li><strong>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Positions on which the backbone list’s N-terminus should be superposed onto.</li> -<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Positions on which the backbone list’s C-terminus should be +<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Positions on which the backbone list’s C-terminus should be superposed onto.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if the length of <em>sequence</em> does +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if the length of <em>sequence</em> does not match with the desired backbone list, if <em>sequence</em> contains a character which does not belong to the 20 proteinogenic amino acids or if <em>fragment</em> or <em>coord_idx</em> is invalid. Fragment can @@ -566,16 +579,16 @@ stretches of residues in the database.</p> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The sequence of <em>fragment</em> or full entry at <em>coord_idx</em></p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></p> </td> </tr> <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 notranslate"><span class="pre">FragmentInfo</span></code></a>) – Fragment definition from which to extract the sequence.</li> -<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx of entry from which to extract the sequence</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>) – Fragment definition from which to extract the sequence.</li> +<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of entry from which to extract the sequence</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if fragment or coord_idx is +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if fragment or coord_idx is invalid. Fragment can be invalid when it does not fully fit into one of the connected stretches of residues in the database.</p> </td> @@ -596,16 +609,16 @@ one of the connected stretches of residues in the database.</p> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The dssp states of <em>fragment</em> or full entry at <em>coord_idx</em></p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></p> </td> </tr> <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 notranslate"><span class="pre">FragmentInfo</span></code></a>) – Fragment definition from which to extract the states.</li> -<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx of entry from which to extract the dssp states</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>) – Fragment definition from which to extract the states.</li> +<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of entry from which to extract the dssp states</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if database does not contain dssp +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if database does not contain dssp data or if fragment/ coord_idx is invalid. Fragment can be invalid when it does not fully fit into one of the connected stretches of residues in the database.</p> @@ -628,16 +641,16 @@ residues in the database.</p> or full entry at <em>coord_idx</em></p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of pairs (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a>)</p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of pairs (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a>)</p> </td> </tr> <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 notranslate"><span class="pre">FragmentInfo</span></code></a>) – Fragment definition from which to extract the dihedrals.</li> -<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx of entry from which to extract the dihedral angles</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>) – Fragment definition from which to extract the dihedrals.</li> +<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of entry from which to extract the dihedral angles</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if database does not contain +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if database does not contain dihedral angle data or if fragment/ coord_idx is invalid. Fragment can be invalid when it does not fully fit into one of the connected stretches of residues in the database.</p> @@ -660,17 +673,17 @@ connected stretches of residues in the database.</p> at <em>coord_idx</em></p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </td> </tr> <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 notranslate"><span class="pre">FragmentInfo</span></code></a>) – Fragment definition from which to extract the residue +<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>) – Fragment definition from which to extract the residue depths</li> -<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx of entry from which to extract the residue depths</li> +<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of entry from which to extract the residue depths</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if database does not contain +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if database does not contain residue depth data or if fragment/ coord_idx is invalid. Fragment can be invalid when it does not fully fit into one of the connected stretches of residues in the database.</p> @@ -691,22 +704,22 @@ connected stretches of residues in the database.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Solvent accessibility for each residue of <em>fragment</em> or full entry at <em>coord_idx</em> in square A as calculated by -<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/alg/molalg/#ost.mol.alg.Accessibility" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Accessibility()</span></code></a> when adding the structure to +<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/alg/molalg/#ost.mol.alg.Accessibility" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">Accessibility()</span></code></a> when adding the structure to the database.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </td> </tr> <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 notranslate"><span class="pre">FragmentInfo</span></code></a>) – Fragment definition from which to extract the solvent +<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>) – Fragment definition from which to extract the solvent accessibilities</li> -<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx of entry from which to extract the solvent +<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of entry from which to extract the solvent accessibilities</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if database does not contain +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if database does not contain solvent accessibility data or if fragment/ coord_idx is invalid. Fragment can be invalid when it does not fully fit into one of the connected stretches of residues in the database.</p> @@ -730,17 +743,17 @@ full entry at <em>coord_idx</em> with the BLOSUM62 probabilities as NULL model.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.ProfileHandle</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a></p> </td> </tr> <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 notranslate"><span class="pre">FragmentInfo</span></code></a>) – Fragment definition from which to extract the sequence +<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>) – Fragment definition from which to extract the sequence profile</li> -<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx of entry from which to extract the sequence profile</li> +<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of entry from which to extract the sequence profile</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if database does not contain +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if database does not contain sequence profile data or if fragment/ coord_idx is invalid. Fragment can be invalid when it does not fully fit into one of the connected stretches of residues in the database.</p> @@ -764,17 +777,17 @@ full entry at <em>coord_idx</em> with the BLOSUM62 probabilities as NULL model.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.ProfileHandle</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a></p> </td> </tr> <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 notranslate"><span class="pre">FragmentInfo</span></code></a>) – Fragment definition from which to extract the structure +<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>) – Fragment definition from which to extract the structure profile</li> -<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx of entry from which to extract the structure profile</li> +<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of entry from which to extract the structure profile</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if database does not contain +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if database does not contain structure profile data or if fragment/ coord_idx is invalid. Fragment can be invalid when it does not fully fit into one of the connected stretches of residues in the database.</p> @@ -794,8 +807,8 @@ using the full internal data of this StructureDB.</p> <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 notranslate"><span class="pre">BackboneList</span></code></a>) – Positions for which to calculate the structural profile</li> -<li><strong>residue_depths</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The residue depth for each residue in <em>bb_list</em> +<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>) – Positions for which to calculate the structural profile</li> +<li><strong>residue_depths</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The residue depth for each residue in <em>bb_list</em> as you would extract it from any StructureDB containing that data.</li> </ul> @@ -805,10 +818,10 @@ containing that data.</li> probabilities as NULL model.</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.ProfileHandle</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a></p> </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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>bb_list</em> and +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>bb_list</em> and <em>residue_depths</em> differ in size, when their size is 0 or when database does not contain residue depth data.</p> </td> @@ -827,13 +840,13 @@ frequencies in entry with <em>coord_idx</em></p> <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>prof</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – Source of profile frequencies</li> -<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – StructureDB index of entry for which to set frequencies -(in [0, <a class="reference internal" href="#promod3.loop.StructureDB.GetNumCoords" title="promod3.loop.StructureDB.GetNumCoords"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumCoords()</span></code></a>-1])</li> +<li><strong>prof</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – Source of profile frequencies</li> +<li><strong>coord_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – StructureDB index of entry for which to set frequencies +(in [0, <a class="reference internal" href="#promod3.loop.StructureDB.GetNumCoords" title="promod3.loop.StructureDB.GetNumCoords"><code class="xref py py-meth docutils literal"><span class="pre">GetNumCoords()</span></code></a>-1])</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>coord_idx</em> does not match +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>coord_idx</em> does not match any entry in the db, when the size of the <em>prof</em> does not exactly match the size of entry at <em>coord_idx</em> or when database does not contain aa frequency struct data.</p> @@ -851,15 +864,15 @@ does not contain aa frequency struct data.</p> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">A new database containing only the structural infos specified by -your input. This might be useful if you’re testing stuff and want +your input. This might be useful if you’re testing stuff and want to make sure that you have no close homologue in the database.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><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></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – Indices of chains to be added to the sub database (in [0, -<a class="reference internal" href="#promod3.loop.StructureDB.GetNumCoords" title="promod3.loop.StructureDB.GetNumCoords"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumCoords()</span></code></a>-1])</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – Indices of chains to be added to the sub database (in [0, +<a class="reference internal" href="#promod3.loop.StructureDB.GetNumCoords" title="promod3.loop.StructureDB.GetNumCoords"><code class="xref py py-meth docutils literal"><span class="pre">GetNumCoords()</span></code></a>-1])</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if you provide an invalid index</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if you provide an invalid index</td> </tr> </tbody> </table> @@ -871,15 +884,15 @@ to make sure that you have no close homologue in the database.</td> <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 notranslate"><span class="pre">StructureDB</span></code></a>). In its current form it +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 (incl. stems) 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> <p>This example illustrates how to create a custom FragDB based on a StructureDB:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">io</span> -<span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">loop</span> +<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">io</span> +<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">loop</span> <span class="c1"># let's load the default structure_db </span> <span class="n">structure_db</span> <span class="o">=</span> <span class="n">loop</span><span class="o">.</span><span class="n">StructureDB</span><span class="o">.</span><span class="n">LoadPortable</span><span class="p">(</span><span class="s2">"data/port_str_db.dat"</span><span class="p">)</span> @@ -922,8 +935,8 @@ accessed through a hash table, making searching the database ultra fast.</p> <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>dist_bin_size</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Size of the distance parameter binning in A</li> -<li><strong>angle_bin_size</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Size of the angle parameter binning in degree</li> +<li><strong>dist_bin_size</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Size of the distance parameter binning in A</li> +<li><strong>angle_bin_size</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Size of the angle parameter binning in degree</li> </ul> </td> </tr> @@ -934,20 +947,20 @@ accessed through a hash table, making searching the database ultra fast.</p> <em class="property">static </em><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> <dt id="promod3.loop.FragDB.LoadPortable"> <em class="property">static </em><code class="descname">LoadPortable</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.FragDB.LoadPortable" title="Permalink to this definition">¶</a></dt> -<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.loop.FragDB.Save" title="promod3.loop.FragDB.Save"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Save()</span></code></a> (optimized for fast -reading) / portable file generated with <a class="reference internal" href="#promod3.loop.FragDB.SavePortable" title="promod3.loop.FragDB.SavePortable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SavePortable()</span></code></a> (slower but +<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.loop.FragDB.Save" title="promod3.loop.FragDB.Save"><code class="xref py py-meth docutils literal"><span class="pre">Save()</span></code></a> (optimized for fast +reading) / portable file generated with <a class="reference internal" href="#promod3.loop.FragDB.SavePortable" title="promod3.loop.FragDB.SavePortable"><code class="xref py py-meth docutils literal"><span class="pre">SavePortable()</span></code></a> (slower but less machine-dependent).</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file from which to load the database.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – 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 notranslate"><span class="pre">FragDB</span></code></a></td> +<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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened or if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened or if file cannot be parsed (see <a class="reference internal" href="../portableIO.html#portableio"><span class="std std-ref">here</span></a> for details).</td> </tr> </tbody> @@ -966,9 +979,9 @@ for details.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – path to the file where the database will be saved</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> </tr> </tbody> </table> @@ -985,7 +998,7 @@ to organize the fragments in the database.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1002,7 +1015,7 @@ to organize the fragments in the database.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -1023,9 +1036,9 @@ length and the geometry of their N and C stem.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – 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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – 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 notranslate"><span class="pre">StructureDB</span></code></a>) – Database delivering the structural info</li> +<li><strong>fragment_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – 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>) – Database delivering the structural info</li> </ul> </td> </tr> @@ -1057,11 +1070,11 @@ or for fragments of a given length.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The length of the fragments</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1078,11 +1091,11 @@ a given length.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The length of the fragments</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1095,11 +1108,11 @@ a given length.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The length of the fragments</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The length of the fragments</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if fragments of given length exist.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -1114,7 +1127,7 @@ a given length.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Maximal fragment length contained in db.</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -1130,17 +1143,17 @@ and <strong>c_stem</strong> and of the same length as the <strong>frag_size</str <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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – The N-stem</li> -<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – The C-stem</li> -<li><strong>frag_size</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of residues of the fragment</li> -<li><strong>extra_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Whether to extend the search to include fragments from +<li><strong>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – The N-stem</li> +<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – The C-stem</li> +<li><strong>frag_size</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of residues of the fragment</li> +<li><strong>extra_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Whether to extend the search to include fragments from <em>extra_bins</em> additional bins surrounding the bin given by the <em>n_stem</em> and <em>c_stem</em> geometry. If odd, we extend to the closer bin, otherwise symmetrically.</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 notranslate"><span class="pre">FragmentInfo</span></code></a> objects. These objects are related +<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> @@ -1154,42 +1167,42 @@ function.</p> </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 notranslate"><span class="pre">StructureDB</span></code></a> to search +<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 notranslate"><span class="pre">Fragger</span></code></a> searches a <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a> for n fragments, +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> 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. You can use the <a class="reference internal" href="#promod3.loop.Fragger" title="promod3.loop.Fragger"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fragger</span></code></a> +structural diversity based on an rmsd threshold. You can use 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> wrapped in a full fletched pipeline implemented in -<a class="reference internal" href="../modelling/algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">FraggerHandle</span></code></a> or search for fragments from scratch +<a class="reference internal" href="../modelling/algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal"><span class="pre">FraggerHandle</span></code></a> or search for fragments from scratch using an arbitrary linear combination of scores:</p> <ul class="simple"> <li><strong>SeqID</strong>: Calculates the fraction of amino acids being identical when comparing -a potential fragment from the <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a> and the target sequence</li> +a potential fragment from 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> and the target sequence</li> <li><strong>SeqSim</strong>: Calculates the avg. substitution matrix based sequence similarity of amino acids -when comparing a potential fragment from the <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a> and the target +when comparing a potential fragment from 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> and the target sequence</li> <li><strong>SSAgree</strong>: Calculates the avg. agreement of the predicted secondary structure by PSIPRED <a class="reference internal" href="../references.html#jones1999" id="id3">[Jones1999]</a> -and the dssp <a class="reference internal" href="../references.html#kabsch1983" id="id4">[kabsch1983]</a> assignment stored in the <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a>. +and the dssp <a class="reference internal" href="../references.html#kabsch1983" id="id4">[kabsch1983]</a> assignment stored 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>. The Agreement term is based on a probabilistic approach also used in HHSearch <a class="reference internal" href="../references.html#soding2005" id="id5">[soding2005]</a>.</li> <li><strong>TorsionProbability</strong>: Calculates the avg. probability of observing the phi/psi dihedral angles of a potential -fragment from the <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a> given the target sequence. The probabilities are -extracted from the <a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a> class.</li> +fragment from 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 target sequence. The probabilities are +extracted from 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> class.</li> <li><strong>SequenceProfile</strong>: Calculates the avg. profile score between the amino acid frequencies of a potential -fragment from the <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a> and a target profile assuming a gapfree alignment +fragment from 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> and a target profile assuming a gapfree alignment in between them. The scores are calculated as L1 distances between the profile columns.</li> <li><strong>StructureProfile</strong>: Calculates the avg. profile score between the amino acid frequencies of a potential -fragment from the <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a> and a target profile assuming a gapfree alignment +fragment from 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> and a target profile assuming a gapfree alignment in between them. The scores are calculated as L1 distances between the profile columns. In this case, the amino acid frequencies extracted from structural alignments are used.</li> </ul> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">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</span> <span class="k">import</span> <span class="n">loop</span> +<div class="highlight-default"><div class="highlight"><pre><span></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</span> <span class="kn">import</span> <span class="n">loop</span> <span class="c1"># 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="s1">'data/1CRN.pdb'</span><span class="p">)</span> @@ -1238,14 +1251,14 @@ In this case, the amino acid frequencies extracted from structural alignments ar <dl class="class"> <dt id="promod3.loop.Fragger"> <em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">Fragger</code><span class="sig-paren">(</span><em>seq</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.Fragger" title="Permalink to this definition">¶</a></dt> -<dd><p>A Fragger object to search a <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a> for fragments with <strong>seq</strong> +<dd><p>A Fragger object to search 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 fragments with <strong>seq</strong> as target sequence. You need to add some score components before you can finally call the Fill 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"><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Sequence of fragments to be searched</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Sequence of fragments to be searched</td> </tr> </tbody> </table> @@ -1260,9 +1273,9 @@ There will be no pair of fragments with RMSD below <strong>rmsd_thresh</strong>. <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 notranslate"><span class="pre">StructureDB</span></code></a>) – Source of structural data</li> -<li><strong>rmsd_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – To guarantee structural diversity</li> -<li><strong>num_fragments</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of fragments to be extracted</li> +<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>) – Source of structural data</li> +<li><strong>rmsd_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – To guarantee structural diversity</li> +<li><strong>num_fragments</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of fragments to be extracted</li> </ul> </td> </tr> @@ -1278,7 +1291,7 @@ There will be no pair of fragments with RMSD below <strong>rmsd_thresh</strong>. <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>w</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – linear weight</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>w</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – linear weight</td> </tr> </tbody> </table> @@ -1293,8 +1306,8 @@ There will be no pair of fragments with RMSD below <strong>rmsd_thresh</strong>. <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>w</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – linear weight</li> -<li><strong>subst</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.SubstWeightMatrix</span></code>) – Substitution matrix to calculate sequence similarity</li> +<li><strong>w</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – linear weight</li> +<li><strong>subst</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.seq.SubstWeightMatrix</span></code>) – Substitution matrix to calculate sequence similarity</li> </ul> </td> </tr> @@ -1311,8 +1324,8 @@ There will be no pair of fragments with RMSD below <strong>rmsd_thresh</strong>. <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>w</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – linear weight</li> -<li><strong>psipred_prediction</strong> (<a class="reference internal" href="#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal notranslate"><span class="pre">PsipredPrediction</span></code></a>) – Psipred prediction for fraggers target_sequence</li> +<li><strong>w</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – linear weight</li> +<li><strong>psipred_prediction</strong> (<a class="reference internal" href="#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal"><span class="pre">PsipredPrediction</span></code></a>) – Psipred prediction for fraggers target_sequence</li> </ul> </td> </tr> @@ -1331,12 +1344,12 @@ There will be no pair of fragments with RMSD below <strong>rmsd_thresh</strong>. <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>w</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – linear weight</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 notranslate"><span class="pre">TorsionSampler</span></code></a>) – Torsion sampler to be used for all residues.</li> -<li><strong>torsion_sampler_list</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a>) – One torsion sampler for each residue.</li> -<li><strong>aa_before</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Name (3 letter code) of the residue before the sequence +<li><strong>w</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – linear weight</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>) – Torsion sampler to be used for all residues.</li> +<li><strong>torsion_sampler_list</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> 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>) – One torsion sampler for each residue.</li> +<li><strong>aa_before</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Name (3 letter code) of the residue before the sequence linked to this object.</li> -<li><strong>aa_after</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Name (3 letter code) of the residue after the sequence +<li><strong>aa_after</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Name (3 letter code) of the residue after the sequence linked to this object.</li> </ul> </td> @@ -1354,8 +1367,8 @@ linked to this object.</li> <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>w</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – linear weight</li> -<li><strong>prof</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – Profile for the fraggers target_sequence</li> +<li><strong>w</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – linear weight</li> +<li><strong>prof</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – Profile for the fraggers target_sequence</li> </ul> </td> </tr> @@ -1372,8 +1385,8 @@ linked to this object.</li> <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>w</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – linear weight</li> -<li><strong>prof</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – Profile for the fraggers target_sequence</li> +<li><strong>w</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – linear weight</li> +<li><strong>prof</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – Profile for the fraggers target_sequence</li> </ul> </td> </tr> @@ -1401,11 +1414,11 @@ linked to this object.</li> <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> – Item to extract</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>index</strong> – 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> -<tr class="field-odd field"><th class="field-name">Return 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 notranslate"><span class="pre">BackboneList</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Return 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> @@ -1418,9 +1431,9 @@ linked to this object.</li> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of fragment</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of fragment</td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.FragmentInfo" title="promod3.loop.FragmentInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">FragmentInfo</span></code></a> of fragment at position <strong>index</strong></td> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><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> of fragment at position <strong>index</strong></td> </tr> </tbody> </table> @@ -1434,7 +1447,7 @@ linked to this object.</li> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of fragment</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of fragment</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Score of fragment at position <strong>index</strong></td> </tr> @@ -1447,15 +1460,15 @@ linked to this object.</li> <code class="descname">GetScore</code><span class="sig-paren">(</span><em>parameter_index</em>, <em>index</em><span class="sig-paren">)</span></dt> <dd><p>Returns the single feature score defined by <strong>parameter_index</strong> of fragment defined by <strong>index</strong> with parameter indexing based on the order -you added them to the <a class="reference internal" href="#promod3.loop.Fragger" title="promod3.loop.Fragger"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fragger</span></code></a></p> +you added them to 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></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>parameter_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of score (0-indexed in order of score +<li><strong>parameter_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of score (0-indexed in order of score components that were added)</li> -<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of fragment</li> +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of fragment</li> </ul> </td> </tr> @@ -1470,31 +1483,31 @@ components that were added)</li> <em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">FraggerMap</code><a class="headerlink" href="#promod3.loop.FraggerMap" title="Permalink to this definition">¶</a></dt> <dd><p>A simple storable map of Fragger objects. The idea is that one can use the map to cache fragger lists that have already been generated.</p> -<p>You can use <a class="reference internal" href="#promod3.loop.FraggerMap.Contains" title="promod3.loop.FraggerMap.Contains"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Contains()</span></code></a> to check if an item with a given key -(<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) already exists and access items with the [] operator (see -<a class="reference internal" href="#promod3.loop.FraggerMap.__getitem__" title="promod3.loop.FraggerMap.__getitem__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__getitem__()</span></code></a> and <a class="reference internal" href="#promod3.loop.FraggerMap.__setitem__" title="promod3.loop.FraggerMap.__setitem__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__setitem__()</span></code></a>).</p> +<p>You can use <a class="reference internal" href="#promod3.loop.FraggerMap.Contains" title="promod3.loop.FraggerMap.Contains"><code class="xref py py-meth docutils literal"><span class="pre">Contains()</span></code></a> to check if an item with a given key +(<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) already exists and access items with the [] operator (see +<a class="reference internal" href="#promod3.loop.FraggerMap.__getitem__" title="promod3.loop.FraggerMap.__getitem__"><code class="xref py py-meth docutils literal"><span class="pre">__getitem__()</span></code></a> and <a class="reference internal" href="#promod3.loop.FraggerMap.__setitem__" title="promod3.loop.FraggerMap.__setitem__"><code class="xref py py-meth docutils literal"><span class="pre">__setitem__()</span></code></a>).</p> <p>Serialization is meant to be temporary and is not guaranteed to be portable.</p> <dl class="method"> <dt id="promod3.loop.FraggerMap.Load"> <code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em>, <em>db</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.FraggerMap.Load" title="Permalink to this definition">¶</a></dt> -<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.loop.FraggerMap.Save" title="promod3.loop.FraggerMap.Save"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Save()</span></code></a>.</p> +<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.loop.FraggerMap.Save" title="promod3.loop.FraggerMap.Save"><code class="xref py py-meth docutils literal"><span class="pre">Save()</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file.</li> -<li><strong>db</strong> (<a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a>) – Source of structural data used when filling the fragments.</li> +<li><strong>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file.</li> +<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>) – Source of structural data used when filling the fragments.</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The loaded map.</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.loop.FraggerMap" title="promod3.loop.FraggerMap"><code class="xref py py-class docutils literal notranslate"><span class="pre">FraggerMap</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.loop.FraggerMap" title="promod3.loop.FraggerMap"><code class="xref py py-class docutils literal"><span class="pre">FraggerMap</span></code></a></p> </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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened.</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened.</p> </td> </tr> </tbody> @@ -1511,9 +1524,9 @@ reread from a structure db.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> </tr> </tbody> </table> @@ -1522,18 +1535,18 @@ reread from a structure db.</p> <dl class="method"> <dt id="promod3.loop.FraggerMap.LoadBB"> <code class="descname">LoadBB</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.FraggerMap.LoadBB" title="Permalink to this definition">¶</a></dt> -<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.loop.FraggerMap.SaveBB" title="promod3.loop.FraggerMap.SaveBB"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SaveBB()</span></code></a>.</p> +<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.loop.FraggerMap.SaveBB" title="promod3.loop.FraggerMap.SaveBB"><code class="xref py py-meth docutils literal"><span class="pre">SaveBB()</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file.</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The loaded map.</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.FraggerMap" title="promod3.loop.FraggerMap"><code class="xref py py-class docutils literal notranslate"><span class="pre">FraggerMap</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.FraggerMap" title="promod3.loop.FraggerMap"><code class="xref py py-class docutils literal"><span class="pre">FraggerMap</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> </tr> </tbody> </table> @@ -1545,14 +1558,14 @@ reread from a structure db.</p> <dd><p>Saves raw binary representation of this map. Only fragments and scores are stored and not the parameters for scoring. Here, we also store the coordinates. This file will hence be much larger than the one saved with -<a class="reference internal" href="#promod3.loop.FraggerMap.Save" title="promod3.loop.FraggerMap.Save"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Save()</span></code></a>.</p> +<a class="reference internal" href="#promod3.loop.FraggerMap.Save" title="promod3.loop.FraggerMap.Save"><code class="xref py py-meth docutils literal"><span class="pre">Save()</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> </tr> </tbody> </table> @@ -1567,7 +1580,7 @@ coordinates. This file will hence be much larger than the one saved with <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, iff a fragger object for this id is already in the map.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -1605,12 +1618,12 @@ coordinates. This file will hence be much larger than the one saved with <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>prediction</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – Secondary structure prediction as element in [‘H’,’E’,’C’]</li> -<li><strong>confidence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – Confidence of prediction as element in [0,9]</li> +<li><strong>prediction</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – Secondary structure prediction as element in [‘H’,’E’,’C’]</li> +<li><strong>confidence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – Confidence of prediction as element in [0,9]</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if size of <strong>prediction</strong> and +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if size of <strong>prediction</strong> and <strong>confidence</strong> are inconsistent or if they contain an invalid element</p> </td> @@ -1622,13 +1635,13 @@ element</p> <dl class="method"> <dt id="promod3.loop.PsipredPrediction.FromHHM"> <code class="descname">FromHHM</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.PsipredPrediction.FromHHM" title="Permalink to this definition">¶</a></dt> -<dd><p>Static function to Load a <a class="reference internal" href="#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal notranslate"><span class="pre">PsipredPrediction</span></code></a> object from hhm file, +<dd><p>Static function to Load a <a class="reference internal" href="#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal"><span class="pre">PsipredPrediction</span></code></a> object from hhm file, as they are provided by the hhsearch suite</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Name of file</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Name of file</td> </tr> </tbody> </table> @@ -1637,13 +1650,13 @@ as they are provided by the hhsearch suite</p> <dl class="method"> <dt id="promod3.loop.PsipredPrediction.FromHoriz"> <code class="descname">FromHoriz</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.PsipredPrediction.FromHoriz" title="Permalink to this definition">¶</a></dt> -<dd><p>Static function to Load a <a class="reference internal" href="#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal notranslate"><span class="pre">PsipredPrediction</span></code></a> object from horiz file, +<dd><p>Static function to Load a <a class="reference internal" href="#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal"><span class="pre">PsipredPrediction</span></code></a> object from horiz file, as they are produced by the psipred executable</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Name of file</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Name of file</td> </tr> </tbody> </table> @@ -1658,12 +1671,12 @@ as they are produced by the psipred executable</p> <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>prediction</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Prediction, must be one in [‘H’,’E’,’C’]</li> -<li><strong>confidence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Confidence of prediction, must be in [0,9]</li> +<li><strong>prediction</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Prediction, must be one in [‘H’,’E’,’C’]</li> +<li><strong>confidence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Confidence of prediction, must be in [0,9]</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if input contains invalid elements</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if input contains invalid elements</p> </td> </tr> </tbody> @@ -1673,22 +1686,22 @@ as they are produced by the psipred executable</p> <dl class="method"> <dt id="promod3.loop.PsipredPrediction.Extract"> <code class="descname">Extract</code><span class="sig-paren">(</span><em>from</em>, <em>to</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.PsipredPrediction.Extract" title="Permalink to this definition">¶</a></dt> -<dd><p>Extracts content and returns a sub-<a class="reference internal" href="#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal notranslate"><span class="pre">PsipredPrediction</span></code></a> with range <strong>from</strong> +<dd><p>Extracts content and returns a sub-<a class="reference internal" href="#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal"><span class="pre">PsipredPrediction</span></code></a> with range <strong>from</strong> to <strong>to</strong>, not including <strong>to</strong> itself</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>from</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx to start</li> -<li><strong>to</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx to end</li> +<li><strong>from</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx to start</li> +<li><strong>to</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx to end</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.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal notranslate"><span class="pre">PsipredPrediction</span></code></a> with the specified range</p> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal"><span class="pre">PsipredPrediction</span></code></a> with the specified range</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <strong>from</strong> or <strong>to</strong> are invalid</p> +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <strong>from</strong> or <strong>to</strong> are invalid</p> </td> </tr> </tbody> @@ -1702,11 +1715,11 @@ to <strong>to</strong>, not including <strong>to</strong> itself</p> <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> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index to get prediction from</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index to get prediction from</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Psipred prediction at pos <strong>idx</strong></td> </tr> -<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <strong>idx</strong> is invalid</td> +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <strong>idx</strong> is invalid</td> </tr> </tbody> </table> @@ -1719,11 +1732,11 @@ to <strong>to</strong>, not including <strong>to</strong> itself</p> <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> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index to get confidence from</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index to get confidence from</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Psipred confidence at pos <strong>idx</strong></td> </tr> -<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <strong>idx</strong> is invalid</td> +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <strong>idx</strong> is invalid</td> </tr> </tbody> </table> @@ -1737,7 +1750,7 @@ to <strong>to</strong>, not including <strong>to</strong> itself</p> <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 external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> containing all the predictions in the container</td> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> containing all the predictions in the container</td> </tr> </tbody> </table> @@ -1751,7 +1764,7 @@ to <strong>to</strong>, not including <strong>to</strong> itself</p> <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 external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> containing all the confidences in the container</td> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> containing all the confidences in the container</td> </tr> </tbody> </table> @@ -1782,45 +1795,23 @@ to <strong>to</strong>, not including <strong>to</strong> itself</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Structural Data</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-structure-database">The Structure 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> +<li><a class="reference internal" href="#the-psipredprediction-class">The PsipredPrediction class</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Handling</a><ul> <li>Previous: <a href="torsion_sampler.html" title="previous chapter">Sampling Dihedral Angles</a></li> <li>Next: <a href="all_atom.html" title="next chapter">Handling All Atom Positions</a></li> </ul></li> @@ -1828,26 +1819,23 @@ to <strong>to</strong>, not including <strong>to</strong> itself</p> </ul></li> </ul> </div> + <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> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -1856,11 +1844,11 @@ to <strong>to</strong>, not including <strong>to</strong> itself</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/loop/structure_db.rst.txt" + <a href="../_sources/loop/structure_db.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/loop/torsion_sampler.html b/doc/html/loop/torsion_sampler.html index d5798378f1acb589850ce3f91e9980bdddfac24c..10f3569c2434bd06e32cb854097f826418fbf733 100644 --- a/doc/html/loop/torsion_sampler.html +++ b/doc/html/loop/torsion_sampler.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Sampling Dihedral Angles — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="loop - Loop Handling" href="index.html" /> <link rel="next" title="Structural Data" href="structure_db.html" /> <link rel="prev" title="Representing Loops" href="backbone.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -49,8 +62,8 @@ most methods which need to access a specific distribution can either take 3 residue names or an index as input.</p> <p>As a showcase example, we randomly sample from a given torsion sample and store the resulting samples as a scatter plot:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">loop</span> -<span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">conop</span> +<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">loop</span> +<span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">conop</span> <span class="c1"># this requires matplotlib and numpy</span> <span class="kn">import</span> <span class="nn">matplotlib</span> <span class="c1"># change next line, if you wish to use a GUI-based plot-output</span> @@ -90,10 +103,10 @@ store the resulting samples as a scatter plot:</p> <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 consecutive -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 +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 list of group definitions is iterated for every combination of three consecutive amino acids and the first hit is decisive.</p> @@ -109,14 +122,14 @@ decisive.</p> <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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – List of group definitions defining amino acid triplets</li> -<li><strong>bins_per_dimension</strong> – Number of bins to represent the 360 degrees of each +<li><strong>group_definitions</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – List of group definitions defining amino acid triplets</li> +<li><strong>bins_per_dimension</strong> – Number of bins to represent the 360 degrees of each torsion angle</li> -<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Seed for random number generator</li> +<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Seed for random number generator</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 notranslate"><span class="pre">RuntimeException</span></code> when there is a +<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">RuntimeException</span></code> when there is a possible combination of the 20 standard amino acids not matching any of the group definitions.</p> </td> @@ -131,7 +144,7 @@ acids not matching any of the group definitions.</p> <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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.EntityView</span></code></a>) – structure from which parameters will be extracted</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>view</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityView</span></code></a>) – structure from which parameters will be extracted</td> </tr> </tbody> </table> @@ -148,26 +161,26 @@ acids not matching any of the group definitions.</p> <em class="property">static </em><code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em>, <em>seed</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler.Load" title="Permalink to this definition">¶</a></dt> <dt id="promod3.loop.TorsionSampler.LoadPortable"> <em class="property">static </em><code class="descname">LoadPortable</code><span class="sig-paren">(</span><em>filename</em>, <em>seed</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler.LoadPortable" title="Permalink to this definition">¶</a></dt> -<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.loop.TorsionSampler.Save" title="promod3.loop.TorsionSampler.Save"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Save()</span></code></a> (optimized for fast -reading) / portable file generated with <a class="reference internal" href="#promod3.loop.TorsionSampler.SavePortable" title="promod3.loop.TorsionSampler.SavePortable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SavePortable()</span></code></a> (slower but +<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.loop.TorsionSampler.Save" title="promod3.loop.TorsionSampler.Save"><code class="xref py py-meth docutils literal"><span class="pre">Save()</span></code></a> (optimized for fast +reading) / portable file generated with <a class="reference internal" href="#promod3.loop.TorsionSampler.SavePortable" title="promod3.loop.TorsionSampler.SavePortable"><code class="xref py py-meth docutils literal"><span class="pre">SavePortable()</span></code></a> (slower but less machine-dependent).</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file from which to load the sampler.</li> -<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Seed for random number generator (not saved in file).</li> +<li><strong>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file from which to load the sampler.</li> +<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Seed for random number generator (not saved in file).</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">A torsion sampler</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><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></p> </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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened or if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened or if file cannot be parsed (see <a class="reference internal" href="../portableIO.html#portableio"><span class="std std-ref">here</span></a> for details).</p> </td> </tr> @@ -187,9 +200,9 @@ for details.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file where the sampler will be saved</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file where the sampler 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> </tr> </tbody> </table> @@ -203,9 +216,9 @@ for details.</p> <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://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue before <em>central</em></li> -<li><strong>central</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue for the central residue</li> -<li><strong>after</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue after <em>central</em></li> +<li><strong>before</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue before <em>central</em></li> +<li><strong>central</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue for the central residue</li> +<li><strong>after</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue after <em>central</em></li> </ul> </td> </tr> @@ -223,13 +236,13 @@ for details.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Sequence of length n from which histogram indices +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <strong>sequence</strong> contains non +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <strong>sequence</strong> contains non standard amino acid</td> </tr> </tbody> @@ -245,9 +258,9 @@ standard amino acid</td> <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://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue before <em>central</em></li> -<li><strong>central</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue for which torsion angles will be drawn</li> -<li><strong>after</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue after <em>central</em></li> +<li><strong>before</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue before <em>central</em></li> +<li><strong>central</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue for which torsion angles will be drawn</li> +<li><strong>after</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue after <em>central</em></li> </ul> </td> </tr> @@ -266,7 +279,7 @@ standard amino acid</td> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The index of the distribution from which a phi/psi pair will be drawn.</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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> @@ -283,10 +296,10 @@ standard amino acid</td> <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://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue before <em>central</em></li> -<li><strong>central</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue for which the <em>phi</em> will be drawn</li> -<li><strong>after</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue after <em>central</em></li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – <em>psi</em> angle</li> +<li><strong>before</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue before <em>central</em></li> +<li><strong>central</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue for which the <em>phi</em> will be drawn</li> +<li><strong>after</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue after <em>central</em></li> +<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – <em>psi</em> angle</li> </ul> </td> </tr> @@ -306,8 +319,8 @@ standard amino acid</td> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – 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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – <em>psi</em> angle</li> +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – <em>psi</em> angle</li> </ul> </td> </tr> @@ -327,10 +340,10 @@ standard amino acid</td> <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://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue before <em>central</em></li> -<li><strong>central</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue for which the <em>psi</em> angle will be drawn</li> -<li><strong>after</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue after <em>central</em></li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – <em>phi</em> angle</li> +<li><strong>before</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue before <em>central</em></li> +<li><strong>central</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue for which the <em>psi</em> angle will be drawn</li> +<li><strong>after</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue after <em>central</em></li> +<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – <em>phi</em> angle</li> </ul> </td> </tr> @@ -350,8 +363,8 @@ standard amino acid</td> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – 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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – <em>phi</em> angle</li> +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – <em>phi</em> angle</li> </ul> </td> </tr> @@ -371,11 +384,11 @@ standard amino acid</td> <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://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue before <em>central</em></li> -<li><strong>central</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue for which the probability is calculated.</li> -<li><strong>after</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue after <em>central</em></li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – phi angle</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – psi angle</li> +<li><strong>before</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue before <em>central</em></li> +<li><strong>central</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue for which the probability is calculated.</li> +<li><strong>after</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue after <em>central</em></li> +<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – phi angle</li> +<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – psi angle</li> </ul> </td> </tr> @@ -395,9 +408,9 @@ standard amino acid</td> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The index of the distribution.</li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – phi angle</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – psi angle</li> +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The index of the distribution.</li> +<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – phi angle</li> +<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – psi angle</li> </ul> </td> </tr> @@ -417,11 +430,11 @@ standard amino acid</td> <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://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue before <em>central</em></li> -<li><strong>central</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue for which the probability is calculated.</li> -<li><strong>after</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue after <em>central</em></li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – phi angle</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – psi angle</li> +<li><strong>before</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue before <em>central</em></li> +<li><strong>central</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue for which the probability is calculated.</li> +<li><strong>after</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue after <em>central</em></li> +<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – phi angle</li> +<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – psi angle</li> </ul> </td> </tr> @@ -441,11 +454,11 @@ standard amino acid</td> <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://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue before <em>central</em></li> -<li><strong>central</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue for which the probability is calculated.</li> -<li><strong>after</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue after <em>central</em></li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – phi angle</li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – psi angle</li> +<li><strong>before</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue before <em>central</em></li> +<li><strong>central</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue for which the probability is calculated.</li> +<li><strong>after</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – id of the residue after <em>central</em></li> +<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – phi angle</li> +<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – psi angle</li> </ul> </td> </tr> @@ -465,9 +478,9 @@ standard amino acid</td> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The index of the distribution.</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – phi angle</li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – psi angle</li> +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The index of the distribution.</li> +<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – phi angle</li> +<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – psi angle</li> </ul> </td> </tr> @@ -487,9 +500,9 @@ standard amino acid</td> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The index of the distribution.</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – phi angle</li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – psi angle</li> +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The index of the distribution.</li> +<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – phi angle</li> +<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – psi angle</li> </ul> </td> </tr> @@ -508,7 +521,7 @@ standard amino acid</td> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -522,7 +535,7 @@ standard amino acid</td> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -540,45 +553,20 @@ standard amino acid</td> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Sampling Dihedral Angles</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> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Handling</a><ul> <li>Previous: <a href="backbone.html" title="previous chapter">Representing Loops</a></li> <li>Next: <a href="structure_db.html" title="next chapter">Structural Data</a></li> </ul></li> @@ -586,26 +574,23 @@ standard amino acid</td> </ul></li> </ul> </div> + <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> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -614,11 +599,11 @@ standard amino acid</td> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/loop/torsion_sampler.rst.txt" + <a href="../_sources/loop/torsion_sampler.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/algorithms.html b/doc/html/modelling/algorithms.html index a9e06a856ac887ca2a0e4574cc21ec033a2dd9ac..325c8ad97e78afb0754753f0b79be1c45c687022 100644 --- a/doc/html/modelling/algorithms.html +++ b/doc/html/modelling/algorithms.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Modelling Algorithms — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="modelling - Protein Modelling" href="index.html" /> <link rel="next" title="sidechain - Sidechain Modelling" href="../sidechain/index.html" /> <link rel="prev" title="Sidechain Reconstruction" href="sidechain_reconstruction.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -66,28 +79,28 @@ common rigid subsets of positions.</p> <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_one</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.BackboneList</span></code></a>) – First piece structural information from which CA +<li><strong>bb_list_one</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.BackboneList</span></code></a>) – First piece structural information from which CA positions will be extracted</li> -<li><strong>bb_list_two</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.BackboneList</span></code></a>) – Second piece of structural information from which CA +<li><strong>bb_list_two</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.BackboneList</span></code></a>) – Second piece of structural information from which CA positions will be extracted</li> -<li><strong>window_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Length of sliding window to generate initial subsets</li> -<li><strong>max_iterations</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Maximal numbers of iterations for every single +<li><strong>window_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Length of sliding window to generate initial subsets</li> +<li><strong>max_iterations</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Maximal numbers of iterations for every single iterative superposition</li> -<li><strong>distance_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Maximal distance two CA positions can have to be +<li><strong>distance_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Maximal distance two CA positions can have to be considered in the same rigid block and to select the common subset for the next iteration of the iterative superposition</li> -<li><strong>cluster_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Threshold of similarity to perform the final merging +<li><strong>cluster_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Threshold of similarity to perform the final merging of the solutions</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/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> with the first element being a -<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> defining the +<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/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> with the first element being a +<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> defining the indices of the common subsets (rigid blocks) relative -to the input <a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.BackboneList</span></code></a> objects -and the second element being a <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of -<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Mat4</span></code></a> defining the transformations to +to the input <a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.BackboneList</span></code></a> objects +and the second element being a <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of +<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a> defining the transformations to superpose the according positions in <strong>bb_list_one</strong> onto <strong>bb_list_two</strong></p> </td> @@ -105,30 +118,30 @@ onto <strong>bb_list_two</strong></p> <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>aln</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.AlignmentHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.AlignmentHandle</span></code></a>) – An alignment with attached <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.EntityView</span></code></a> +<li><strong>aln</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.AlignmentHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.AlignmentHandle</span></code></a>) – An alignment with attached <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityView</span></code></a> objects from which the positions are extracted</li> -<li><strong>seq_idx_one</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The idx of the first sequence from which the CA +<li><strong>seq_idx_one</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The idx of the first sequence from which the CA positions will be extracted</li> -<li><strong>seq_idx_two</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The idx of the second sequence from which the CA +<li><strong>seq_idx_two</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The idx of the second sequence from which the CA positions will be extracted</li> -<li><strong>window_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Length of sliding window to generate initial subsets</li> -<li><strong>max_iterations</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Maximal numbers of iterations for every single +<li><strong>window_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Length of sliding window to generate initial subsets</li> +<li><strong>max_iterations</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Maximal numbers of iterations for every single iterative superposition</li> -<li><strong>distance_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Maximal distance two CA positions can have to be +<li><strong>distance_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Maximal distance two CA positions can have to be considered in the same rigid block and to select the common subset for the next iteration of the iterative superposition</li> -<li><strong>cluster_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Threshold of similarity to perform the final merging +<li><strong>cluster_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Threshold of similarity to perform the final merging of the solutions</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/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> with the first element being a -<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> defining the +<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/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> with the first element being a +<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> defining the column indices of the common subsets (rigid blocks) -relative to the input <a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.AlignmentHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.AlignmentHandle</span></code></a> -and the second element being a <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of -<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Mat4</span></code></a> defining the transformations to +relative to the input <a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.AlignmentHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.AlignmentHandle</span></code></a> +and the second element being a <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of +<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a> defining the transformations to superpose the according positions from the first sequence onto the second sequence.</p> </td> @@ -146,26 +159,26 @@ sequence onto the second sequence.</p> <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>pos_one</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3List</span></code>) – First piece position information</li> -<li><strong>pos_two</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3List</span></code>) – Second piece of position information</li> -<li><strong>window_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Length of sliding window to generate initial subsets</li> -<li><strong>max_iterations</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Maximal numbers of iterations for every single +<li><strong>pos_one</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3List</span></code>) – First piece position information</li> +<li><strong>pos_two</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3List</span></code>) – Second piece of position information</li> +<li><strong>window_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Length of sliding window to generate initial subsets</li> +<li><strong>max_iterations</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Maximal numbers of iterations for every single iterative superposition</li> -<li><strong>distance_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Maximal distance two CA positions can have to be +<li><strong>distance_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Maximal distance two CA positions can have to be considered in the same rigid block and to select the common subset for the next iteration of the iterative superposition</li> -<li><strong>cluster_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Threshold of similarity to perform the final merging +<li><strong>cluster_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Threshold of similarity to perform the final merging of the solutions</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/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> with the first element being a -<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> defining the +<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/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> with the first element being a +<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> defining the indices of the common subsets (rigid blocks) relative -to the input <code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3List</span></code> objects -and the second element being a <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of -<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Mat4</span></code></a> defining the transformations to +to the input <code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3List</span></code> objects +and the second element being a <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of +<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a> defining the transformations to superpose the according positions in <strong>pos_one</strong> onto <strong>pos_two</strong></p> </td> @@ -184,7 +197,7 @@ example pipeline.</p> <dl class="class"> <dt id="promod3.modelling.FraggerHandle"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">FraggerHandle</code><span class="sig-paren">(</span><em>sequence</em>, <em>profile=None</em>, <em>psipred_pred=None</em>, <em>fragment_length=9</em>, <em>fragments_per_position=100</em>, <em>rmsd_thresh=0.0</em>, <em>structure_db=None</em>, <em>torsion_sampler_coil=None</em>, <em>torsion_sampler_helix=None</em>, <em>torsion_sampler_extended=None</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.FraggerHandle" title="Permalink to this definition">¶</a></dt> -<dd><p>Handler for <a class="reference internal" href="../loop/structure_db.html#promod3.loop.Fragger" title="promod3.loop.Fragger"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fragger</span></code></a> objects linked to a +<dd><p>Handler for <a class="reference internal" href="../loop/structure_db.html#promod3.loop.Fragger" title="promod3.loop.Fragger"><code class="xref py py-class docutils literal"><span class="pre">Fragger</span></code></a> objects linked to a specific chain.</p> <p>Tries to get the most accurate fragments given your input. You can only provide a SEQRES, the returned fragments are @@ -216,7 +229,7 @@ providing a secondary structure prediction and / or sequence profile.</p> </ul> </li> </ul> -<p>The FraggerHandle internally uses the <a class="reference internal" href="../loop/structure_db.html#promod3.loop.FraggerMap" title="promod3.loop.FraggerMap"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.FraggerMap</span></code></a> for caching. You +<p>The FraggerHandle internally uses the <a class="reference internal" href="../loop/structure_db.html#promod3.loop.FraggerMap" title="promod3.loop.FraggerMap"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.FraggerMap</span></code></a> for caching. You can therefore request fragments for a certain position several times and the search is performed only once. This also allows to save the FraggerHandle to disk. When loading the FraggerHandle again, you need to provide all parameters @@ -228,18 +241,18 @@ Weird things are happening otherwise.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>/<a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.SequenceHandle</span></code></a>) – SEQRES for this chain</li> -<li><strong>profile</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – Sequence profile for this chain.</li> -<li><strong>psipred_pred</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.PsipredPrediction</span></code></a>) – Psipred prediction for this chain.</li> -<li><strong>fragment_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Length (num. residues) of fragments to be extracted.</li> -<li><strong>fragments_per_position</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of fragments to be extracted at each +<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>/<a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.SequenceHandle</span></code></a>) – SEQRES for this chain</li> +<li><strong>profile</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – Sequence profile for this chain.</li> +<li><strong>psipred_pred</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.PsipredPrediction</span></code></a>) – Psipred prediction for this chain.</li> +<li><strong>fragment_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Length (num. residues) of fragments to be extracted.</li> +<li><strong>fragments_per_position</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of fragments to be extracted at each position.</li> -<li><strong>rmsd_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – To guarantee structural diversity, no pair of fragments +<li><strong>rmsd_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – To guarantee structural diversity, no pair of fragments at a given position will have RMSD below <cite>rmsd_thresh</cite>.</li> -<li><strong>structure_db</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.StructureDB</span></code></a>) – Source of structural data</li> -<li><strong>torsion_sampler_coil</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.TorsionSampler</span></code></a>) – Torsion sampler for coil residues.</li> -<li><strong>torsion_sampler_helix</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.TorsionSampler</span></code></a>) – Torsion sampler for helical residues.</li> -<li><strong>torsion_sampler_extended</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.TorsionSampler</span></code></a>) – Torsion sampler for extended residues.</li> +<li><strong>structure_db</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.StructureDB</span></code></a>) – Source of structural data</li> +<li><strong>torsion_sampler_coil</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.TorsionSampler</span></code></a>) – Torsion sampler for coil residues.</li> +<li><strong>torsion_sampler_helix</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.TorsionSampler</span></code></a>) – Torsion sampler for helical residues.</li> +<li><strong>torsion_sampler_extended</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.TorsionSampler</span></code></a>) – Torsion sampler for extended residues.</li> </ul> </td> </tr> @@ -253,11 +266,11 @@ at a given position will have RMSD below <cite>rmsd_thresh</cite>.</li> <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>frag_pos</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Start-index (note that sequence-indexing starts at 0)</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>frag_pos</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Start-index (note that sequence-indexing starts at 0)</td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">A <code class="xref py py-class docutils literal notranslate"><span class="pre">Fragger</span></code> object.</td> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">A <code class="xref py py-class docutils literal"><span class="pre">Fragger</span></code> object.</td> </tr> -<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code> if index out-of-bounds.</td> +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">ValueError</span></code> if index out-of-bounds.</td> </tr> </tbody> </table> @@ -273,15 +286,15 @@ at a given position will have RMSD below <cite>rmsd_thresh</cite>.</li> <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>pos_start</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Start-index (note that sequence-indexing starts at 0)</li> -<li><strong>pos_end</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – End-index or -1 if it should go to the sequence-end.</li> +<li><strong>pos_start</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Start-index (note that sequence-indexing starts at 0)</li> +<li><strong>pos_end</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – End-index or -1 if it should go to the sequence-end.</li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">A <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <code class="xref py py-class docutils literal notranslate"><span class="pre">Fragger</span></code> objects.</p> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">A <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <code class="xref py py-class docutils literal"><span class="pre">Fragger</span></code> objects.</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-exc docutils literal notranslate"><span class="pre">ValueError</span></code> if indices out-of-bounds.</p> +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">ValueError</span></code> if indices out-of-bounds.</p> </td> </tr> </tbody> @@ -291,7 +304,7 @@ at a given position will have RMSD below <cite>rmsd_thresh</cite>.</li> <dl class="method"> <dt id="promod3.modelling.FraggerHandle.LoadCached"> <code class="descname">LoadCached</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.FraggerHandle.LoadCached" title="Permalink to this definition">¶</a></dt> -<dd><p>Load fragger objects stored with <a class="reference internal" href="#promod3.modelling.FraggerHandle.SaveCached" title="promod3.modelling.FraggerHandle.SaveCached"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SaveCached()</span></code></a>. +<dd><p>Load fragger objects stored with <a class="reference internal" href="#promod3.modelling.FraggerHandle.SaveCached" title="promod3.modelling.FraggerHandle.SaveCached"><code class="xref py py-meth docutils literal"><span class="pre">SaveCached()</span></code></a>. Note that here we require that the same structure db is set as was used when <cite>filename</cite> was saved.</p> </dd></dl> @@ -315,36 +328,36 @@ de novo procedures.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – The sequence you want to sample</li> -<li><strong>num_trajectories</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The number of sampling trajectories you +<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – The sequence you want to sample</li> +<li><strong>num_trajectories</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The number of sampling trajectories you want to generate</li> -<li><strong>avg_sampling_per_position</strong> – Number of Monte Carlo sampling steps +<li><strong>avg_sampling_per_position</strong> – Number of Monte Carlo sampling steps the total number is: len(<strong>sequence</strong>) * <strong>avg_sampling_per_position</strong></li> -<li><strong>profile</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – The sequence profile for <strong>sequence</strong>. This increases the +<li><strong>profile</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – The sequence profile for <strong>sequence</strong>. This increases the fragment search performance.</li> -<li><strong>psipred_prediction</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.PsipredPrediction</span></code></a>) – The psipred prediction for <strong>sequence</strong>. This +<li><strong>psipred_prediction</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.PsipredPrediction</span></code></a>) – The psipred prediction for <strong>sequence</strong>. This increases the fragment search performance</li> -<li><strong>fragment_handler</strong> (<a class="reference internal" href="#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.modelling.FraggerHandle</span></code></a>) – You can provide already initialized fragments. +<li><strong>fragment_handler</strong> (<a class="reference internal" href="#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal"><span class="pre">promod3.modelling.FraggerHandle</span></code></a>) – You can provide already initialized fragments. If you pass this parameter, <strong>profile</strong> and <strong>psipred_prediction</strong> get neglected and do not influence the fragment search, the ones you initialized <strong>fragment_handler</strong> with get used instead.</li> -<li><strong>scorer</strong> (<a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer" title="promod3.scoring.BackboneOverallScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.scoring.BackboneOverallScorer</span></code></a>) – Scorer doing the backbone scoring. If not provided, a +<li><strong>scorer</strong> (<a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer" title="promod3.scoring.BackboneOverallScorer"><code class="xref py py-class docutils literal"><span class="pre">promod3.scoring.BackboneOverallScorer</span></code></a>) – Scorer doing the backbone scoring. If not provided, a default one gets loaded with default objects with following keys: clash, reduced, cb_packing, hbond, cbeta, torsion and pairwise</li> -<li><strong>scorer_env</strong> (<a class="reference internal" href="../scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.scoring.BackboneScoreEnv</span></code></a>) – The scoring env that relates to <strong>scorer</strong> +<li><strong>scorer_env</strong> (<a class="reference internal" href="../scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">promod3.scoring.BackboneScoreEnv</span></code></a>) – The scoring env that relates to <strong>scorer</strong> This environment will be changed!</li> -<li><strong>scoring_weights</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a>) – Linear weights for different scores. If not provided, +<li><strong>scoring_weights</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">dict</span></code></a>) – Linear weights for different scores. If not provided, the output of ScoringWeights.GetWeights() is used. Please note, that the weights must be consistent with the keys of the scores in <strong>scorer</strong></li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A <code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.LoopCandidates</span></code> object containing +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A <code class="xref py py-class docutils literal"><span class="pre">promod3.loop.LoopCandidates</span></code> object containing <strong>num_trajectories</strong> elements for further processing</p> </td> </tr> @@ -368,7 +381,7 @@ v2 = norm(cross(v1,v3)))). For each coordinate not in [p1,p2,p3], we add the identity of the query/triangle as value to a hash map. The corresponding key consists of discretized values describing the edge lengths of the triangle, as well as the coordinate transformed into the triangle -specific orthogonal vector basis. That’s 6 numbers in total.</p> +specific orthogonal vector basis. That’s 6 numbers in total.</p> <p>Detection Stage: The goal is to identify one or several subsets of target coordinates that resemble an input query. We first setup an accumulator containing a counter for each triangle observed @@ -404,14 +417,14 @@ query coordinates is larger or equal <em>refine_thresh</em>. The larger the mapping, the more accurate the superposition. As we start with only the three triangle vertices, <em>distance_thresh</em> is doubled for the initial iteration.</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Example script that loads protein structures that contain ATP and</span> +<div class="highlight-default"><div class="highlight"><pre><span></span><span class="c1"># Example script that loads protein structures that contain ATP and</span> <span class="c1"># generates motif queries describing their binding pockets.</span> <span class="c1"># In a second step, those pockets are matched against a protein </span> <span class="c1"># structure that only contains an ATP analog. The ATP from every </span> <span class="c1"># match is transformed and stored to disk for further processing.</span> -<span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">io</span><span class="p">,</span> <span class="n">geom</span><span class="p">,</span> <span class="n">mol</span> -<span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">modelling</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">geom</span><span class="p">,</span> <span class="n">mol</span> +<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">modelling</span> <span class="n">files</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'data/1E2Q.pdb'</span><span class="p">,</span> <span class="s1">'data/1KO5.pdb'</span><span class="p">,</span> <span class="s1">'data/2IYW.pdb'</span><span class="p">]</span> @@ -480,22 +493,22 @@ several queries, so they can be searched at once.</p> <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>positions</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3List</span></code>) – Coordinates of the query</li> -<li><strong>identifier</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Descriptor of the query</li> -<li><strong>min_triangle_edge_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – To avoid the full O(n^3) hell, triangles +<li><strong>positions</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3List</span></code>) – Coordinates of the query</li> +<li><strong>identifier</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Descriptor of the query</li> +<li><strong>min_triangle_edge_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – To avoid the full O(n^3) hell, triangles with any edge length below <em>min_triangle_edge_length</em> are skipped</li> -<li><strong>max_triangle_edge_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Same as <em>min_triangle_edge_length</em> but +<li><strong>max_triangle_edge_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Same as <em>min_triangle_edge_length</em> but upper bound</li> -<li><strong>bin_size</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Bin size in A, relevant to generate hash map keys</li> -<li><strong>flags</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Flag in range [0,63] for every coordinate in <em>positions</em>. -They’re also added to the hash map keys (default: 0). +<li><strong>bin_size</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Bin size in A, relevant to generate hash map keys</li> +<li><strong>flags</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Flag in range [0,63] for every coordinate in <em>positions</em>. +They’re also added to the hash map keys (default: 0). This means that additionally to having a matching relative position, the coordinates must also have a matching flag in the detection/refinement stage. If not provided (in the query and in the search), only coordinates matter.</li> -<li><strong>query_list</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.modelling.MotifQuery" title="promod3.modelling.MotifQuery"><code class="xref py py-class docutils literal notranslate"><span class="pre">MotifQuery</span></code></a>) – E pluribus unum</li> +<li><strong>query_list</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.modelling.MotifQuery" title="promod3.modelling.MotifQuery"><code class="xref py py-class docutils literal"><span class="pre">MotifQuery</span></code></a>) – E pluribus unum</li> </ul> </td> </tr> @@ -509,7 +522,7 @@ only coordinates matter.</li> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – filename</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – filename</td> </tr> </tbody> </table> @@ -523,7 +536,7 @@ only coordinates matter.</li> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – filename</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – filename</td> </tr> </tbody> </table> @@ -537,7 +550,7 @@ only coordinates matter.</li> <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>query_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Query from which you want the positions</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>query_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Query from which you want the positions</td> </tr> </tbody> </table> @@ -560,7 +573,7 @@ only coordinates matter.</li> <dl class="class"> <dt id="promod3.modelling.MotifMatch"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">MotifMatch</code><a class="headerlink" href="#promod3.modelling.MotifMatch" title="Permalink to this definition">¶</a></dt> -<dd><p>Object that holds information about a match found in <a class="reference internal" href="#promod3.modelling.FindMotifs" title="promod3.modelling.FindMotifs"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FindMotifs()</span></code></a></p> +<dd><p>Object that holds information about a match found in <a class="reference internal" href="#promod3.modelling.FindMotifs" title="promod3.modelling.FindMotifs"><code class="xref py py-meth docutils literal"><span class="pre">FindMotifs()</span></code></a></p> <dl class="attribute"> <dt id="promod3.modelling.MotifMatch.query_idx"> <code class="descname">query_idx</code><a class="headerlink" href="#promod3.modelling.MotifMatch.query_idx" title="Permalink to this definition">¶</a></dt> @@ -591,13 +604,13 @@ algorithm.</p> <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>query</strong> – Query to be searched</li> -<li><strong>target_positions</strong> – Coordinates of the target</li> -<li><strong>hash_thresh</strong> – Parameter relevant for detection stage</li> -<li><strong>distance_thresh</strong> – Parameter relevant for refinement stage</li> -<li><strong>refine_thresh</strong> – Parameter relevant for refinement stage</li> -<li><strong>flags</strong> – Equivalent to <em>flags</em> in <a class="reference internal" href="#promod3.modelling.MotifQuery" title="promod3.modelling.MotifQuery"><code class="xref py py-class docutils literal notranslate"><span class="pre">MotifQuery</span></code></a> -constructor. If you didn’t provide anything there, +<li><strong>query</strong> – Query to be searched</li> +<li><strong>target_positions</strong> – Coordinates of the target</li> +<li><strong>hash_thresh</strong> – Parameter relevant for detection stage</li> +<li><strong>distance_thresh</strong> – Parameter relevant for refinement stage</li> +<li><strong>refine_thresh</strong> – Parameter relevant for refinement stage</li> +<li><strong>flags</strong> – Equivalent to <em>flags</em> in <a class="reference internal" href="#promod3.modelling.MotifQuery" title="promod3.modelling.MotifQuery"><code class="xref py py-class docutils literal"><span class="pre">MotifQuery</span></code></a> +constructor. If you didn’t provide anything there, this can be ignored. Only the actual coordinates matter in this case.</li> </ul> @@ -606,7 +619,7 @@ matter in this case.</li> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">All found matches</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 external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.modelling.MotifMatch" title="promod3.modelling.MotifMatch"><code class="xref py py-class docutils literal notranslate"><span class="pre">MotifMatch</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.modelling.MotifMatch" title="promod3.modelling.MotifMatch"><code class="xref py py-class docutils literal"><span class="pre">MotifMatch</span></code></a></p> </td> </tr> </tbody> @@ -623,72 +636,45 @@ matter in this case.</li> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Modelling Algorithms</a><ul> +<li><a class="reference internal" href="#rigid-blocks">Rigid Blocks</a></li> +<li><a class="reference internal" href="#de-novo-modelling">De Novo Modelling</a></li> +<li><a class="reference internal" href="#motif-finder">Motif Finder</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> <li>Previous: <a href="sidechain_reconstruction.html" title="previous chapter">Sidechain Reconstruction</a></li> - <li>Next: <a href="../sidechain/index.html" title="next chapter"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> + <li>Next: <a href="../sidechain/index.html" title="next chapter"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> </ul></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/modelling/algorithms.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -697,11 +683,11 @@ matter in this case.</li> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/modelling/algorithms.rst.txt" + <a href="../_sources/modelling/algorithms.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/gap_handling.html b/doc/html/modelling/gap_handling.html index a4e852feba21a38e6a861e7e95841969a1d77c0d..ea282aa48fc8a6cb13b16a999ad42fbf8abd0f51 100644 --- a/doc/html/modelling/gap_handling.html +++ b/doc/html/modelling/gap_handling.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Handling Gaps — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="modelling - Protein Modelling" href="index.html" /> <link rel="next" title="Handling Loop Candidates" href="loop_candidates.html" /> <link rel="prev" title="Model Checking" href="model_checking.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -53,13 +66,13 @@ invalid residue handles to <cite>before</cite> or <cite>after</cite>.</p> <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://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Fills <a class="reference internal" href="#promod3.modelling.StructuralGap.before" title="promod3.modelling.StructuralGap.before"><code class="xref py py-attr docutils literal notranslate"><span class="pre">before</span></code></a></li> -<li><strong>after</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Fills <a class="reference internal" href="#promod3.modelling.StructuralGap.after" title="promod3.modelling.StructuralGap.after"><code class="xref py py-attr docutils literal notranslate"><span class="pre">after</span></code></a></li> -<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Fills <a class="reference internal" href="#promod3.modelling.StructuralGap.seq" title="promod3.modelling.StructuralGap.seq"><code class="xref py py-attr docutils literal notranslate"><span class="pre">seq</span></code></a></li> +<li><strong>before</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Fills <a class="reference internal" href="#promod3.modelling.StructuralGap.before" title="promod3.modelling.StructuralGap.before"><code class="xref py py-attr docutils literal"><span class="pre">before</span></code></a></li> +<li><strong>after</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Fills <a class="reference internal" href="#promod3.modelling.StructuralGap.after" title="promod3.modelling.StructuralGap.after"><code class="xref py py-attr docutils literal"><span class="pre">after</span></code></a></li> +<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Fills <a class="reference internal" href="#promod3.modelling.StructuralGap.seq" title="promod3.modelling.StructuralGap.seq"><code class="xref py py-attr docutils literal"><span class="pre">seq</span></code></a></li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first">A <a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#RuntimeError" title="(in Python v3.6)"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> if both residues are invalid or when both +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first">A <a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#RuntimeError" title="(in Python v3.6)"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code></a> if both residues are invalid or when both are valid and:</p> <ul class="last simple"> <li>residues are from different chains (if both valid)</li> @@ -79,7 +92,7 @@ are valid and:</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Index of chain, the gap is belonging to</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -94,7 +107,7 @@ are valid and:</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Name of chain, the gap is belonging to</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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a></td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></td> </tr> </tbody> </table> @@ -109,7 +122,7 @@ are valid and:</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Chain, the gap is belonging to</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ChainHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ChainHandle</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ChainHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ChainHandle</span></code></a></td> </tr> </tbody> </table> @@ -122,10 +135,10 @@ are valid and:</p> <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">True, iff gap is N-terminal (i.e. <a class="reference internal" href="#promod3.modelling.StructuralGap.before" title="promod3.modelling.StructuralGap.before"><code class="xref py py-attr docutils literal notranslate"><span class="pre">before</span></code></a> is invalid -and <a class="reference internal" href="#promod3.modelling.StructuralGap.after" title="promod3.modelling.StructuralGap.after"><code class="xref py py-attr docutils literal notranslate"><span class="pre">after</span></code></a> is valid)</td> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, iff gap is N-terminal (i.e. <a class="reference internal" href="#promod3.modelling.StructuralGap.before" title="promod3.modelling.StructuralGap.before"><code class="xref py py-attr docutils literal"><span class="pre">before</span></code></a> is invalid +and <a class="reference internal" href="#promod3.modelling.StructuralGap.after" title="promod3.modelling.StructuralGap.after"><code class="xref py py-attr docutils literal"><span class="pre">after</span></code></a> is valid)</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -138,10 +151,10 @@ and <a class="reference internal" href="#promod3.modelling.StructuralGap.after" <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">True, iff gap is C-terminal (i.e. <a class="reference internal" href="#promod3.modelling.StructuralGap.before" title="promod3.modelling.StructuralGap.before"><code class="xref py py-attr docutils literal notranslate"><span class="pre">before</span></code></a> is valid -and <a class="reference internal" href="#promod3.modelling.StructuralGap.after" title="promod3.modelling.StructuralGap.after"><code class="xref py py-attr docutils literal notranslate"><span class="pre">after</span></code></a> is invalid)</td> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, iff gap is C-terminal (i.e. <a class="reference internal" href="#promod3.modelling.StructuralGap.before" title="promod3.modelling.StructuralGap.before"><code class="xref py py-attr docutils literal"><span class="pre">before</span></code></a> is valid +and <a class="reference internal" href="#promod3.modelling.StructuralGap.after" title="promod3.modelling.StructuralGap.after"><code class="xref py py-attr docutils literal"><span class="pre">after</span></code></a> is invalid)</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -156,7 +169,7 @@ and <a class="reference internal" href="#promod3.modelling.StructuralGap.after" <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, iff gap is N- or C-terminal</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -166,14 +179,14 @@ and <a class="reference internal" href="#promod3.modelling.StructuralGap.after" <dt id="promod3.modelling.StructuralGap.ShiftCTerminal"> <code class="descname">ShiftCTerminal</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.StructuralGap.ShiftCTerminal" title="Permalink to this definition">¶</a></dt> <dd><p>Try to shift gap by one position towards C-terminal. Only possible if new -gap is not terminal and it doesn’t try to shift the gap past another gap.</p> +gap is not terminal and it doesn’t try to shift the gap past another gap.</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">True, iff shift succeeded (gap is only updated in that case)</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -183,7 +196,7 @@ gap is not terminal and it doesn’t try to shift the gap past another gap.</p> <dt id="promod3.modelling.StructuralGap.ExtendAtNTerm"> <code class="descname">ExtendAtNTerm</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.StructuralGap.ExtendAtNTerm" title="Permalink to this definition">¶</a></dt> <dd><p>Try to extend gap at N-terminal end of gap. -Only possible if the gap is not at N-terminal and it doesn’t try to +Only possible if the gap is not at N-terminal and it doesn’t try to extend the gap past another gap.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> @@ -191,7 +204,7 @@ extend the gap past another gap.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, iff extend succeeded (gap is only updated in that case)</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -201,7 +214,7 @@ extend the gap past another gap.</p> <dt id="promod3.modelling.StructuralGap.ExtendAtCTerm"> <code class="descname">ExtendAtCTerm</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.StructuralGap.ExtendAtCTerm" title="Permalink to this definition">¶</a></dt> <dd><p>Try to extend gap at C-terminal end of gap. -Only possible if the gap is not at C-terminal and it doesn’t try to +Only possible if the gap is not at C-terminal and it doesn’t try to extend the gap past another gap.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> @@ -209,7 +222,7 @@ extend the gap past another gap.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, iff extend succeeded (gap is only updated in that case)</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -224,7 +237,7 @@ extend the gap past another gap.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Length of the gap.</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -239,7 +252,7 @@ extend the gap past another gap.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Copy of the gap.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructuralGap</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal"><span class="pre">StructuralGap</span></code></a></td> </tr> </tbody> </table> @@ -248,25 +261,25 @@ extend the gap past another gap.</p> <dl class="attribute"> <dt id="promod3.modelling.StructuralGap.length"> <code class="descname">length</code><a class="headerlink" href="#promod3.modelling.StructuralGap.length" title="Permalink to this definition">¶</a></dt> -<dd><p>Alias for <a class="reference internal" href="#promod3.modelling.StructuralGap.GetLength" title="promod3.modelling.StructuralGap.GetLength"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetLength()</span></code></a> (read-only, <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>)</p> +<dd><p>Alias for <a class="reference internal" href="#promod3.modelling.StructuralGap.GetLength" title="promod3.modelling.StructuralGap.GetLength"><code class="xref py py-meth docutils literal"><span class="pre">GetLength()</span></code></a> (read-only, <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>)</p> </dd></dl> <dl class="attribute"> <dt id="promod3.modelling.StructuralGap.seq"> <code class="descname">seq</code><a class="headerlink" href="#promod3.modelling.StructuralGap.seq" title="Permalink to this definition">¶</a></dt> -<dd><p>Sequence string for the gap (read-only, <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>)</p> +<dd><p>Sequence string for the gap (read-only, <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>)</p> </dd></dl> <dl class="attribute"> <dt id="promod3.modelling.StructuralGap.before"> <code class="descname">before</code><a class="headerlink" href="#promod3.modelling.StructuralGap.before" title="Permalink to this definition">¶</a></dt> -<dd><p>Residue before the gap (read-only, <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>)</p> +<dd><p>Residue before the gap (read-only, <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>)</p> </dd></dl> <dl class="attribute"> <dt id="promod3.modelling.StructuralGap.after"> <code class="descname">after</code><a class="headerlink" href="#promod3.modelling.StructuralGap.after" title="Permalink to this definition">¶</a></dt> -<dd><p>Residue after the gap (read-only, <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>)</p> +<dd><p>Residue after the gap (read-only, <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>)</p> </dd></dl> <dl class="attribute"> @@ -280,20 +293,20 @@ extend the gap past another gap.</p> <dl class="class"> <dt id="promod3.modelling.StructuralGapList"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">StructuralGapList</code><a class="headerlink" href="#promod3.modelling.StructuralGapList" title="Permalink to this definition">¶</a></dt> -<dd><p>Represents a <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructuralGap</span></code></a>.</p> +<dd><p>Represents a <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal"><span class="pre">StructuralGap</span></code></a>.</p> </dd></dl> </div> <div class="section" id="gap-extender-classes"> <h2>Gap Extender classes<a class="headerlink" href="#gap-extender-classes" title="Permalink to this headline">¶</a></h2> -<p>The extender classes work on a given <a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructuralGap</span></code></a> and provide an +<p>The extender classes work on a given <a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal"><span class="pre">StructuralGap</span></code></a> and provide an Extend() function to propose new gaps for loop modelling. The function returns False if no new extension possible.</p> <dl class="class"> <dt id="promod3.modelling.GapExtender"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">GapExtender</code><span class="sig-paren">(</span><em>gap</em>, <em>seqres</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.GapExtender" title="Permalink to this definition">¶</a></dt> <dd><p>The extender cycles through the following steps:</p> -<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> - +<div class="highlight-none"><div class="highlight"><pre><span></span> - -- -- --- @@ -310,8 +323,8 @@ False if no new extension possible.</p> <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>gap</strong> (<a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructuralGap</span></code></a>) – The gap which will be extended by <a class="reference internal" href="#promod3.modelling.GapExtender.Extend" title="promod3.modelling.GapExtender.Extend"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Extend()</span></code></a>.</li> -<li><strong>seqres</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.SequenceHandle</span></code></a>) – The full sequence of the chain, the gap is associated with.</li> +<li><strong>gap</strong> (<a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal"><span class="pre">StructuralGap</span></code></a>) – The gap which will be extended by <a class="reference internal" href="#promod3.modelling.GapExtender.Extend" title="promod3.modelling.GapExtender.Extend"><code class="xref py py-meth docutils literal"><span class="pre">Extend()</span></code></a>.</li> +<li><strong>seqres</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.SequenceHandle</span></code></a>) – The full sequence of the chain, the gap is associated with.</li> </ul> </td> </tr> @@ -334,7 +347,7 @@ Otherwise, the <em>gap</em> passed to the constructor is changed. The gaps are extended with ascending length and will always have valid termini.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -351,12 +364,12 @@ valid termini.</td> <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>gap</strong> (<a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructuralGap</span></code></a>) – The gap which will be extended by <a class="reference internal" href="#promod3.modelling.FullGapExtender.Extend" title="promod3.modelling.FullGapExtender.Extend"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Extend()</span></code></a>.</li> -<li><strong>seqres</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.SequenceHandle</span></code></a>) – The full sequence of the chain, the gap is associated with.</li> -<li><strong>max_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – <ul> +<li><strong>gap</strong> (<a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal"><span class="pre">StructuralGap</span></code></a>) – The gap which will be extended by <a class="reference internal" href="#promod3.modelling.FullGapExtender.Extend" title="promod3.modelling.FullGapExtender.Extend"><code class="xref py py-meth docutils literal"><span class="pre">Extend()</span></code></a>.</li> +<li><strong>seqres</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.SequenceHandle</span></code></a>) – The full sequence of the chain, the gap is associated with.</li> +<li><strong>max_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – <ul> <li>If -1, all possible non-terminal gaps are returned.</li> <li>If >= 0, this restricts the max. gap-length -(w/o termini) producable by <a class="reference internal" href="#promod3.modelling.FullGapExtender.Extend" title="promod3.modelling.FullGapExtender.Extend"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Extend()</span></code></a>.</li> +(w/o termini) producable by <a class="reference internal" href="#promod3.modelling.FullGapExtender.Extend" title="promod3.modelling.FullGapExtender.Extend"><code class="xref py py-meth docutils literal"><span class="pre">Extend()</span></code></a>.</li> </ul> </li> </ul> @@ -380,7 +393,7 @@ Otherwise, the <em>gap</em> passed to the constructor is changed. The gaps are extended with ascending length and will always have valid termini.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -392,7 +405,7 @@ valid termini.</td> <dt id="promod3.modelling.ScoringGapExtender"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">ScoringGapExtender</code><span class="sig-paren">(</span><em>gap</em>, <em>extension_penalty</em>, <em>penalties</em>, <em>seqres</em>, <em>max_length=-2</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.ScoringGapExtender" title="Permalink to this definition">¶</a></dt> <dd><p>The extender scores possible gap extensions and returns them in order of -their score when <a class="reference internal" href="#promod3.modelling.ScoringGapExtender.Extend" title="promod3.modelling.ScoringGapExtender.Extend"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Extend()</span></code></a> is called. +their score when <a class="reference internal" href="#promod3.modelling.ScoringGapExtender.Extend" title="promod3.modelling.ScoringGapExtender.Extend"><code class="xref py py-meth docutils literal"><span class="pre">Extend()</span></code></a> is called. The score is penalized according to length and according to certain (well conserved) regions in the structure as defined by <em>penalties</em>. score = num_gap_extensions * <cite>extension_penalty</cite> + sum( <cite>penalties</cite> [i] ) @@ -402,16 +415,16 @@ score = num_gap_extensions * <cite>extension_penalty</cite> + sum( <cite>penalti <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>gap</strong> (<a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructuralGap</span></code></a>) – The gap which will be extended by <a class="reference internal" href="#promod3.modelling.ScoringGapExtender.Extend" title="promod3.modelling.ScoringGapExtender.Extend"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Extend()</span></code></a>.</li> -<li><strong>extension_penalty</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Penalty for length of gap.</li> -<li><strong>penalties</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Penalty for each residue added to gap.</li> -<li><strong>seqres</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.SequenceHandle</span></code></a>) – The full sequence of the chain, the gap is associated with.</li> -<li><strong>max_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – <ul> -<li>If -2, <a class="reference internal" href="#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">GapExtender</span></code></a> is used instead of <a class="reference internal" href="#promod3.modelling.FullGapExtender" title="promod3.modelling.FullGapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">FullGapExtender</span></code></a> +<li><strong>gap</strong> (<a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal"><span class="pre">StructuralGap</span></code></a>) – The gap which will be extended by <a class="reference internal" href="#promod3.modelling.ScoringGapExtender.Extend" title="promod3.modelling.ScoringGapExtender.Extend"><code class="xref py py-meth docutils literal"><span class="pre">Extend()</span></code></a>.</li> +<li><strong>extension_penalty</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Penalty for length of gap.</li> +<li><strong>penalties</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Penalty for each residue added to gap.</li> +<li><strong>seqres</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.SequenceHandle</span></code></a>) – The full sequence of the chain, the gap is associated with.</li> +<li><strong>max_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – <ul> +<li>If -2, <a class="reference internal" href="#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal"><span class="pre">GapExtender</span></code></a> is used instead of <a class="reference internal" href="#promod3.modelling.FullGapExtender" title="promod3.modelling.FullGapExtender"><code class="xref py py-class docutils literal"><span class="pre">FullGapExtender</span></code></a> (i.e. it stops at gaps and termini).</li> <li>If -1, all possible non-terminal gaps are returned.</li> <li>If >= 0, this restricts the max. gap-length (w/o termini) -producable by <a class="reference internal" href="#promod3.modelling.ScoringGapExtender.Extend" title="promod3.modelling.ScoringGapExtender.Extend"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Extend()</span></code></a>.</li> +producable by <a class="reference internal" href="#promod3.modelling.ScoringGapExtender.Extend" title="promod3.modelling.ScoringGapExtender.Extend"><code class="xref py py-meth docutils literal"><span class="pre">Extend()</span></code></a>.</li> </ul> </li> </ul> @@ -434,7 +447,7 @@ producable by <a class="reference internal" href="#promod3.modelling.ScoringGapE Otherwise, <em>gap</em> is changed and returned in ascending score. The updated <em>gap</em> will always have valid termini.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -445,7 +458,7 @@ The updated <em>gap</em> will always have valid termini.</td> <dl class="class"> <dt id="promod3.modelling.ShiftExtension"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">ShiftExtension</code><span class="sig-paren">(</span><em>n_num</em>, <em>c_num</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.ShiftExtension" title="Permalink to this definition">¶</a></dt> -<dd><p>Implements the underlying extension scheme of the <a class="reference internal" href="#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">GapExtender</span></code></a>. +<dd><p>Implements the underlying extension scheme of the <a class="reference internal" href="#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal"><span class="pre">GapExtender</span></code></a>. It is not associated to any structural data, it just spits out the residue numbers according to the extension scheme described above.</p> <table class="docutils field-list" frame="void" rules="none"> @@ -453,8 +466,8 @@ residue numbers according to the extension scheme described above.</p> <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_num</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – N residue number to start with</li> -<li><strong>c_num</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – C residue number to start with</li> +<li><strong>n_num</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – N residue number to start with</li> +<li><strong>c_num</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – C residue number to start with</li> </ul> </td> </tr> @@ -469,7 +482,7 @@ residue numbers according to the extension scheme described above.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The next residue numbers for n_stem and c_stem</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/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a></td> +<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/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a></td> </tr> </tbody> </table> @@ -492,15 +505,15 @@ This is either all gaps or only insertions.</p> <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>mhandle</strong> (<a class="reference internal" href="pipeline.html#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> -<li><strong>gap</strong> (<a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructuralGap</span></code></a>) – Gap defining range in which gaps are to be removed.</li> +<li><strong>mhandle</strong> (<a class="reference internal" href="pipeline.html#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> +<li><strong>gap</strong> (<a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal"><span class="pre">StructuralGap</span></code></a>) – Gap defining range in which gaps are to be removed.</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Number of gaps.</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 external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </td> </tr> </tbody> @@ -516,8 +529,8 @@ This is either all gaps or only insertions.</p> <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>mhandle</strong> (<a class="reference internal" href="pipeline.html#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> -<li><strong>gap</strong> (<a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructuralGap</span></code></a>) – Gap defining range in which gaps are to be removed.</li> +<li><strong>mhandle</strong> (<a class="reference internal" href="pipeline.html#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> +<li><strong>gap</strong> (<a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal"><span class="pre">StructuralGap</span></code></a>) – Gap defining range in which gaps are to be removed.</li> </ul> </td> </tr> @@ -525,10 +538,10 @@ This is either all gaps or only insertions.</p> Returns -1 if last gap was removed or no gaps in <em>mhandle</em>.</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last">A <a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#RuntimeError" title="(in Python v3.6)"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> if any gap in mhandle.gaps is only partially +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last">A <a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#RuntimeError" title="(in Python v3.6)"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code></a> if any gap in mhandle.gaps is only partially enclosed by given gap.</p> </td> </tr> @@ -540,16 +553,16 @@ enclosed by given gap.</p> <dt id="promod3.modelling.InsertLoopClearGaps"> <code class="descclassname">promod3.modelling.</code><code class="descname">InsertLoopClearGaps</code><span class="sig-paren">(</span><em>mhandle</em>, <em>bb_list</em>, <em>gap</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.InsertLoopClearGaps" title="Permalink to this definition">¶</a></dt> <dd><p>Insert loop into model, update scoring environments and remove all gaps from -<em>mhandle</em> which are fully enclosed by given <em>gap</em> (see <a class="reference internal" href="pipeline.html#promod3.modelling.InsertLoop" title="promod3.modelling.InsertLoop"><code class="xref py py-meth docutils literal notranslate"><span class="pre">InsertLoop()</span></code></a> and -<a class="reference internal" href="#promod3.modelling.ClearGaps" title="promod3.modelling.ClearGaps"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ClearGaps()</span></code></a>).</p> +<em>mhandle</em> which are fully enclosed by given <em>gap</em> (see <a class="reference internal" href="pipeline.html#promod3.modelling.InsertLoop" title="promod3.modelling.InsertLoop"><code class="xref py py-meth docutils literal"><span class="pre">InsertLoop()</span></code></a> and +<a class="reference internal" href="#promod3.modelling.ClearGaps" title="promod3.modelling.ClearGaps"><code class="xref py py-meth docutils literal"><span class="pre">ClearGaps()</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>mhandle</strong> (<a class="reference internal" href="pipeline.html#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> -<li><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Loop to insert (backbone only).</li> -<li><strong>gap</strong> (<a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructuralGap</span></code></a>) – Gap defining range of loop to insert (must be consistent!).</li> +<li><strong>mhandle</strong> (<a class="reference internal" href="pipeline.html#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> +<li><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Loop to insert (backbone only).</li> +<li><strong>gap</strong> (<a class="reference internal" href="#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal"><span class="pre">StructuralGap</span></code></a>) – Gap defining range of loop to insert (must be consistent!).</li> </ul> </td> </tr> @@ -557,10 +570,10 @@ enclosed by given gap.</p> Returns -1 if last gap was removed or no gaps in <em>mhandle</em>.</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last">A <a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#RuntimeError" title="(in Python v3.6)"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> if <em>bb_list</em> and <em>gap</em> are inconsistent or +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last">A <a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#RuntimeError" title="(in Python v3.6)"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code></a> if <em>bb_list</em> and <em>gap</em> are inconsistent or if any gap in mhandle.gaps is only partially enclosed by <em>gap</em>.</p> </td> </tr> @@ -579,12 +592,12 @@ to the new <cite>mhandle.gaps[index]</cite>.</p> <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>mhandle</strong> (<a class="reference internal" href="pipeline.html#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> -<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of gap to merge with next one.</li> +<li><strong>mhandle</strong> (<a class="reference internal" href="pipeline.html#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of gap to merge with next one.</li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last">A <a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#RuntimeError" title="(in Python v3.6)"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> if indices out of range or if trying to merge +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last">A <a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#RuntimeError" title="(in Python v3.6)"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code></a> if indices out of range or if trying to merge gaps of different chains or an N-terminal gap with a C-terminal gap.</p> </td> </tr> @@ -602,45 +615,21 @@ gaps of different chains or an N-terminal gap with a C-terminal gap.</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Handling Gaps</a><ul> +<li><a class="reference internal" href="#gap-classes">Gap classes</a></li> +<li><a class="reference internal" href="#gap-extender-classes">Gap Extender classes</a></li> +<li><a class="reference internal" href="#gap-handling-functions">Gap Handling Functions</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> <li>Previous: <a href="model_checking.html" title="previous chapter">Model Checking</a></li> <li>Next: <a href="loop_candidates.html" title="next chapter">Handling Loop Candidates</a></li> </ul></li> @@ -648,26 +637,23 @@ gaps of different chains or an N-terminal gap with a C-terminal gap.</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/modelling/gap_handling.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -676,11 +662,11 @@ gaps of different chains or an N-terminal gap with a C-terminal gap.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/modelling/gap_handling.rst.txt" + <a href="../_sources/modelling/gap_handling.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/index.html b/doc/html/modelling/index.html index 001bebb26f1f395089e0a59225ef85eb719502cd..e4abbbb34bba9e7e7cd26d5fb06700be81c43a27 100644 --- a/doc/html/modelling/index.html +++ b/doc/html/modelling/index.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>modelling - Protein Modelling — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="Documentation For Users" href="../users.html" /> <link rel="next" title="Modelling Pipeline" href="pipeline.html" /> <link rel="prev" title="Singularity" href="../container/singularity.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -35,7 +48,7 @@ <div class="body" role="main"> <div class="section" id="module-promod3.modelling"> -<span id="modelling-protein-modelling"></span><h1><a class="reference internal" href="#module-promod3.modelling" title="promod3.modelling: Protein Modelling"><code class="xref py py-mod docutils literal notranslate"><span class="pre">modelling</span></code></a> - Protein Modelling<a class="headerlink" href="#module-promod3.modelling" title="Permalink to this headline">¶</a></h1> +<span id="modelling-protein-modelling"></span><h1><a class="reference internal" href="#module-promod3.modelling" title="promod3.modelling: Protein Modelling"><code class="xref py py-mod docutils literal"><span class="pre">modelling</span></code></a> - Protein Modelling<a class="headerlink" href="#module-promod3.modelling" title="Permalink to this headline">¶</a></h1> <p>High-level functionality for protein modelling. The goal is to model a given target sequence (or list of sequences for oligomers) given some template data. Commonly, the template does not cover the full target. This module offers @@ -43,8 +56,8 @@ capabilities to extract useful template data for the target and to fill the remaining structural data to create a full model of the target. In its simplest form, you can use a target-template alignment and a template structure to create a model fully automatically as follows:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">io</span> -<span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">modelling</span> +<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">io</span> +<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">modelling</span> <span class="c1"># get raw model</span> <span class="n">tpl</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="s1">'data/1crn_cut.pdb'</span><span class="p">)</span> @@ -119,41 +132,7 @@ a model fully automatically as follows:</p> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> @@ -164,26 +143,23 @@ a model fully automatically as follows:</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/modelling/index.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -192,11 +168,11 @@ a model fully automatically as follows:</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/modelling/index.rst.txt" + <a href="../_sources/modelling/index.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/loop_candidates.html b/doc/html/modelling/loop_candidates.html index b8582fa79027330f10532c5a8a5e8bdb5fb18f9e..588b25acc2afa21f28834126cc58c4755d72eff0 100644 --- a/doc/html/modelling/loop_candidates.html +++ b/doc/html/modelling/loop_candidates.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Handling Loop Candidates — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="modelling - Protein Modelling" href="index.html" /> <link rel="next" title="Fitting Loops Into Gaps" href="loop_closing.html" /> <link rel="prev" title="Handling Gaps" href="gap_handling.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -36,14 +49,14 @@ <div class="section" id="handling-loop-candidates"> <h1>Handling Loop Candidates<a class="headerlink" href="#handling-loop-candidates" title="Permalink to this headline">¶</a></h1> -<p>For convenience, we provide the <a class="reference internal" href="#promod3.modelling.LoopCandidates" title="promod3.modelling.LoopCandidates"><code class="xref py py-class docutils literal notranslate"><span class="pre">LoopCandidates</span></code></a> class as a container of +<p>For convenience, we provide the <a class="reference internal" href="#promod3.modelling.LoopCandidates" title="promod3.modelling.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a> class as a container of loop candidates with consistent length and sequence among them. It can either be filled manually or generated using static filling functions using the -functionality from the <a class="reference internal" href="../loop/structure_db.html#promod3.loop.FragDB" title="promod3.loop.FragDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">FragDB</span></code></a> or Monte Carlo algorithms. +functionality from the <a class="reference internal" href="../loop/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> or Monte Carlo algorithms. Once it contains candidates you can apply closing, scoring or clustering algorithms on all loop candidates. Example:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">io</span> -<span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">loop</span><span class="p">,</span> <span class="n">scoring</span><span class="p">,</span> <span class="n">modelling</span> +<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">io</span> +<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">loop</span><span class="p">,</span> <span class="n">scoring</span><span class="p">,</span> <span class="n">modelling</span> <span class="c1"># let's load a crambin structure from the pdb</span> <span class="n">crambin</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="s1">'data/1CRN.pdb'</span><span class="p">)</span> @@ -103,13 +116,13 @@ algorithms on all loop candidates. Example:</p> <dt id="promod3.modelling.LoopCandidates"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">LoopCandidates</code><span class="sig-paren">(</span><em>seq</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.LoopCandidates" title="Permalink to this definition">¶</a></dt> <dd><p>Initializes an empty container of loop candidates.</p> -<p>Candidates can be accessed and iterated as if it was a <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of -<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>.</p> +<p>Candidates can be accessed and iterated as if it was a <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of +<a class="reference internal" href="../loop/backbone.html#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>seq</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – The sequence being enforced for all candidates</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – The sequence being enforced for all candidates</td> </tr> </tbody> </table> @@ -119,19 +132,19 @@ algorithms on all loop candidates. Example:</p> <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> -<p>This call also adds fragment infos (<a class="reference internal" href="#promod3.modelling.LoopCandidates.HasFragmentInfos" title="promod3.modelling.LoopCandidates.HasFragmentInfos"><code class="xref py py-meth docutils literal notranslate"><span class="pre">HasFragmentInfos()</span></code></a> will be True).</p> +<p>This call also adds fragment infos (<a class="reference internal" href="#promod3.modelling.LoopCandidates.HasFragmentInfos" title="promod3.modelling.LoopCandidates.HasFragmentInfos"><code class="xref py py-meth docutils literal"><span class="pre">HasFragmentInfos()</span></code></a> will be True).</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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – The residue at the N-terminal end of the loop</li> -<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – The residue at the C-terminal end of the loop</li> -<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – The sequence of residues to be added including the +<li><strong>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – The residue at the N-terminal end of the loop</li> +<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – The residue at the C-terminal end of the loop</li> +<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – The sequence of residues to be added including the <em>n_stem</em> and <em>c_stem</em></li> -<li><strong>frag_db</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.FragDB" title="promod3.loop.FragDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">FragDB</span></code></a>) – The fragment database</li> -<li><strong>structural_db</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a>) – The according structural database</li> -<li><strong>extended_search</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether search should be extended to fragments +<li><strong>frag_db</strong> (<a class="reference internal" href="../loop/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>) – The fragment database</li> +<li><strong>structural_db</strong> (<a class="reference internal" href="../loop/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>) – The according structural database</li> +<li><strong>extended_search</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether 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> @@ -140,10 +153,10 @@ a bit less precisely.</li> <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"><a class="reference internal" href="#promod3.modelling.LoopCandidates" title="promod3.modelling.LoopCandidates"><code class="xref py py-class docutils literal notranslate"><span class="pre">LoopCandidates</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.modelling.LoopCandidates" title="promod3.modelling.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a></p> </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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if stems do no contain N, CA and C +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if stems do no contain N, CA and C atoms.</p> </td> </tr> @@ -160,10 +173,10 @@ atoms.</p> If <em>initial_bb</em> is given, every Monte Carlo run starts from that configuration.</p> <div class="admonition warning"> <p class="first admonition-title">Warning</p> -<p class="last">The <a class="reference internal" href="../scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a> +<p class="last">The <a class="reference internal" href="../scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a> attached to <em>scorer</em> will be altered in the specified stretch. You might consider the Stash / Pop mechanism of the -<a class="reference internal" href="../scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a> to restore to the +<a class="reference internal" href="../scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a> to restore to the original state once the sampling is done.</p> </div> <table class="docutils field-list" frame="void" rules="none"> @@ -171,16 +184,16 @@ original state once the sampling is done.</p> <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>initial_bb</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Initial configuration used for the sampling</li> -<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – The sequence of residues to be sampled</li> -<li><strong>num_loops</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of loop candidates to return</li> -<li><strong>steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of MC steps to perform for each loop candidate +<li><strong>initial_bb</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Initial configuration used for the sampling</li> +<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – The sequence of residues to be sampled</li> +<li><strong>num_loops</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of loop candidates to return</li> +<li><strong>steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of MC steps to perform for each loop candidate generated</li> -<li><strong>sampler</strong> (<a class="reference internal" href="monte_carlo.html#mc-sampler-object"><span class="std std-ref">Sampler Object</span></a>) – Used to generate a new configuration at each MC step</li> -<li><strong>closer</strong> (<a class="reference internal" href="monte_carlo.html#mc-closer-object"><span class="std std-ref">Closer Object</span></a>) – Used to close the loop after each MC step</li> -<li><strong>scorer</strong> (<a class="reference internal" href="monte_carlo.html#mc-scorer-object"><span class="std std-ref">Scorer Object</span></a>) – Used to score the generated configurations at each MC step</li> -<li><strong>cooler</strong> (<a class="reference internal" href="monte_carlo.html#mc-cooler-object"><span class="std std-ref">Cooler Object</span></a>) – Controls the temperature profile of the simulated annealing</li> -<li><strong>random_seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Seed to feed the random number generator for +<li><strong>sampler</strong> (<a class="reference internal" href="monte_carlo.html#mc-sampler-object"><span class="std std-ref">Sampler Object</span></a>) – Used to generate a new configuration at each MC step</li> +<li><strong>closer</strong> (<a class="reference internal" href="monte_carlo.html#mc-closer-object"><span class="std std-ref">Closer Object</span></a>) – Used to close the loop after each MC step</li> +<li><strong>scorer</strong> (<a class="reference internal" href="monte_carlo.html#mc-scorer-object"><span class="std std-ref">Scorer Object</span></a>) – Used to score the generated configurations at each MC step</li> +<li><strong>cooler</strong> (<a class="reference internal" href="monte_carlo.html#mc-cooler-object"><span class="std std-ref">Cooler Object</span></a>) – Controls the temperature profile of the simulated annealing</li> +<li><strong>random_seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Seed to feed the random number generator for accepting/rejecting proposed monte carlo steps. For every monte carlo run, the random number generator gets refreshed and this seed gets increased by 1.</li> @@ -190,10 +203,10 @@ gets refreshed and this seed gets increased by 1.</li> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The resulting candidates</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.modelling.LoopCandidates" title="promod3.modelling.LoopCandidates"><code class="xref py py-class docutils literal notranslate"><span class="pre">LoopCandidates</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.modelling.LoopCandidates" title="promod3.modelling.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a></p> </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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code>, if <em>initial_bb</em> is not given and +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code>, if <em>initial_bb</em> is not given and the Monte Carlo sampler failed to initialize (i.e. stems are too far apart) or if <em>initial_bb</em> is given and it is inconsistent with <em>seq</em>.</p> @@ -212,7 +225,7 @@ far apart) or if <em>initial_bb</em> is given and it is inconsistent with <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The 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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a></td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></td> </tr> </tbody> </table> @@ -227,7 +240,7 @@ far apart) or if <em>initial_bb</em> is given and it is inconsistent with <code class="descname">ApplyCCD</code><span class="sig-paren">(</span><em>n_stem</em>, <em>c_stem</em>, <em>torsion_samplers</em>, <em>max_iterations=1000</em>, <em>rmsd_cutoff=0.1</em>, <em>keep_non_converged=false</em>, <em>random_seed=0</em><span class="sig-paren">)</span></dt> <dd><p>Closes all loop candidates in this container using the CCD algorithm (i.e. modifies the candidates so that its stem residues match those of <em>n_stem</em> -and <em>c_stem</em>). CCD (cyclic coordinate descent, see <a class="reference internal" href="loop_closing.html#promod3.modelling.CCD" title="promod3.modelling.CCD"><code class="xref py py-class docutils literal notranslate"><span class="pre">CCD</span></code></a>) is an +and <em>c_stem</em>). CCD (cyclic coordinate descent, see <a class="reference internal" href="loop_closing.html#promod3.modelling.CCD" title="promod3.modelling.CCD"><code class="xref py py-class docutils literal"><span class="pre">CCD</span></code></a>) is an iterative minimization algorithm.</p> <p>If <em>torsion_sampler</em> is given, it is used at each step of the closing to calculate the probability of the proposed move, which is then accepted or @@ -237,19 +250,19 @@ not depending on a metropolis criterium.</p> <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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue defining the n-stem positions every candidate -should match. See <a class="reference internal" href="loop_closing.html#promod3.modelling.CCD.CCD" title="promod3.modelling.CCD.CCD"><code class="xref py py-meth docutils literal notranslate"><span class="pre">CCD()</span></code></a>.</li> -<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue defining the c-stem positions every candidate -should match. See <a class="reference internal" href="loop_closing.html#promod3.modelling.CCD.CCD" title="promod3.modelling.CCD.CCD"><code class="xref py py-meth docutils literal notranslate"><span class="pre">CCD()</span></code></a>.</li> -<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> -of <a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a>) – A torsion sampler (used for all residues) or a list +<li><strong>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue defining the n-stem positions every candidate +should match. See <a class="reference internal" href="loop_closing.html#promod3.modelling.CCD.CCD" title="promod3.modelling.CCD.CCD"><code class="xref py py-meth docutils literal"><span class="pre">CCD()</span></code></a>.</li> +<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue defining the c-stem positions every candidate +should match. See <a class="reference internal" href="loop_closing.html#promod3.modelling.CCD.CCD" title="promod3.modelling.CCD.CCD"><code class="xref py py-meth docutils literal"><span class="pre">CCD()</span></code></a>.</li> +<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/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> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> +of <a class="reference internal" href="../loop/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>) – A torsion sampler (used for all residues) or a list of samplers (one per residue).</li> -<li><strong>max_iterations</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Maximum number of iterations</li> -<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Cutoff in stem residue RMSD used to determine +<li><strong>max_iterations</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Maximum number of iterations</li> +<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – 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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to keep loop candidates for which the +<li><strong>keep_non_converged</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to keep loop candidates for which the closing did not converge</li> -<li><strong>random_seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – seed for random number generator used to +<li><strong>random_seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – seed for random number generator used to accept/reject moves in CCD algorithm</li> </ul> </td> @@ -259,7 +272,7 @@ index before this function was called. This is useful to keep track of scores and other data extracted before.</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 external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </td> </tr> </tbody> @@ -281,13 +294,13 @@ candidate. This leads to an increase in number of loops.</p> <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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue defining the n-stem positions every candidate +<li><strong>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue defining the n-stem positions every candidate should match</li> -<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue defining the c-stem positions every candidate +<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue defining the c-stem positions every candidate should match</li> -<li><strong>pivot_one</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – First pivot residue</li> -<li><strong>pivot_two</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Second pivot residue</li> -<li><strong>pivot_three</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Third pivot residue</li> +<li><strong>pivot_one</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – First pivot residue</li> +<li><strong>pivot_two</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Second pivot residue</li> +<li><strong>pivot_three</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Third pivot residue</li> </ul> </td> </tr> @@ -297,7 +310,7 @@ lead to multiple or no candidates after KIC is applied). This is useful to keep track of scores and other data extracted before.</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 external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </td> </tr> </tbody> @@ -318,30 +331,30 @@ useful to keep track of scores and other data extracted before.</p> <dt> <code class="descname">CalculateAllAtomScores</code><span class="sig-paren">(</span><em>score_container</em>, <em>mhandle</em>, <em>keys</em>, <em>start_resnum</em>, <em>chain_idx=0</em><span class="sig-paren">)</span></dt> <dd><p>Calculate backbone / all-atom scores for each loop candidate. -Note that (unless otherwise noted) a lower “score” is better!</p> +Note that (unless otherwise noted) a lower “score” is better!</p> <p>The computed scores are in the same same order as the candidates in here.</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>score_container</strong> (<a class="reference internal" href="#promod3.modelling.ScoreContainer" title="promod3.modelling.ScoreContainer"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoreContainer</span></code></a>) – Add scores to this score container using the given -key names (or the ones from <a class="reference internal" href="#promod3.modelling.ScoringWeights" title="promod3.modelling.ScoringWeights"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoringWeights</span></code></a>)</li> -<li><strong>scorer</strong> (<a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer" title="promod3.scoring.BackboneOverallScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneOverallScorer</span></code></a>) – Backbone scoring object with set environment for the +<li><strong>score_container</strong> (<a class="reference internal" href="#promod3.modelling.ScoreContainer" title="promod3.modelling.ScoreContainer"><code class="xref py py-class docutils literal"><span class="pre">ScoreContainer</span></code></a>) – Add scores to this score container using the given +key names (or the ones from <a class="reference internal" href="#promod3.modelling.ScoringWeights" title="promod3.modelling.ScoringWeights"><code class="xref py py-class docutils literal"><span class="pre">ScoringWeights</span></code></a>)</li> +<li><strong>scorer</strong> (<a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer" title="promod3.scoring.BackboneOverallScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneOverallScorer</span></code></a>) – Backbone scoring object with set environment for the particular loop modelling problem.</li> -<li><strong>scorer_env</strong> (<a class="reference internal" href="../scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a>) – The scoring environment attached to <em>scorer</em></li> -<li><strong>mhandle</strong> (<a class="reference internal" href="pipeline.html#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle set up scoring (see -<a class="reference internal" href="pipeline.html#promod3.modelling.SetupDefaultBackboneScoring" title="promod3.modelling.SetupDefaultBackboneScoring"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetupDefaultBackboneScoring()</span></code></a> -<a class="reference internal" href="pipeline.html#promod3.modelling.SetupDefaultAllAtomScoring" title="promod3.modelling.SetupDefaultAllAtomScoring"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetupDefaultAllAtomScoring()</span></code></a>).</li> -<li><strong>keys</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Keys of the desired scorers. If not given, we use the set of -keys given by <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetBackboneScoringKeys" title="promod3.modelling.ScoringWeights.GetBackboneScoringKeys"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ScoringWeights.GetBackboneScoringKeys()</span></code></a> / -<a class="reference internal" href="#promod3.modelling.ScoringWeights.GetAllAtomScoringKeys" title="promod3.modelling.ScoringWeights.GetAllAtomScoringKeys"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ScoringWeights.GetAllAtomScoringKeys()</span></code></a>.</li> -<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Res. number defining the position in the SEQRES.</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of chain the loops belong to.</li> +<li><strong>scorer_env</strong> (<a class="reference internal" href="../scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a>) – The scoring environment attached to <em>scorer</em></li> +<li><strong>mhandle</strong> (<a class="reference internal" href="pipeline.html#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle set up scoring (see +<a class="reference internal" href="pipeline.html#promod3.modelling.SetupDefaultBackboneScoring" title="promod3.modelling.SetupDefaultBackboneScoring"><code class="xref py py-func docutils literal"><span class="pre">SetupDefaultBackboneScoring()</span></code></a> +<a class="reference internal" href="pipeline.html#promod3.modelling.SetupDefaultAllAtomScoring" title="promod3.modelling.SetupDefaultAllAtomScoring"><code class="xref py py-func docutils literal"><span class="pre">SetupDefaultAllAtomScoring()</span></code></a>).</li> +<li><strong>keys</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Keys of the desired scorers. If not given, we use the set of +keys given by <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetBackboneScoringKeys" title="promod3.modelling.ScoringWeights.GetBackboneScoringKeys"><code class="xref py py-meth docutils literal"><span class="pre">ScoringWeights.GetBackboneScoringKeys()</span></code></a> / +<a class="reference internal" href="#promod3.modelling.ScoringWeights.GetAllAtomScoringKeys" title="promod3.modelling.ScoringWeights.GetAllAtomScoringKeys"><code class="xref py py-meth docutils literal"><span class="pre">ScoringWeights.GetAllAtomScoringKeys()</span></code></a>.</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Res. number defining the position in the SEQRES.</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of chain the loops belong 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <a class="reference internal" href="pipeline.html#promod3.modelling.IsAllAtomScoringSetUp" title="promod3.modelling.IsAllAtomScoringSetUp"><code class="xref py py-func docutils literal notranslate"><span class="pre">IsAllAtomScoringSetUp()</span></code></a> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <a class="reference internal" href="pipeline.html#promod3.modelling.IsAllAtomScoringSetUp" title="promod3.modelling.IsAllAtomScoringSetUp"><code class="xref py py-func docutils literal"><span class="pre">IsAllAtomScoringSetUp()</span></code></a> is False, if <em>keys</em> has a key for which no scorer exists or if anything is raised when calculating the scores.</p> </td> @@ -357,12 +370,12 @@ anything is raised when calculating the scores.</p> <code class="descname">CalculateStructureProfileScores</code><span class="sig-paren">(</span><em>score_container</em>, <em>structure_db</em>, <em>prof</em>, <em>offset=0</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.LoopCandidates.CalculateStructureProfileScores" title="Permalink to this definition">¶</a></dt> <dd><p>Calculates a score comparing the given profile <em>prof</em> starting at <em>offset</em> with the sequence / structure profile of each candidate as extracted from -<em>structure_db</em> (see <a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.ProfileHandle.GetAverageScore" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.seq.ProfileHandle.GetAverageScore()</span></code></a> for +<em>structure_db</em> (see <a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.ProfileHandle.GetAverageScore" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.seq.ProfileHandle.GetAverageScore()</span></code></a> for details, <em>prof.null_model</em> is used for weighting).</p> -<p>Note that for profile scores a higher “score” is better! So take care when +<p>Note that for profile scores a higher “score” is better! So take care when combining this to other scores, where it is commonly the other way around.</p> <p>This requires that each candidate has a connected fragment info into the -given <em>structure_db</em> (e.g. <a class="reference internal" href="#promod3.modelling.LoopCandidates.FillFromDatabase" title="promod3.modelling.LoopCandidates.FillFromDatabase"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FillFromDatabase()</span></code></a> must have been called +given <em>structure_db</em> (e.g. <a class="reference internal" href="#promod3.modelling.LoopCandidates.FillFromDatabase" title="promod3.modelling.LoopCandidates.FillFromDatabase"><code class="xref py py-meth docutils literal"><span class="pre">FillFromDatabase()</span></code></a> must have been called with this DB).</p> <p>The computed scores are in the same same order as the candidates in here.</p> <table class="docutils field-list" frame="void" rules="none"> @@ -370,15 +383,15 @@ with this DB).</p> <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>score_container</strong> (<a class="reference internal" href="#promod3.modelling.ScoreContainer" title="promod3.modelling.ScoreContainer"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoreContainer</span></code></a>) – Add scores to this score container using the default -key name defined in <a class="reference internal" href="#promod3.modelling.ScoringWeights" title="promod3.modelling.ScoringWeights"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoringWeights</span></code></a></li> -<li><strong>structural_db</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a>) – Structural database used in <a class="reference internal" href="#promod3.modelling.LoopCandidates.FillFromDatabase" title="promod3.modelling.LoopCandidates.FillFromDatabase"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FillFromDatabase()</span></code></a></li> -<li><strong>prof</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – Profile information for target.</li> -<li><strong>offset</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Loop starts at index <em>offset</em> in <em>prof</em>.</li> +<li><strong>score_container</strong> (<a class="reference internal" href="#promod3.modelling.ScoreContainer" title="promod3.modelling.ScoreContainer"><code class="xref py py-class docutils literal"><span class="pre">ScoreContainer</span></code></a>) – Add scores to this score container using the default +key name defined in <a class="reference internal" href="#promod3.modelling.ScoringWeights" title="promod3.modelling.ScoringWeights"><code class="xref py py-class docutils literal"><span class="pre">ScoringWeights</span></code></a></li> +<li><strong>structural_db</strong> (<a class="reference internal" href="../loop/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>) – Structural database used in <a class="reference internal" href="#promod3.modelling.LoopCandidates.FillFromDatabase" title="promod3.modelling.LoopCandidates.FillFromDatabase"><code class="xref py py-meth docutils literal"><span class="pre">FillFromDatabase()</span></code></a></li> +<li><strong>prof</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – Profile information for target.</li> +<li><strong>offset</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Loop starts at index <em>offset</em> in <em>prof</em>.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <a class="reference internal" href="#promod3.modelling.LoopCandidates.HasFragmentInfos" title="promod3.modelling.LoopCandidates.HasFragmentInfos"><code class="xref py py-meth docutils literal notranslate"><span class="pre">HasFragmentInfos()</span></code></a> is +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <a class="reference internal" href="#promod3.modelling.LoopCandidates.HasFragmentInfos" title="promod3.modelling.LoopCandidates.HasFragmentInfos"><code class="xref py py-meth docutils literal"><span class="pre">HasFragmentInfos()</span></code></a> is False, if <em>structure_db</em> is incompatible with the stored fragment infos or if <em>prof</em> has less than <em>offset+len</em> elements (len = length of loops stored in here).</p> @@ -393,24 +406,24 @@ length of loops stored in here).</p> <code class="descname">CalculateStemRMSDs</code><span class="sig-paren">(</span><em>score_container</em>, <em>n_stem</em>, <em>c_stem</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.LoopCandidates.CalculateStemRMSDs" title="Permalink to this definition">¶</a></dt> <dd><p>Calculates RMSD between the given stems and the first and last residue of the loop candidates. This first superposes the first loop residue with -<em>n_stem</em> and then computes the RMSD between the last residue’s N, CA, C +<em>n_stem</em> and then computes the RMSD between the last residue’s N, CA, C positions and the corresponding atoms in <em>c_stem</em>.</p> -<p>Note that this score is only useful before calling <a class="reference internal" href="#promod3.modelling.LoopCandidates.ApplyCCD" title="promod3.modelling.LoopCandidates.ApplyCCD"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ApplyCCD()</span></code></a> or -<a class="reference internal" href="#promod3.modelling.LoopCandidates.ApplyKIC" title="promod3.modelling.LoopCandidates.ApplyKIC"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ApplyKIC()</span></code></a>.</p> +<p>Note that this score is only useful before calling <a class="reference internal" href="#promod3.modelling.LoopCandidates.ApplyCCD" title="promod3.modelling.LoopCandidates.ApplyCCD"><code class="xref py py-meth docutils literal"><span class="pre">ApplyCCD()</span></code></a> or +<a class="reference internal" href="#promod3.modelling.LoopCandidates.ApplyKIC" title="promod3.modelling.LoopCandidates.ApplyKIC"><code class="xref py py-meth docutils literal"><span class="pre">ApplyKIC()</span></code></a>.</p> <p>The computed scores are in the same same order as the candidates in here.</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>score_container</strong> (<a class="reference internal" href="#promod3.modelling.ScoreContainer" title="promod3.modelling.ScoreContainer"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoreContainer</span></code></a>) – Add scores to this score container using the default -key name defined in <a class="reference internal" href="#promod3.modelling.ScoringWeights" title="promod3.modelling.ScoringWeights"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoringWeights</span></code></a></li> -<li><strong>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – The residue at the N-terminal end of the loop.</li> -<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – The residue at the C-terminal end of the loop.</li> +<li><strong>score_container</strong> (<a class="reference internal" href="#promod3.modelling.ScoreContainer" title="promod3.modelling.ScoreContainer"><code class="xref py py-class docutils literal"><span class="pre">ScoreContainer</span></code></a>) – Add scores to this score container using the default +key name defined in <a class="reference internal" href="#promod3.modelling.ScoringWeights" title="promod3.modelling.ScoringWeights"><code class="xref py py-class docutils literal"><span class="pre">ScoringWeights</span></code></a></li> +<li><strong>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – The residue at the N-terminal end of the loop.</li> +<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – The residue at the C-terminal end of the loop.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if stems do no contain N, CA and C +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if stems do no contain N, CA and C atoms.</p> </td> </tr> @@ -433,7 +446,7 @@ score vector instead of storing it in a container.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Score for each candidate (same order as candidates in here).</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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -446,9 +459,9 @@ score vector instead of storing it in a container.</p> <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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – The loop candidate to be added.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – The loop candidate to be added.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if sequence of <em>bb_list</em> is not +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if sequence of <em>bb_list</em> is not consistent with internal sequence</td> </tr> </tbody> @@ -458,15 +471,15 @@ consistent with internal sequence</td> <dl class="method"> <dt id="promod3.modelling.LoopCandidates.AddFragmentInfo"> <code class="descname">AddFragmentInfo</code><span class="sig-paren">(</span><em>fragment</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.LoopCandidates.AddFragmentInfo" title="Permalink to this definition">¶</a></dt> -<dd><p>Adds a fragment info for the last candidate added with <a class="reference internal" href="#promod3.modelling.LoopCandidates.Add" title="promod3.modelling.LoopCandidates.Add"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Add()</span></code></a>. Note -that these infos are added automatically with <a class="reference internal" href="#promod3.modelling.LoopCandidates.FillFromDatabase" title="promod3.modelling.LoopCandidates.FillFromDatabase"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FillFromDatabase()</span></code></a> and +<dd><p>Adds a fragment info for the last candidate added with <a class="reference internal" href="#promod3.modelling.LoopCandidates.Add" title="promod3.modelling.LoopCandidates.Add"><code class="xref py py-meth docutils literal"><span class="pre">Add()</span></code></a>. Note +that these infos are added automatically with <a class="reference internal" href="#promod3.modelling.LoopCandidates.FillFromDatabase" title="promod3.modelling.LoopCandidates.FillFromDatabase"><code class="xref py py-meth docutils literal"><span class="pre">FillFromDatabase()</span></code></a> and updated whenever the candidates are copied, removed, clustered etc.. So you will probably never need 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"><strong>fragment</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.FragmentInfo" title="promod3.loop.FragmentInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">FragmentInfo</span></code></a>) – The fragment info to add.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>fragment</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.FragmentInfo" title="promod3.loop.FragmentInfo"><code class="xref py py-class docutils literal"><span class="pre">FragmentInfo</span></code></a>) – The fragment info to add.</td> </tr> </tbody> </table> @@ -480,9 +493,9 @@ will probably never need this function.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The index of the candidate that will be removed</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The index of the candidate that will be removed</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>index</em> is out of bounds.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>index</em> is out of bounds.</td> </tr> </tbody> </table> @@ -497,7 +510,7 @@ will probably never need this function.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, if each loop candidate has a connected fragment info.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -512,11 +525,11 @@ will probably never need this function.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Fragment info connected to loop candidate at given <em>index</em>.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="../loop/structure_db.html#promod3.loop.FragmentInfo" title="promod3.loop.FragmentInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">FragmentInfo</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="../loop/structure_db.html#promod3.loop.FragmentInfo" title="promod3.loop.FragmentInfo"><code class="xref py py-class docutils literal"><span class="pre">FragmentInfo</span></code></a></td> </tr> -<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The index of the candidate.</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The index of the candidate.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <a class="reference internal" href="#promod3.modelling.LoopCandidates.HasFragmentInfos" title="promod3.modelling.LoopCandidates.HasFragmentInfos"><code class="xref py py-meth docutils literal notranslate"><span class="pre">HasFragmentInfos()</span></code></a> is +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <a class="reference internal" href="#promod3.modelling.LoopCandidates.HasFragmentInfos" title="promod3.modelling.LoopCandidates.HasFragmentInfos"><code class="xref py py-meth docutils literal"><span class="pre">HasFragmentInfos()</span></code></a> is False or if <em>index</em> is out of bounds.</td> </tr> </tbody> @@ -532,11 +545,11 @@ False or if <em>index</em> is out of bounds.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Container with candidates with given <em>indices</em>.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.modelling.LoopCandidates" title="promod3.modelling.LoopCandidates"><code class="xref py py-class docutils literal notranslate"><span class="pre">LoopCandidates</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.modelling.LoopCandidates" title="promod3.modelling.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Candidate indices to extract.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Candidate indices to extract.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if any index is out of bounds.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if any index is out of bounds.</td> </tr> </tbody> </table> @@ -555,8 +568,8 @@ CA RMSD between any of the members of the two clusters.</p> <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_dist</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Maximal distance two clusters can have to be merged</li> -<li><strong>superposed_rmsd</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to calculate the RMSD based on a minimal +<li><strong>max_dist</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Maximal distance two clusters can have to be merged</li> +<li><strong>superposed_rmsd</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to calculate the RMSD based on a minimal RMSD superposition or simply consider the current positions</li> </ul> @@ -565,7 +578,7 @@ positions</li> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Lists of loop candidate indices into this container</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 external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </td> </tr> </tbody> @@ -579,17 +592,17 @@ positions</li> <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"><p class="first">List of loop candidates clustered as in <a class="reference internal" href="#promod3.modelling.LoopCandidates.GetClusters" title="promod3.modelling.LoopCandidates.GetClusters"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetClusters()</span></code></a>.</p> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">List of loop candidates clustered as in <a class="reference internal" href="#promod3.modelling.LoopCandidates.GetClusters" title="promod3.modelling.LoopCandidates.GetClusters"><code class="xref py py-meth docutils literal"><span class="pre">GetClusters()</span></code></a>.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.modelling.LoopCandidates" title="promod3.modelling.LoopCandidates"><code class="xref py py-class docutils literal notranslate"><span class="pre">LoopCandidates</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.modelling.LoopCandidates" title="promod3.modelling.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>max_dist</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Maximal distance two clusters can have to be merged</li> -<li><strong>neglect_size_one</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether clusters should be added to the returned +<li><strong>max_dist</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Maximal distance two clusters can have to be merged</li> +<li><strong>neglect_size_one</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether clusters should be added to the returned list if they only contain one loop candidate</li> -<li><strong>superposed_rmsd</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to calculate the RMSD based on a minimal +<li><strong>superposed_rmsd</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to calculate the RMSD based on a minimal RMSD superposition or simply consider the current positions</li> </ul> @@ -611,8 +624,8 @@ cluster.</p> <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_dist</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Maximal CA RMSD to cluster centroid</li> -<li><strong>superposed_rmsd</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to calculate the RMSD based on a minimal +<li><strong>max_dist</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Maximal CA RMSD to cluster centroid</li> +<li><strong>superposed_rmsd</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to calculate the RMSD based on a minimal RMSD superposition or simply consider the current positions</li> </ul> @@ -622,7 +635,7 @@ positions</li> CA RMSD below <strong>max_dist</strong> to cluster centroid.</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.modelling.LoopCandidates" title="promod3.modelling.LoopCandidates"><code class="xref py py-class docutils literal notranslate"><span class="pre">LoopCandidates</span></code></a></p> +<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.modelling.LoopCandidates" title="promod3.modelling.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a></p> </td> </tr> </tbody> @@ -651,7 +664,7 @@ to have the same number of values.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, if no loop candidates have been scored with any scorer yet.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -666,9 +679,9 @@ to have the same number of values.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, if a score vector for this key was already added.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Key for desired scorer.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Key for desired scorer.</td> </tr> </tbody> </table> @@ -683,11 +696,11 @@ to have the same number of values.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Score vector for the given <em>key</em>.</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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.modelling.ScoreContainer.GetNumCandidates" title="promod3.modelling.ScoreContainer.GetNumCandidates"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumCandidates()</span></code></a> <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.modelling.ScoreContainer.GetNumCandidates" title="promod3.modelling.ScoreContainer.GetNumCandidates"><code class="xref py py-meth docutils literal"><span class="pre">GetNumCandidates()</span></code></a> <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><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">Parameters:</th><td class="field-body"><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Key for desired score vector.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Key for desired score vector.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if there are no scores for that +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if there are no scores for that <em>key</em>.</td> </tr> </tbody> @@ -702,12 +715,12 @@ to have the same number of values.</p> <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>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Set scores for that <em>key</em>.</li> -<li><strong>scores</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Score vector to set.</li> +<li><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Set scores for that <em>key</em>.</li> +<li><strong>scores</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Score vector to 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if this container contains other +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if this container contains other score vectors with a different number of entries.</p> </td> </tr> @@ -725,7 +738,7 @@ score vectors with a different number of entries.</p> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Number of loop candidates that are scored here. This is the length of each score vector in this container.</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -740,12 +753,12 @@ of each score vector in this container.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Weighted, linear combination of scores.</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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.modelling.ScoreContainer.GetNumCandidates" title="promod3.modelling.ScoreContainer.GetNumCandidates"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumCandidates()</span></code></a> <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.modelling.ScoreContainer.GetNumCandidates" title="promod3.modelling.ScoreContainer.GetNumCandidates"><code class="xref py py-meth docutils literal"><span class="pre">GetNumCandidates()</span></code></a> <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><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">Parameters:</th><td class="field-body"><strong>linear_weights</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a> (keys: <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>, -values: <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>)) – Weights for each scorer.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>linear_weights</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">dict</span></code></a> (keys: <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>, +values: <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>)) – Weights for each scorer.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>linear_weights</em> has a key for +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>linear_weights</em> has a key for which no scores were added.</td> </tr> </tbody> @@ -761,7 +774,7 @@ which no scores were added.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Full copy of this container.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.modelling.ScoreContainer" title="promod3.modelling.ScoreContainer"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoreContainer</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.modelling.ScoreContainer" title="promod3.modelling.ScoreContainer"><code class="xref py py-class docutils literal"><span class="pre">ScoreContainer</span></code></a></td> </tr> </tbody> </table> @@ -776,12 +789,12 @@ which no scores were added.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Container with scores for a subset of loop candidates.</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.modelling.ScoreContainer" title="promod3.modelling.ScoreContainer"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoreContainer</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.modelling.ScoreContainer" title="promod3.modelling.ScoreContainer"><code class="xref py py-class docutils literal"><span class="pre">ScoreContainer</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – List of loop candidate indices to pick -(in [0, <a class="reference internal" href="#promod3.modelling.ScoreContainer.GetNumCandidates" title="promod3.modelling.ScoreContainer.GetNumCandidates"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetNumCandidates()</span></code></a>-1])</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – List of loop candidate indices to pick +(in [0, <a class="reference internal" href="#promod3.modelling.ScoreContainer.GetNumCandidates" title="promod3.modelling.ScoreContainer.GetNumCandidates"><code class="xref py py-meth docutils literal"><span class="pre">GetNumCandidates()</span></code></a>-1])</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if any index is out of bounds.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if any index is out of bounds.</td> </tr> </tbody> </table> @@ -796,7 +809,7 @@ matching keys).</p> <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.modelling.ScoreContainer" title="promod3.modelling.ScoreContainer"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoreContainer</span></code></a>) – Score container to be added to this one.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>other</strong> (<a class="reference internal" href="#promod3.modelling.ScoreContainer" title="promod3.modelling.ScoreContainer"><code class="xref py py-class docutils literal"><span class="pre">ScoreContainer</span></code></a>) – Score container to be added to this one.</td> </tr> </tbody> </table> @@ -809,7 +822,7 @@ matching keys).</p> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">ScoringWeights</code><a class="headerlink" href="#promod3.modelling.ScoringWeights" title="Permalink to this definition">¶</a></dt> <dd><p>Globally accessible set of weights to be used in scoring. This also defines a consistent naming of keys used for backbone and all atom scorers as set up -by <a class="reference internal" href="pipeline.html#promod3.modelling.SetupDefaultBackboneScoring" title="promod3.modelling.SetupDefaultBackboneScoring"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetupDefaultBackboneScoring()</span></code></a> and <a class="reference internal" href="pipeline.html#promod3.modelling.SetupDefaultAllAtomScoring" title="promod3.modelling.SetupDefaultAllAtomScoring"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetupDefaultAllAtomScoring()</span></code></a>.</p> +by <a class="reference internal" href="pipeline.html#promod3.modelling.SetupDefaultBackboneScoring" title="promod3.modelling.SetupDefaultBackboneScoring"><code class="xref py py-func docutils literal"><span class="pre">SetupDefaultBackboneScoring()</span></code></a> and <a class="reference internal" href="pipeline.html#promod3.modelling.SetupDefaultAllAtomScoring" title="promod3.modelling.SetupDefaultAllAtomScoring"><code class="xref py py-func docutils literal"><span class="pre">SetupDefaultAllAtomScoring()</span></code></a>.</p> <p>Different sets of weights are available. You can get general weights that have been optimized for a non redundant set of loops with lengths [3,14] (including stem residues). The alternative is to get weights that have only @@ -833,16 +846,16 @@ optionally only trained on a subset of loops with corresponding loop length.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a> (keys: <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>, values: <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>)</p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">dict</span></code></a> (keys: <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>, values: <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>)</p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>with_db</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True to choose a set of weights including DB specific scores +<li><strong>with_db</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True to choose a set of weights including DB specific scores (stem RMSD and profile scores)</li> -<li><strong>with_aa</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True to choose a set of weights including all atom scores</li> -<li><strong>length_dependent</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to use general weights or their length +<li><strong>with_aa</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True to choose a set of weights including all atom scores</li> +<li><strong>length_dependent</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to use general weights or their length length dependent counterparts.</li> -<li><strong>loop_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Length of full loop. If no weights are available for +<li><strong>loop_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Length of full loop. If no weights are available for this length or when <em>loop_length</em> is -1, the general weights are returned.</li> </ul> @@ -855,7 +868,7 @@ weights are returned.</li> <dl class="staticmethod"> <dt id="promod3.modelling.ScoringWeights.SetWeights"> <em class="property">static </em><code class="descname">SetWeights</code><span class="sig-paren">(</span><em>with_db</em>, <em>with_aa</em>, <em>weights</em>, <em>length_dependent=False</em>, <em>loop_length=-1</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.ScoringWeights.SetWeights" title="Permalink to this definition">¶</a></dt> -<dd><p>Overwrite a set of weights as returned by <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetWeights()</span></code></a>.</p> +<dd><p>Overwrite a set of weights as returned by <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal"><span class="pre">GetWeights()</span></code></a>.</p> </dd></dl> <dl class="staticmethod"> @@ -865,18 +878,18 @@ weights are returned.</li> <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"><p class="first">Subset of <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetWeights()</span></code></a> for backbone scoring as in -<code class="xref py py-meth docutils literal notranslate"><span class="pre">scoring.BackboneOverallScorer.CalculateLinearCombination()</span></code>.</p> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Subset of <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal"><span class="pre">GetWeights()</span></code></a> for backbone scoring as in +<code class="xref py py-meth docutils literal"><span class="pre">scoring.BackboneOverallScorer.CalculateLinearCombination()</span></code>.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a> (keys: <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>, values: <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>)</p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">dict</span></code></a> (keys: <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>, values: <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>)</p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>with_db</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – As in <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetWeights()</span></code></a></li> -<li><strong>with_aa</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – As in <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetWeights()</span></code></a></li> -<li><strong>length_dependent</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – As in <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetWeights()</span></code></a></li> -<li><strong>loop_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – As in <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetWeights()</span></code></a></li> +<li><strong>with_db</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – As in <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal"><span class="pre">GetWeights()</span></code></a></li> +<li><strong>with_aa</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – As in <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal"><span class="pre">GetWeights()</span></code></a></li> +<li><strong>length_dependent</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – As in <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal"><span class="pre">GetWeights()</span></code></a></li> +<li><strong>loop_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – As in <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal"><span class="pre">GetWeights()</span></code></a></li> </ul> </td> </tr> @@ -891,17 +904,17 @@ weights are returned.</li> <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"><p class="first">Subset of <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetWeights()</span></code></a> for all atom scoring as in -<code class="xref py py-meth docutils literal notranslate"><span class="pre">scoring.AllAtomOverallScorer.CalculateLinearCombination()</span></code>.</p> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Subset of <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal"><span class="pre">GetWeights()</span></code></a> for all atom scoring as in +<code class="xref py py-meth docutils literal"><span class="pre">scoring.AllAtomOverallScorer.CalculateLinearCombination()</span></code>.</p> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a> (keys: <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>, values: <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>)</p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">dict</span></code></a> (keys: <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>, values: <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>)</p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>with_db</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – As in <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetWeights()</span></code></a></li> -<li><strong>length_dependent</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – As in <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetWeights()</span></code></a></li> -<li><strong>loop_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – As in <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetWeights()</span></code></a></li> +<li><strong>with_db</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – As in <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal"><span class="pre">GetWeights()</span></code></a></li> +<li><strong>length_dependent</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – As in <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal"><span class="pre">GetWeights()</span></code></a></li> +<li><strong>loop_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – As in <a class="reference internal" href="#promod3.modelling.ScoringWeights.GetWeights" title="promod3.modelling.ScoringWeights.GetWeights"><code class="xref py py-meth docutils literal"><span class="pre">GetWeights()</span></code></a></li> </ul> </td> </tr> @@ -923,7 +936,7 @@ weights are returned.</li> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Default key for stem RMSD / sequence profile / structure profile scores.</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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a></td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></td> </tr> </tbody> </table> @@ -940,7 +953,7 @@ scores.</td> <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>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – New default key for stem RMSD / sequence profile / structure +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – New default key for stem RMSD / sequence profile / structure profile scores.</td> </tr> </tbody> @@ -959,7 +972,7 @@ profile scores.</td> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">List of backbone / all-atom scorers to be computed for any set of weights defined in here.</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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a></td> +<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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></td> </tr> </tbody> </table> @@ -974,7 +987,7 @@ weights defined in here.</td> <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>keys</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – New list of backbone / all-atom scorers to be computed for any +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>keys</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – New list of backbone / all-atom scorers to be computed for any set of weights defined in here.</td> </tr> </tbody> @@ -987,12 +1000,12 @@ set of weights defined in here.</td> <div class="section" id="example-loop-scoring-in-modelling"> <h2>Example: loop scoring in modelling<a class="headerlink" href="#example-loop-scoring-in-modelling" title="Permalink to this headline">¶</a></h2> <p>In the example below, we show how we find and choose a loop candidate to close a -gap for a model. This shows the combined usage of <a class="reference internal" href="pipeline.html#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a> to -keep a consistent modelling environment, <a class="reference internal" href="#promod3.modelling.LoopCandidates" title="promod3.modelling.LoopCandidates"><code class="xref py py-class docutils literal notranslate"><span class="pre">LoopCandidates</span></code></a> with its -scoring routines, <a class="reference internal" href="#promod3.modelling.ScoreContainer" title="promod3.modelling.ScoreContainer"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoreContainer</span></code></a> for keeping track of scores and -<a class="reference internal" href="#promod3.modelling.ScoringWeights" title="promod3.modelling.ScoringWeights"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoringWeights</span></code></a> to combine scores:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">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</span> <span class="k">import</span> <span class="n">modelling</span><span class="p">,</span> <span class="n">loop</span> +gap for a model. This shows the combined usage of <a class="reference internal" href="pipeline.html#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a> to +keep a consistent modelling environment, <a class="reference internal" href="#promod3.modelling.LoopCandidates" title="promod3.modelling.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a> with its +scoring routines, <a class="reference internal" href="#promod3.modelling.ScoreContainer" title="promod3.modelling.ScoreContainer"><code class="xref py py-class docutils literal"><span class="pre">ScoreContainer</span></code></a> for keeping track of scores and +<a class="reference internal" href="#promod3.modelling.ScoringWeights" title="promod3.modelling.ScoringWeights"><code class="xref py py-class docutils literal"><span class="pre">ScoringWeights</span></code></a> to combine scores:</p> +<div class="highlight-default"><div class="highlight"><pre><span></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</span> <span class="kn">import</span> <span class="n">modelling</span><span class="p">,</span> <span class="n">loop</span> <span class="c1"># setup raw model</span> <span class="n">tpl</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="s1">'data/1crn_cut.pdb'</span><span class="p">)</span> @@ -1089,45 +1102,21 @@ scoring routines, <a class="reference internal" href="#promod3.modelling.ScoreCo </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Handling Loop Candidates</a><ul> +<li><a class="reference internal" href="#the-loopcandidates-class">The LoopCandidates class</a></li> +<li><a class="reference internal" href="#keeping-track-of-loop-candidate-scores">Keeping track of loop candidate scores</a></li> +<li><a class="reference internal" href="#example-loop-scoring-in-modelling">Example: loop scoring in modelling</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> <li>Previous: <a href="gap_handling.html" title="previous chapter">Handling Gaps</a></li> <li>Next: <a href="loop_closing.html" title="next chapter">Fitting Loops Into Gaps</a></li> </ul></li> @@ -1135,26 +1124,23 @@ scoring routines, <a class="reference internal" href="#promod3.modelling.ScoreCo </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/modelling/loop_candidates.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -1163,11 +1149,11 @@ scoring routines, <a class="reference internal" href="#promod3.modelling.ScoreCo ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/modelling/loop_candidates.rst.txt" + <a href="../_sources/modelling/loop_candidates.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/loop_closing.html b/doc/html/modelling/loop_closing.html index 4888947584b6edb6f887569e01449069c155fcae..6fae0f57b785d543b4218d788c87b88ec27e5b1b 100644 --- a/doc/html/modelling/loop_closing.html +++ b/doc/html/modelling/loop_closing.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Fitting Loops Into Gaps — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="modelling - Protein Modelling" href="index.html" /> <link rel="next" title="Generating Loops De Novo" href="monte_carlo.html" /> <link rel="prev" title="Handling Loop Candidates" href="loop_candidates.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -45,7 +58,7 @@ stem residues. ProMod3 implements two algorithms performing this task:</p> </ul> </div></blockquote> <p>In case of small gaps or small issues in the loop you might also consider the -<a class="reference internal" href="#promod3.modelling.BackboneRelaxer" title="promod3.modelling.BackboneRelaxer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneRelaxer</span></code></a>.</p> +<a class="reference internal" href="#promod3.modelling.BackboneRelaxer" title="promod3.modelling.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 @@ -75,29 +88,29 @@ to avoid moving into unfavourable regions of the backbone dihedrals.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Sequence of the backbones to be closed</li> -<li><strong>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue defining the n_stem. -If the residue before <em>n_stem</em> doesn’t exist, the +<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Sequence of the backbones to be closed</li> +<li><strong>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue defining the n_stem. +If the residue before <em>n_stem</em> doesn’t exist, the torsion sampler will use a default residue (ALA) and and phi angle (-1.0472) to evaluate the first angle.</li> -<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue defining the c_stem. -If the residue after <em>c_stem</em> doesn’t exist, the +<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue defining the c_stem. +If the residue after <em>c_stem</em> doesn’t exist, the torsion sampler will use a default residue (ALA) and psi angle (-0.7854) to evaluate the last angle.</li> -<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> -of <a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a>) – To extract probabilities for the analysis of the +<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/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> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> +of <a class="reference internal" href="../loop/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 extract probabilities for the analysis of the backbone dihedrals. Either a list of torsion samplers (one for for every residue of the loop to be closed) or a single one (used for all residues).</li> -<li><strong>max_steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Maximal number of iterations</li> -<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The algorithm stops as soon as the c_stem of the loop to +<li><strong>max_steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Maximal number of iterations</li> +<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The algorithm stops as soon as the c_stem of the loop to be closed has RMSD below the <em>c_stem</em></li> -<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Seed of random number generator to decide whether new phi/psi pair +<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Seed of random number generator to decide whether new phi/psi pair should be accepted.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if a list of torsion samplers is +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if a list of torsion samplers is given with inconsistent length regarding the sequence. Another requirement is that all backbone atoms of the stems must be present.</p> @@ -117,10 +130,10 @@ This is faster but might lead to weird backbone dihedral pairs.</p> <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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue defining the n_stem</li> -<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue defining the c_stem</li> -<li><strong>max_steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Maximal number of iterations</li> -<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The algorithm stops as soon as the c_stem of the loop to +<li><strong>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue defining the n_stem</li> +<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue defining the c_stem</li> +<li><strong>max_steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Maximal number of iterations</li> +<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The algorithm stops as soon as the c_stem of the loop to be closed has RMSD below the given <em>c_stem</em></li> </ul> </td> @@ -137,14 +150,14 @@ be closed has RMSD below the given <em>c_stem</em></li> <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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Loop to be closed</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Loop to be closed</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Whether <em>rmsd_cutoff</em> has been reached</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if the CCD object has been -initialized with <a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a> support +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if the CCD object has been +initialized with <a class="reference internal" href="../loop/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> support and the length of the <em>bb_list</em> is not consistent with the initial <em>sequence</em>.</td> </tr> @@ -177,8 +190,8 @@ stem residues.</p> <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> – Residue describing the stem towards n_ter</li> -<li><strong>c_stem</strong> – Residue describing the stem towards c_ter</li> +<li><strong>n_stem</strong> – Residue describing the stem towards n_ter</li> +<li><strong>c_stem</strong> – Residue describing the stem towards c_ter</li> </ul> </td> </tr> @@ -195,20 +208,20 @@ stem residues.</p> <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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Loop to be closed</li> -<li><strong>pivot_one</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of first pivot residue</li> -<li><strong>pivot_two</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of second pivot residue</li> -<li><strong>pivot_three</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of third pivot residue</li> +<li><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Loop to be closed</li> +<li><strong>pivot_one</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of first pivot residue</li> +<li><strong>pivot_two</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of second pivot residue</li> +<li><strong>pivot_three</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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 closed loops (maximum of 16 entries)</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a></p> </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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> in case of invalid pivot indices.</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> in case of invalid pivot indices.</p> </td> </tr> </tbody> @@ -222,14 +235,14 @@ stem residues.</p> <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 loop. This can be useful to close small gaps in the backbone or resolve the most severe clashes. The -<a class="reference internal" href="#promod3.modelling.BackboneRelaxer" title="promod3.modelling.BackboneRelaxer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneRelaxer</span></code></a> internally sets up a topology for the input loop. +<a class="reference internal" href="#promod3.modelling.BackboneRelaxer" title="promod3.modelling.BackboneRelaxer"><code class="xref py py-class docutils literal"><span class="pre">BackboneRelaxer</span></code></a> internally sets up a topology for the input loop. Once setup, every loop of the same length and sequence can be relaxed by the relaxer.</p> <dl class="class"> <dt id="promod3.modelling.BackboneRelaxer"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">BackboneRelaxer</code><span class="sig-paren">(</span><em>bb_list</em>, <em>ff</em>, <em>fix_nterm=True</em>, <em>fix_cterm=True</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.BackboneRelaxer" title="Permalink to this definition">¶</a></dt> <dd><p>Sets up a molecular mechanics topology for given <em>bb_list</em>. Every -<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a> of same length and sequence can then be +<a class="reference internal" href="../loop/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. The parametrization is taken from <em>ff</em>, simply neglecting all interactions to non backbone atoms. The electrostatics get neglected completely by setting all charges to 0.0.</p> @@ -238,12 +251,12 @@ completely by setting all charges to 0.0.</p> <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>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Basis for topology creation</li> -<li><strong>ff</strong> (<a class="reference internal" href="../loop/mm_system_creation.html#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.ForcefieldLookup</span></code></a>) – Source for parametrization</li> -<li><strong>fix_nterm</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether N-terminal backbone positions (N, CA, CB) should +<li><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Basis for topology creation</li> +<li><strong>ff</strong> (<a class="reference internal" href="../loop/mm_system_creation.html#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.ForcefieldLookup</span></code></a>) – Source for parametrization</li> +<li><strong>fix_nterm</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether N-terminal backbone positions (N, CA, CB) should be kept rigid during relaxation (C and O are left to move).</li> -<li><strong>fix_cterm</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether C-terminal backbone positions (CA, CB, C, O) +<li><strong>fix_cterm</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether C-terminal backbone positions (CA, CB, C, O) should be kept rigid during relaxation (N is left to move).</li> </ul> @@ -261,15 +274,15 @@ should be kept rigid during relaxation <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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Basis for topology creation</li> -<li><strong>fix_nterm</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether N-terminal backbone positions (N, CA, CB) should +<li><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Basis for topology creation</li> +<li><strong>fix_nterm</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether N-terminal backbone positions (N, CA, CB) should be kept rigid during relaxation.</li> -<li><strong>fix_cterm</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether C-terminal backbone positions (CA, CB, C, O) +<li><strong>fix_cterm</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether C-terminal backbone positions (CA, CB, C, O) should be 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if size of <em>bb_list</em> is below 2</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if size of <em>bb_list</em> is below 2</p> </td> </tr> </tbody> @@ -281,15 +294,15 @@ should be kept rigid during relaxation.</li> if there are particles (almost) on top of each other, resulting in NaN positions in the OpenMM system. The positions of <strong>bb_list</strong> are not touched in this case and the function returns an infinit potential energy. -In Python you can check for that with float(“inf”).</p> +In Python you can check for that with float(“inf”).</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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – To be relaxed</li> -<li><strong>steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – number of steepest descent steps</li> -<li><strong>stop_criterion</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – If maximum force acting on a particle +<li><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – To be relaxed</li> +<li><strong>steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – number of steepest descent steps</li> +<li><strong>stop_criterion</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – If maximum force acting on a particle falls below that threshold, the relaxation aborts.</li> </ul> @@ -298,10 +311,10 @@ relaxation aborts.</li> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Forcefield energy upon relaxation, infinity in case of OpenMM Error</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>bb_list</em> has not the same +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>bb_list</em> has not the same size or sequence as the initial one.</p> </td> </tr> @@ -318,13 +331,13 @@ size or sequence as the initial one.</p> <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>idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx of residue</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>) – Restraint Position (in Angstrom)</li> -<li><strong>force_constant</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Force constant in kJ/mol/nm^2</li> +<li><strong>idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of residue</li> +<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – Restraint Position (in Angstrom)</li> +<li><strong>force_constant</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Force constant in kJ/mol/nm^2</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>idx</em> is too large</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>idx</em> is too large</p> </td> </tr> </tbody> @@ -340,13 +353,13 @@ size or sequence as the initial one.</p> <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>idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx of residue</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>) – Restraint Position (in Angstrom)</li> -<li><strong>force_constant</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Force constant in kJ/mol/nm^2</li> +<li><strong>idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of residue</li> +<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – Restraint Position (in Angstrom)</li> +<li><strong>force_constant</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Force constant in kJ/mol/nm^2</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>idx</em> is too large</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>idx</em> is too large</p> </td> </tr> </tbody> @@ -357,19 +370,19 @@ size or sequence as the initial one.</p> <dt id="promod3.modelling.BackboneRelaxer.AddCBRestraint"> <code class="descname">AddCBRestraint</code><span class="sig-paren">(</span><em>idx</em>, <em>pos</em>, <em>force_constant=100000</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.BackboneRelaxer.AddCBRestraint" title="Permalink to this definition">¶</a></dt> <dd><p>Adds harmonic position restraint for CB atom at specified residue, -doesn’t do anything if specified residue is a glycine</p> +doesn’t do anything if specified residue is a glycine</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>idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx of residue</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>) – Restraint Position (in Angstrom)</li> -<li><strong>force_constant</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Force constant in kJ/mol/nm^2</li> +<li><strong>idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of residue</li> +<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – Restraint Position (in Angstrom)</li> +<li><strong>force_constant</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Force constant in kJ/mol/nm^2</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>idx</em> is too large</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>idx</em> is too large</p> </td> </tr> </tbody> @@ -385,13 +398,13 @@ doesn’t do anything if specified residue is a glycine</p> <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>idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx of residue</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>) – Restraint Position (in Angstrom)</li> -<li><strong>force_constant</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Force constant in kJ/mol/nm^2</li> +<li><strong>idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of residue</li> +<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – Restraint Position (in Angstrom)</li> +<li><strong>force_constant</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Force constant in kJ/mol/nm^2</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>idx</em> is too large</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>idx</em> is too large</p> </td> </tr> </tbody> @@ -407,13 +420,13 @@ doesn’t do anything if specified residue is a glycine</p> <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>idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx of residue</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>) – Restraint Position (in Angstrom)</li> -<li><strong>force_constant</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Force constant in kJ/mol/nm^2</li> +<li><strong>idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of residue</li> +<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – Restraint Position (in Angstrom)</li> +<li><strong>force_constant</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Force constant in kJ/mol/nm^2</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>idx</em> is too large</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>idx</em> is too large</p> </td> </tr> </tbody> @@ -425,13 +438,13 @@ doesn’t do anything if specified residue is a glycine</p> <code class="descname">SetNonBondedCutoff</code><span class="sig-paren">(</span><em>nonbonded_cutoff</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.BackboneRelaxer.SetNonBondedCutoff" title="Permalink to this definition">¶</a></dt> <dd><p>Defines cutoff to set for non bonded interactions. By default, all atom- pairs are compared which is the fastest for small backbones (e.g. in -<a class="reference internal" href="pipeline.html#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-meth docutils literal notranslate"><span class="pre">CloseSmallDeletions()</span></code></a>). Otherwise, a cutoff around 5 is reasonable as +<a class="reference internal" href="pipeline.html#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-meth docutils literal"><span class="pre">CloseSmallDeletions()</span></code></a>). Otherwise, a cutoff around 5 is reasonable as we ignore electrostatics.</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>nonbonded_cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Cutoff to set for non bonded interactions. Negative +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>nonbonded_cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Cutoff to set for non bonded interactions. Negative means no cutoff.</td> </tr> </tbody> @@ -447,7 +460,7 @@ means no cutoff.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Cutoff for non bonded interactions.</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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -459,12 +472,12 @@ means no cutoff.</td> <div class="section" id="relaxing-all-atom-loops"> <h2>Relaxing All Atom Loops<a class="headerlink" href="#relaxing-all-atom-loops" title="Permalink to this headline">¶</a></h2> <p>After the reconstruction of loop sidechains with the -<a class="reference internal" href="sidechain_reconstruction.html#promod3.modelling.SidechainReconstructor.Reconstruct" title="promod3.modelling.SidechainReconstructor.Reconstruct"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Reconstruct()</span></code></a> method of -<a class="reference internal" href="sidechain_reconstruction.html#promod3.modelling.SidechainReconstructor" title="promod3.modelling.SidechainReconstructor"><code class="xref py py-class docutils literal notranslate"><span class="pre">SidechainReconstructor</span></code></a>, it may be desired to -quickly relax the loop. The <a class="reference internal" href="#promod3.modelling.AllAtomRelaxer" title="promod3.modelling.AllAtomRelaxer"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomRelaxer</span></code></a> class takes care of that.</p> +<a class="reference internal" href="sidechain_reconstruction.html#promod3.modelling.SidechainReconstructor.Reconstruct" title="promod3.modelling.SidechainReconstructor.Reconstruct"><code class="xref py py-meth docutils literal"><span class="pre">Reconstruct()</span></code></a> method of +<a class="reference internal" href="sidechain_reconstruction.html#promod3.modelling.SidechainReconstructor" title="promod3.modelling.SidechainReconstructor"><code class="xref py py-class docutils literal"><span class="pre">SidechainReconstructor</span></code></a>, it may be desired to +quickly relax the loop. The <a class="reference internal" href="#promod3.modelling.AllAtomRelaxer" title="promod3.modelling.AllAtomRelaxer"><code class="xref py py-class docutils literal"><span class="pre">AllAtomRelaxer</span></code></a> class takes care of that.</p> <p>Example usage:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">io</span> -<span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">modelling</span><span class="p">,</span> <span class="n">loop</span> +<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">io</span> +<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">modelling</span><span class="p">,</span> <span class="n">loop</span> <span class="c1"># load example (has res. numbering starting at 1)</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="s1">'data/1CRN.pdb'</span><span class="p">)</span> @@ -503,8 +516,8 @@ system creator, which takes care of generating a simulation object.</p> <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>sc_data</strong> (<a class="reference internal" href="sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData" title="promod3.modelling.SidechainReconstructionData"><code class="xref py py-class docutils literal notranslate"><span class="pre">SidechainReconstructionData</span></code></a>) – Sidechain reconstruction result</li> -<li><strong>mm_system_creator</strong> (<a class="reference internal" href="../loop/mm_system_creation.html#promod3.loop.MmSystemCreator" title="promod3.loop.MmSystemCreator"><code class="xref py py-class docutils literal notranslate"><span class="pre">MmSystemCreator</span></code></a>) – System creator to be used here</li> +<li><strong>sc_data</strong> (<a class="reference internal" href="sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData" title="promod3.modelling.SidechainReconstructionData"><code class="xref py py-class docutils literal"><span class="pre">SidechainReconstructionData</span></code></a>) – Sidechain reconstruction result</li> +<li><strong>mm_system_creator</strong> (<a class="reference internal" href="../loop/mm_system_creation.html#promod3.loop.MmSystemCreator" title="promod3.loop.MmSystemCreator"><code class="xref py py-class docutils literal"><span class="pre">MmSystemCreator</span></code></a>) – System creator to be used here</li> </ul> </td> </tr> @@ -518,15 +531,15 @@ system creator, which takes care of generating a simulation object.</p> if there are particles (almost) on top of each other, resulting in NaN positions in the OpenMM system. The positions of <em>sc_data.env_pos.all_pos</em> are not touched in this case and the function returns an infinit potential -energy. In Python you can check for that with float(“inf”).</p> +energy. In Python you can check for that with float(“inf”).</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>sc_data</strong> (<a class="reference internal" href="sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData" title="promod3.modelling.SidechainReconstructionData"><code class="xref py py-class docutils literal notranslate"><span class="pre">SidechainReconstructionData</span></code></a>) – Sidechain reconstruction result to be updated</li> -<li><strong>steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of steepest descent steps</li> -<li><strong>stop_criterion</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – If maximum force acting on a particle falls below +<li><strong>sc_data</strong> (<a class="reference internal" href="sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData" title="promod3.modelling.SidechainReconstructionData"><code class="xref py py-class docutils literal"><span class="pre">SidechainReconstructionData</span></code></a>) – Sidechain reconstruction result to be updated</li> +<li><strong>steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of steepest descent steps</li> +<li><strong>stop_criterion</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – If maximum force acting on a particle falls below that threshold, the relaxation aborts.</li> </ul> </td> @@ -534,10 +547,10 @@ that threshold, the relaxation aborts.</li> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Potential energy after relaxation, infinity in case of OpenMM Error</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>sc_data</em> is incompatible with +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>sc_data</em> is incompatible with the one given in the constructor.</p> </td> </tr> @@ -555,9 +568,9 @@ the same disulfid bridges as the one given in the constructor.</p> <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>sc_data</strong> (<a class="reference internal" href="sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData" title="promod3.modelling.SidechainReconstructionData"><code class="xref py py-class docutils literal notranslate"><span class="pre">SidechainReconstructionData</span></code></a>) – Get new positions from <em>sc_data.env_pos.all_pos</em></td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>sc_data</strong> (<a class="reference internal" href="sidechain_reconstruction.html#promod3.modelling.SidechainReconstructionData" title="promod3.modelling.SidechainReconstructionData"><code class="xref py py-class docutils literal"><span class="pre">SidechainReconstructionData</span></code></a>) – Get new positions from <em>sc_data.env_pos.all_pos</em></td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>sc_data</em> is incompatible with +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>sc_data</em> is incompatible with the one given in the constructor.</td> </tr> </tbody> @@ -573,7 +586,7 @@ the one given in the constructor.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">MM system creator passed in the constructor</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="../loop/mm_system_creation.html#promod3.loop.MmSystemCreator" title="promod3.loop.MmSystemCreator"><code class="xref py py-class docutils literal notranslate"><span class="pre">MmSystemCreator</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="../loop/mm_system_creation.html#promod3.loop.MmSystemCreator" title="promod3.loop.MmSystemCreator"><code class="xref py py-class docutils literal"><span class="pre">MmSystemCreator</span></code></a></td> </tr> </tbody> </table> @@ -591,45 +604,22 @@ the one given in the constructor.</td> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Fitting Loops Into Gaps</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> +<li><a class="reference internal" href="#relaxing-all-atom-loops">Relaxing All Atom Loops</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> <li>Previous: <a href="loop_candidates.html" title="previous chapter">Handling Loop Candidates</a></li> <li>Next: <a href="monte_carlo.html" title="next chapter">Generating Loops De Novo</a></li> </ul></li> @@ -637,26 +627,23 @@ the one given in the constructor.</td> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/modelling/loop_closing.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -665,11 +652,11 @@ the one given in the constructor.</td> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/modelling/loop_closing.rst.txt" + <a href="../_sources/modelling/loop_closing.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/model_checking.html b/doc/html/modelling/model_checking.html index 540cd0cc03b32b1aa8a17d2fd66fc43c7a0ccdaa..28d34a0c6af03e6c228515eb3f4d8c45b79cef45 100644 --- a/doc/html/modelling/model_checking.html +++ b/doc/html/modelling/model_checking.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Model Checking — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="modelling - Protein Modelling" href="index.html" /> <link rel="next" title="Handling Gaps" href="gap_handling.html" /> <link rel="prev" title="Modelling Pipeline" href="pipeline.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -50,14 +63,14 @@ three of the atoms exist (center and radii are estimated then).</p> <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>ent</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">EntityHandle</span></code></a> or <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">EntityView</span></code></a>) – Structure for which to detect rings.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>ent</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">EntityHandle</span></code></a> or <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">EntityView</span></code></a>) – Structure for which to detect rings.</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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of rings to perform ring checks. Each ring is a named +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of rings to perform ring checks. Each ring is a named tuple with: -center (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Vec3</span></code></a>), -plane (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/composite/#ost.geom.Plane" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Plane</span></code></a>), -radius (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>), -residue (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ResidueHandle</span></code></a>).</td> +center (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>), +plane (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/composite/#ost.geom.Plane" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Plane</span></code></a>), +radius (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>), +residue (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ResidueHandle</span></code></a>).</td> </tr> </tbody> </table> @@ -72,12 +85,12 @@ residue (<a class="reference external" href="https://www.openstructure.org/docs/ <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>rings</strong> – List of rings as provided by <a class="reference internal" href="#promod3.modelling.GetRings" title="promod3.modelling.GetRings"><code class="xref py py-func docutils literal notranslate"><span class="pre">GetRings()</span></code></a>.</li> -<li><strong>ent</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">EntityHandle</span></code></a> or <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">EntityView</span></code></a>) – Structure for which to detect punches.</li> +<li><strong>rings</strong> – List of rings as provided by <a class="reference internal" href="#promod3.modelling.GetRings" title="promod3.modelling.GetRings"><code class="xref py py-func docutils literal"><span class="pre">GetRings()</span></code></a>.</li> +<li><strong>ent</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">EntityHandle</span></code></a> or <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">EntityView</span></code></a>) – Structure for which to detect punches.</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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of residues (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ResidueHandle</span></code></a>) which +<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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of residues (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ResidueHandle</span></code></a>) which have a punched ring.</p> </td> </tr> @@ -89,21 +102,21 @@ have a punched ring.</p> <dt id="promod3.modelling.HasRingPunches"> <code class="descclassname">promod3.modelling.</code><code class="descname">HasRingPunches</code><span class="sig-paren">(</span><em>rings</em>, <em>ent</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.HasRingPunches" title="Permalink to this definition">¶</a></dt> <dd><p>Check if any ring is punched by the given structure. -This check is faster than using <a class="reference internal" href="#promod3.modelling.GetRingPunches" title="promod3.modelling.GetRingPunches"><code class="xref py py-func docutils literal notranslate"><span class="pre">GetRingPunches()</span></code></a>.</p> +This check is faster than using <a class="reference internal" href="#promod3.modelling.GetRingPunches" title="promod3.modelling.GetRingPunches"><code class="xref py py-func docutils literal"><span class="pre">GetRingPunches()</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>rings</strong> – List of rings as provided by <a class="reference internal" href="#promod3.modelling.GetRings" title="promod3.modelling.GetRings"><code class="xref py py-func docutils literal notranslate"><span class="pre">GetRings()</span></code></a>.</li> -<li><strong>ent</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">EntityHandle</span></code></a> or <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">EntityView</span></code></a>) – Structure for which to detect punches.</li> +<li><strong>rings</strong> – List of rings as provided by <a class="reference internal" href="#promod3.modelling.GetRings" title="promod3.modelling.GetRings"><code class="xref py py-func docutils literal"><span class="pre">GetRings()</span></code></a>.</li> +<li><strong>ent</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">EntityHandle</span></code></a> or <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">EntityView</span></code></a>) – Structure for which to detect punches.</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">True, iff any ring is punched</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 external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></p> </td> </tr> </tbody> @@ -119,11 +132,11 @@ This check is faster than using <a class="reference internal" href="#promod3.mod <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>candidates</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">LoopCandidates</span></code>) – Loop candidates meant to fill <em>gap</em> within <em>model</em>. +<li><strong>candidates</strong> (<code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code>) – Loop candidates meant to fill <em>gap</em> within <em>model</em>. Offending candidates are removed from this list.</li> -<li><strong>model</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">EntityHandle</span></code></a>) – Model for which loop is to be filled.</li> -<li><strong>gap</strong> (<a class="reference internal" href="gap_handling.html#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructuralGap</span></code></a>.) – Gap for which loop is to be filled.</li> -<li><strong>orig_indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – Mapping to old indexing of candidates. If given, it +<li><strong>model</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">EntityHandle</span></code></a>) – Model for which loop is to be filled.</li> +<li><strong>gap</strong> (<a class="reference internal" href="gap_handling.html#promod3.modelling.StructuralGap" title="promod3.modelling.StructuralGap"><code class="xref py py-class docutils literal"><span class="pre">StructuralGap</span></code></a>.) – Gap for which loop is to be filled.</li> +<li><strong>orig_indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – Mapping to old indexing of candidates. If given, it must have as many elements as <em>candidates</em>.</li> </ul> </td> @@ -136,7 +149,7 @@ must have as many elements as <em>candidates</em>.</li> <dt id="promod3.modelling.FilterCandidatesWithSC"> <code class="descclassname">promod3.modelling.</code><code class="descname">FilterCandidatesWithSC</code><span class="sig-paren">(</span><em>candidates</em>, <em>model</em>, <em>gap</em>, <em>orig_indices=[]</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.FilterCandidatesWithSC" title="Permalink to this definition">¶</a></dt> <dd><p>Remove loop candidates if they (with sidechain) cause ring punches. -See <a class="reference internal" href="#promod3.modelling.FilterCandidates" title="promod3.modelling.FilterCandidates"><code class="xref py py-func docutils literal notranslate"><span class="pre">FilterCandidates()</span></code></a>.</p> +See <a class="reference internal" href="#promod3.modelling.FilterCandidates" title="promod3.modelling.FilterCandidates"><code class="xref py py-func docutils literal"><span class="pre">FilterCandidates()</span></code></a>.</p> </dd></dl> </div> @@ -145,9 +158,9 @@ See <a class="reference internal" href="#promod3.modelling.FilterCandidates" tit <dl class="function"> <dt id="promod3.modelling.RunMolProbity"> <code class="descclassname">promod3.modelling.</code><code class="descname">RunMolProbity</code><span class="sig-paren">(</span><em>target_pdb</em>, <em>molprobity_bin=None</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.RunMolProbity" title="Permalink to this definition">¶</a></dt> -<dd><p>Run <code class="docutils literal notranslate"><span class="pre">MolProbity</span></code> from <code class="docutils literal notranslate"><span class="pre">Phenix</span></code> on a given PDB file.</p> +<dd><p>Run <code class="docutils literal"><span class="pre">MolProbity</span></code> from <code class="docutils literal"><span class="pre">Phenix</span></code> on a given PDB file.</p> <p>MolProbity score computation: (formula from molprobity source code)</p> -<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">clashscore</span> <span class="o">=</span> <span class="n">result</span><span class="p">[</span><span class="s2">"Clashscore"</span><span class="p">]</span> +<div class="highlight-python"><div class="highlight"><pre><span></span><span class="n">clashscore</span> <span class="o">=</span> <span class="n">result</span><span class="p">[</span><span class="s2">"Clashscore"</span><span class="p">]</span> <span class="n">rota_out</span> <span class="o">=</span> <span class="n">result</span><span class="p">[</span><span class="s2">"Rotamer outliers"</span><span class="p">]</span> <span class="n">rama_iffy</span> <span class="o">=</span> <span class="mf">100.</span> <span class="o">-</span> <span class="n">result</span><span class="p">[</span><span class="s2">"Ramachandran favored"</span><span class="p">]</span> <span class="n">mpscore</span> <span class="o">=</span> <span class="p">((</span> <span class="mf">0.426</span> <span class="o">*</span> <span class="n">math</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="n">clashscore</span><span class="p">)</span> <span class="p">)</span> <span class="o">+</span> @@ -160,33 +173,33 @@ See <a class="reference internal" href="#promod3.modelling.FilterCandidates" tit <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>target_pdb</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to PDB file on which to do analysis.</li> -<li><strong>molprobity_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to <code class="docutils literal notranslate"><span class="pre">phenix.molprobity</span></code> executable. If None, it -searches for it in the <code class="docutils literal notranslate"><span class="pre">PATH</span></code> or (if set) in the -env. variable <code class="docutils literal notranslate"><span class="pre">MOLPROBITY_EXECUTABLE</span></code>. -The function was tested with <code class="docutils literal notranslate"><span class="pre">Phenix</span> <span class="pre">1.9-1692</span></code> and -with <code class="docutils literal notranslate"><span class="pre">MolProbity</span> <span class="pre">4.2</span></code> which also includes it.</li> +<li><strong>target_pdb</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to PDB file on which to do analysis.</li> +<li><strong>molprobity_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to <code class="docutils literal"><span class="pre">phenix.molprobity</span></code> executable. If None, it +searches for it in the <code class="docutils literal"><span class="pre">PATH</span></code> or (if set) in the +env. variable <code class="docutils literal"><span class="pre">MOLPROBITY_EXECUTABLE</span></code>. +The function was tested with <code class="docutils literal"><span class="pre">Phenix</span> <span class="pre">1.9-1692</span></code> and +with <code class="docutils literal"><span class="pre">MolProbity</span> <span class="pre">4.2</span></code> which also includes it.</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><p>Dictionary with scores produced by MolProbity. Entries:</p> <ul class="simple"> -<li>”Ramachandran outliers” (percentage [0,100] as <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>)</li> -<li>”Ramachandran favored” (percentage [0,100] as <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>)</li> -<li>”Rotamer outliers” (percentage [0,100] as <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>)</li> -<li>”C-beta deviations” (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>)</li> -<li>”Clashscore” (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>)</li> -<li>”MolProbity score” (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>)</li> -<li>”RMS(bonds)” (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>)</li> -<li>”RMS(angles)” (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>)</li> +<li>“Ramachandran outliers” (percentage [0,100] as <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>)</li> +<li>“Ramachandran favored” (percentage [0,100] as <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>)</li> +<li>“Rotamer outliers” (percentage [0,100] as <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>)</li> +<li>“C-beta deviations” (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>)</li> +<li>“Clashscore” (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>)</li> +<li>“MolProbity score” (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>)</li> +<li>“RMS(bonds)” (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>)</li> +<li>“RMS(angles)” (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>)</li> </ul> </p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">dict</span></code></a></p> </td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://www.openstructure.org/docs/1.11/base/settings/#ost.settings.FileNotFound" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">FileNotFound</span></code></a> if the “phenix.molprobity” +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://www.openstructure.org/docs/2.0/base/settings/#ost.settings.FileNotFound" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">FileNotFound</span></code></a> if the “phenix.molprobity” executable is not found.</p> </td> </tr> @@ -198,12 +211,12 @@ executable is not found.</p> <dt id="promod3.modelling.RunMolProbityEntity"> <code class="descclassname">promod3.modelling.</code><code class="descname">RunMolProbityEntity</code><span class="sig-paren">(</span><em>ost_ent</em>, <em>molprobity_bin=None</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.RunMolProbityEntity" title="Permalink to this definition">¶</a></dt> <dd><p>Run molprobity from phenix on given OST entity.</p> -<p>See <a class="reference internal" href="#promod3.modelling.RunMolProbity" title="promod3.modelling.RunMolProbity"><code class="xref py py-func docutils literal notranslate"><span class="pre">RunMolProbity()</span></code></a> for details.</p> +<p>See <a class="reference internal" href="#promod3.modelling.RunMolProbity" title="promod3.modelling.RunMolProbity"><code class="xref py py-func docutils literal"><span class="pre">RunMolProbity()</span></code></a> for details.</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>ost_ent</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Entity</span></code></a>) – OST entity on which to do analysis.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>ost_ent</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Entity</span></code></a>) – OST entity on which to do analysis.</td> </tr> </tbody> </table> @@ -217,7 +230,7 @@ executable is not found.</p> <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>scores</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a>) – MolProbity scores as generated by <a class="reference internal" href="#promod3.modelling.RunMolProbity" title="promod3.modelling.RunMolProbity"><code class="xref py py-func docutils literal notranslate"><span class="pre">RunMolProbity()</span></code></a>.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>scores</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">dict</span></code></a>) – MolProbity scores as generated by <a class="reference internal" href="#promod3.modelling.RunMolProbity" title="promod3.modelling.RunMolProbity"><code class="xref py py-func docutils literal"><span class="pre">RunMolProbity()</span></code></a>.</td> </tr> </tbody> </table> @@ -233,45 +246,20 @@ executable is not found.</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Model Checking</a><ul> +<li><a class="reference internal" href="#detecting-ring-punches">Detecting Ring Punches</a></li> +<li><a class="reference internal" href="#model-checking-with-molprobity">Model Checking With MolProbity</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> <li>Previous: <a href="pipeline.html" title="previous chapter">Modelling Pipeline</a></li> <li>Next: <a href="gap_handling.html" title="next chapter">Handling Gaps</a></li> </ul></li> @@ -279,26 +267,23 @@ executable is not found.</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/modelling/model_checking.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -307,11 +292,11 @@ executable is not found.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/modelling/model_checking.rst.txt" + <a href="../_sources/modelling/model_checking.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/monte_carlo.html b/doc/html/modelling/monte_carlo.html index 805407b2d8b550c205b9b3d23ebcf34681fdbfe0..7a4734c542646cad0aa35eb4e8c02393fd6c6056 100644 --- a/doc/html/modelling/monte_carlo.html +++ b/doc/html/modelling/monte_carlo.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Generating Loops De Novo — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="modelling - Protein Modelling" href="index.html" /> <link rel="next" title="Sidechain Reconstruction" href="sidechain_reconstruction.html" /> <link rel="prev" title="Fitting Loops Into Gaps" href="loop_closing.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -49,10 +62,10 @@ a temperature controlled Metropolis criterion</li> </ul> <p>These steps can be arbitrarily combined to generate custom Monte Carlo sampling pipelines. This combination either happens manually or by using the convenient -<a class="reference internal" href="#promod3.modelling.SampleMonteCarlo" title="promod3.modelling.SampleMonteCarlo"><code class="xref py py-func docutils literal notranslate"><span class="pre">SampleMonteCarlo()</span></code></a> function. For example, here we show how to apply Monte +<a class="reference internal" href="#promod3.modelling.SampleMonteCarlo" title="promod3.modelling.SampleMonteCarlo"><code class="xref py py-func docutils literal"><span class="pre">SampleMonteCarlo()</span></code></a> function. For example, here we show how to apply Monte Carlo sampling to the N-terminal part of crambin:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">io</span> -<span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">loop</span><span class="p">,</span> <span class="n">scoring</span><span class="p">,</span> <span class="n">modelling</span> +<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">io</span> +<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">loop</span><span class="p">,</span> <span class="n">scoring</span><span class="p">,</span> <span class="n">modelling</span> <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> <span class="c1"># setup protein</span> @@ -121,20 +134,20 @@ accepted proposal.</p> <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>sampler</strong> (<a class="reference internal" href="#mc-sampler-object"><span class="std std-ref">Sampler Object</span></a>) – Sampler object capable of initializing and altering +<li><strong>sampler</strong> (<a class="reference internal" href="#mc-sampler-object"><span class="std std-ref">Sampler Object</span></a>) – Sampler object capable of initializing and altering conformations.</li> -<li><strong>closer</strong> (<a class="reference internal" href="#mc-closer-object"><span class="std std-ref">Closer Object</span></a>) – Closer object to adapt a new conformation to +<li><strong>closer</strong> (<a class="reference internal" href="#mc-closer-object"><span class="std std-ref">Closer Object</span></a>) – Closer object to adapt a new conformation to the environment.</li> -<li><strong>scorer</strong> (<a class="reference internal" href="#mc-scorer-object"><span class="std std-ref">Scorer Object</span></a>) – Scorer object to score new loop conformations.</li> -<li><strong>cooler</strong> (<a class="reference internal" href="#mc-cooler-object"><span class="std std-ref">Cooler Object</span></a>) – Cooler object to control the temperature of the +<li><strong>scorer</strong> (<a class="reference internal" href="#mc-scorer-object"><span class="std std-ref">Scorer Object</span></a>) – Scorer object to score new loop conformations.</li> +<li><strong>cooler</strong> (<a class="reference internal" href="#mc-cooler-object"><span class="std std-ref">Cooler Object</span></a>) – Cooler object to control the temperature of the Monte Carlo trajectory.</li> -<li><strong>steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of Monte Carlo iterations to be performed.</li> -<li><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – The chosen conformation gets stored here.</li> -<li><strong>initialize</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether a new bb_list should be generated as starting +<li><strong>steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of Monte Carlo iterations to be performed.</li> +<li><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – The chosen conformation gets stored here.</li> +<li><strong>initialize</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether a new bb_list should be generated as starting point, based on the samplers Initialize function. The input <em>bb_list</em> gets used otherwise.</li> -<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Seed for internal random number generator.</li> -<li><strong>lowest_energy_conformation</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – If True, we choose the lowest scoring +<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Seed for internal random number generator.</li> +<li><strong>lowest_energy_conformation</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – If True, we choose the lowest scoring conformation of the trajectory. Otherwise, the last accepted proposal.</li> </ul> @@ -150,7 +163,7 @@ Otherwise, the last accepted proposal.</li> propose new conformations for a sequence of interest. They build the basis for any Monte Carlo sampling pipeline. You can either use one of the provided samplers or any object that implements the functionality of -<a class="reference internal" href="#promod3.modelling.SamplerBase" title="promod3.modelling.SamplerBase"><code class="xref py py-class docutils literal notranslate"><span class="pre">SamplerBase</span></code></a>.</p> +<a class="reference internal" href="#promod3.modelling.SamplerBase" title="promod3.modelling.SamplerBase"><code class="xref py py-class docutils literal"><span class="pre">SamplerBase</span></code></a>.</p> <dl class="class"> <dt id="promod3.modelling.SamplerBase"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">SamplerBase</code><a class="headerlink" href="#promod3.modelling.SamplerBase" title="Permalink to this definition">¶</a></dt> @@ -160,13 +173,13 @@ sampler.</p> <dt id="promod3.modelling.SamplerBase.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.modelling.SamplerBase.Initialize" title="Permalink to this definition">¶</a></dt> <dd><p>Supposed to initialize structural information from scratch. The sequence -of the generated <a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.BackboneList</span></code></a> is taken from <em>bb_list</em>.</p> +of the generated <a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.BackboneList</span></code></a> is taken from <em>bb_list</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>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.BackboneList</span></code></a>) – Passed by reference, so the resulting -<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.BackboneList</span></code></a> is assigned to this +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.BackboneList</span></code></a>) – Passed by reference, so the resulting +<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.BackboneList</span></code></a> is assigned to this parameter. Sequence / length stay the same.</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">None</td> @@ -186,10 +199,10 @@ is supposed to sort that out.</p> <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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.BackboneList</span></code></a>) – Starting point, must not change when calling this +<li><strong>actual_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.BackboneList</span></code></a>) – Starting point, must not change when calling this function.</li> -<li><strong>proposed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.BackboneList</span></code></a>) – Passed by reference, so the resulting -<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.BackboneList</span></code></a> is assigned to +<li><strong>proposed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.BackboneList</span></code></a>) – Passed by reference, so the resulting +<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.BackboneList</span></code></a> is assigned to this parameter.</li> </ul> </td> @@ -213,28 +226,28 @@ a distribution provided by the <em>torsion_sampler</em>.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Sequence that should be sampled</li> -<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a>) – Sampler, from which the phi/psi pairs are drawn. It +<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Sequence that should be sampled</li> +<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/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>) – 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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Phi angle of the n_stem. This angle is not defined in +<li><strong>n_stem_phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – 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 <em>n_stem_phi</em>.</li> -<li><strong>c_stem_psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Psi angle of c_stem. This angle is not defined in +<li><strong>c_stem_psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – 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 <em>c_stem_psi</em>.</li> -<li><strong>prev_aa</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – This parameter is necessary to extract the according +<li><strong>prev_aa</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – This parameter is necessary to extract the according histogram index for the first residue from the <em>torsion_sampler</em>. (Remember: The torsion sampler always considers triplets)</li> -<li><strong>next_aa</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – This parameter is necessary to extract the according +<li><strong>next_aa</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – This parameter is necessary to extract the according histogram index for the last residue from the <em>torsion_sampler</em>. (Remember: The torsion sampler always considers triplets)</li> -<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Seed for the internal random number generators.</li> +<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Seed for the internal random number generators.</li> </ul> </td> </tr> @@ -243,13 +256,13 @@ always considers triplets)</li> <dl class="method"> <dt id="promod3.modelling.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.modelling.PhiPsiSampler.Initialize" title="Permalink to this definition">¶</a></dt> -<dd><p>Sets up a new <a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a> by randomly drawing +<dd><p>Sets up a new <a class="reference internal" href="../loop/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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – The newly created conformation gets stored in here</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – The newly created conformation gets stored in here</td> </tr> </tbody> </table> @@ -267,14 +280,14 @@ principle also applies for the last residue.</p> <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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Conformation to be changed</li> -<li><strong>proposed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Changed conformation gets stored in here</li> +<li><strong>actual_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Conformation to be changed</li> +<li><strong>proposed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> If size of <em>actual_positions</em> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> If size of <em>actual_positions</em> is not consistent with the internal sequence. Note, that the -sequence itself doesn’t get checked for efficiency reasons.</p> +sequence itself doesn’t get checked for efficiency reasons.</p> </td> </tr> </tbody> @@ -294,32 +307,32 @@ SoftSampler.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Sequence that should be sampled</li> -<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a>) – Sampler, from which the phi/psi probablities are +<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Sequence that should be sampled</li> +<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/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>) – 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> – Maximal deviation of dihedral angle from its original +<li><strong>max_dev</strong> – 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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Phi angle of the n_stem. This angle is not defined in +<li><strong>n_stem_phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – 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, <em>n_stem_phi</em> 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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Psi angle of c_stem. This angle is not defined in +<li><strong>c_stem_psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – 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, <em>c_stem_psi</em> 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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – This parameter is necessary to extract the according +<li><strong>prev_aa</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – This parameter is necessary to extract the according histogram index for the first residue from the <em>torsion_sampler</em>. (Remember: The torsion sampler always considers triplets)</li> -<li><strong>next_aa</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – This parameter is necessary to extract the according +<li><strong>next_aa</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – This parameter is necessary to extract the according histogram index for the last residue from the <em>torsion_sampler</em>. (Remember: The torsion sampler always considers triplets)</li> -<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Seed for the internal random number generators.</li> +<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Seed for the internal random number generators.</li> </ul> </td> </tr> @@ -328,13 +341,13 @@ always considers triplets)</li> <dl class="method"> <dt id="promod3.modelling.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.modelling.SoftSampler.Initialize" title="Permalink to this definition">¶</a></dt> -<dd><p>Sets up a new <a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a> by randomly drawing +<dd><p>Sets up a new <a class="reference internal" href="../loop/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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – The newly created conformation gets stored in here</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – The newly created conformation gets stored in here</td> </tr> </tbody> </table> @@ -355,14 +368,14 @@ when a new step should be proposed</p> <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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Conformation to be changed</li> -<li><strong>proposed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Changed conformation gets stored in here</li> +<li><strong>actual_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Conformation to be changed</li> +<li><strong>proposed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> If size of <em>actual_positions</em> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> If size of <em>actual_positions</em> is not consistent with the internal sequence. Note, that the -sequence itself doesn’t get checked for efficiency reasons.</p> +sequence itself doesn’t get checked for efficiency reasons.</p> </td> </tr> </tbody> @@ -375,30 +388,30 @@ sequence itself doesn’t get checked for efficiency reasons.</p> <dt id="promod3.modelling.FragmentSampler"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">FragmentSampler</code><span class="sig-paren">(</span><em>sequence</em>, <em>fraggers</em>, <em>init_bb_list=BackboneList(sequence)</em>, <em>sampling_start_index=0</em>, <em>init_fragments=3</em>, <em>seed=0</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.FragmentSampler" title="Permalink to this definition">¶</a></dt> <dd><p>The FragmentSampler samples by replacing full fragments originating from a -list of <a class="reference internal" href="../loop/structure_db.html#promod3.loop.Fragger" title="promod3.loop.Fragger"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fragger</span></code></a> objects. The region, that actually gets +list of <a class="reference internal" href="../loop/structure_db.html#promod3.loop.Fragger" title="promod3.loop.Fragger"><code class="xref py py-class docutils literal"><span class="pre">Fragger</span></code></a> objects. The region, that actually gets sampled is determined by <em>sampling_start_index</em> and number of -<a class="reference internal" href="../loop/structure_db.html#promod3.loop.Fragger" title="promod3.loop.Fragger"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fragger</span></code></a> objects being available. All parts not covered +<a class="reference internal" href="../loop/structure_db.html#promod3.loop.Fragger" title="promod3.loop.Fragger"><code class="xref py py-class docutils literal"><span class="pre">Fragger</span></code></a> objects being available. All parts not covered by any fragger remain rigid.</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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Overall sequence</li> -<li><strong>fraggers</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – A list of <a class="reference internal" href="../loop/structure_db.html#promod3.loop.Fragger" title="promod3.loop.Fragger"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fragger</span></code></a> objects. The first +<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Overall sequence</li> +<li><strong>fraggers</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – A list of <a class="reference internal" href="../loop/structure_db.html#promod3.loop.Fragger" title="promod3.loop.Fragger"><code class="xref py py-class docutils literal"><span class="pre">Fragger</span></code></a> objects. The first fragger covers the region starting at the letter <em>sampling_start_index</em> of the <em>sequence</em> and so on. All fraggers must contain fragments of equal size.</li> -<li><strong>init_bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Initial conformation, that serves as a starting point for +<li><strong>init_bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Initial conformation, that serves as a starting point for sampling. The default gets constructed using the default -constructor of <a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a> and +constructor of <a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> and results in a helix.</li> -<li><strong>sampling_start_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Defines the beginning of the region, that actually +<li><strong>sampling_start_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Defines the beginning of the region, that actually gets sampled.</li> -<li><strong>init_fragments</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – When calling the Initialize function, the positions get set +<li><strong>init_fragments</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – When calling the Initialize function, the positions get set to the ones of <em>init_bb_list</em>. This is the number of fragments that gets randomly selected and inserted.</li> -<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Seed for the internal random number generators</li> +<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Seed for the internal random number generators</li> </ul> </td> </tr> @@ -407,14 +420,14 @@ fragments that gets randomly selected and inserted.</li> <dl class="method"> <dt id="promod3.modelling.FragmentSampler.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.modelling.FragmentSampler.Initialize" title="Permalink to this definition">¶</a></dt> -<dd><p>Sets up a new <a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a> by setting the setting +<dd><p>Sets up a new <a class="reference internal" href="../loop/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 setting the setting bb_list = <em>init_bb_list</em> and randomly replace n fragments with n = <em>init_fragments</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>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – The newly created conformation gets stored in here</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – The newly created conformation gets stored in here</td> </tr> </tbody> </table> @@ -430,8 +443,8 @@ fragger object to alter the conformation.</p> <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>actual_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Conformation to be changed</li> -<li><strong>proposed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Changed conformation gets stored in here</li> +<li><strong>actual_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Conformation to be changed</li> +<li><strong>proposed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Changed conformation gets stored in here</li> </ul> </td> </tr> @@ -450,7 +463,7 @@ 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. You can either use any of the provided closers or any object that implements the -functionality of <a class="reference internal" href="#promod3.modelling.CloserBase" title="promod3.modelling.CloserBase"><code class="xref py py-class docutils literal notranslate"><span class="pre">CloserBase</span></code></a>.</p> +functionality of <a class="reference internal" href="#promod3.modelling.CloserBase" title="promod3.modelling.CloserBase"><code class="xref py py-class docutils literal"><span class="pre">CloserBase</span></code></a>.</p> <dl class="class"> <dt id="promod3.modelling.CloserBase"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">CloserBase</code><a class="headerlink" href="#promod3.modelling.CloserBase" title="Permalink to this definition">¶</a></dt> @@ -466,10 +479,10 @@ given environment.</p> <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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.BackboneList</span></code></a>) – Starting point, must not change when calling this +<li><strong>actual_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.BackboneList</span></code></a>) – Starting point, must not change when calling this function.</li> -<li><strong>closed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.BackboneList</span></code></a>) – Passed by reference, so the resulting -<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.BackboneList</span></code></a> is assigned to +<li><strong>closed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.BackboneList</span></code></a>) – Passed by reference, so the resulting +<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.BackboneList</span></code></a> is assigned to this parameter.</li> </ul> </td> @@ -477,7 +490,7 @@ this parameter.</li> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Whether closing procedure was successful</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 external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></p> </td> </tr> </tbody> @@ -498,17 +511,17 @@ avoid moving into unfavourable phi/psi ranges.</p> <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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation -should adapt. See <a class="reference internal" href="loop_closing.html#promod3.modelling.CCD.CCD" title="promod3.modelling.CCD.CCD"><code class="xref py py-meth docutils literal notranslate"><span class="pre">CCD()</span></code></a>.</li> -<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation -should adapt. See <a class="reference internal" href="loop_closing.html#promod3.modelling.CCD.CCD" title="promod3.modelling.CCD.CCD"><code class="xref py py-meth docutils literal notranslate"><span class="pre">CCD()</span></code></a>.</li> -<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Sequence of the conformation to be closed.</li> -<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> -of <a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a>) – To enforce valid phi/psi ranges. Alternatively, you +<li><strong>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation +should adapt. See <a class="reference internal" href="loop_closing.html#promod3.modelling.CCD.CCD" title="promod3.modelling.CCD.CCD"><code class="xref py py-meth docutils literal"><span class="pre">CCD()</span></code></a>.</li> +<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation +should adapt. See <a class="reference internal" href="loop_closing.html#promod3.modelling.CCD.CCD" title="promod3.modelling.CCD.CCD"><code class="xref py py-meth docutils literal"><span class="pre">CCD()</span></code></a>.</li> +<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Sequence of the conformation to be closed.</li> +<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/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> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> +of <a class="reference internal" href="../loop/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 enforce valid phi/psi ranges. Alternatively, you can also pass a list of sampler 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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Seed for internal random generators.</li> +<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Seed for internal random generators.</li> </ul> </td> </tr> @@ -522,8 +535,8 @@ conformation to be closed.</li> <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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Conformation to be closed.</li> -<li><strong>closed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Closed conformation gets stored in here.</li> +<li><strong>actual_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Conformation to be closed.</li> +<li><strong>closed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Closed conformation gets stored in here.</li> </ul> </td> </tr> @@ -542,15 +555,15 @@ conformation to be closed.</li> <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. There is no check for reasonable backbone -dihedral angles as it is the case for the <a class="reference internal" href="#promod3.modelling.CCDCloser" title="promod3.modelling.CCDCloser"><code class="xref py py-class docutils literal notranslate"><span class="pre">CCDCloser</span></code></a>.</p> +dihedral angles as it is the case for the <a class="reference internal" href="#promod3.modelling.CCDCloser" title="promod3.modelling.CCDCloser"><code class="xref py py-class docutils literal"><span class="pre">CCDCloser</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>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation +<li><strong>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation should adapt.</li> -<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation +<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation should adapt.</li> </ul> </td> @@ -565,8 +578,8 @@ should adapt.</li> <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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Conformation to be closed.</li> -<li><strong>closed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Closed conformation gets stored in here.</li> +<li><strong>actual_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Conformation to be closed.</li> +<li><strong>closed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Closed conformation gets stored in here.</li> </ul> </td> </tr> @@ -590,11 +603,11 @@ solutions. The KICCloser simply picks the first one.</p> <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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation should +<li><strong>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation should adapt.</li> -<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation should +<li><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation should adapt.</li> -<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Seed for internal random generators.</li> +<li><strong>seed</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Seed for internal random generators.</li> </ul> </td> </tr> @@ -608,8 +621,8 @@ adapt.</li> <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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Conformation to be closed.</li> -<li><strong>closed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Closed conformation gets stored in here.</li> +<li><strong>actual_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Conformation to be closed.</li> +<li><strong>closed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Closed conformation gets stored in here.</li> </ul> </td> </tr> @@ -625,13 +638,13 @@ adapt.</li> <dl class="class"> <dt id="promod3.modelling.NTerminalCloser"> <em class="property">class </em><code class="descclassname">promod3.modelling.</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.modelling.NTerminalCloser" title="Permalink to this definition">¶</a></dt> -<dd><p>The <a class="reference internal" href="#promod3.modelling.NTerminalCloser" title="promod3.modelling.NTerminalCloser"><code class="xref py py-class docutils literal notranslate"><span class="pre">NTerminalCloser</span></code></a> simply takes the conformation and closes by +<dd><p>The <a class="reference internal" href="#promod3.modelling.NTerminalCloser" title="promod3.modelling.NTerminalCloser"><code class="xref py py-class docutils literal"><span class="pre">NTerminalCloser</span></code></a> 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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation should +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>c_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation should adapt.</td> </tr> </tbody> @@ -644,9 +657,9 @@ adapt.</td> <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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Conformation to be closed (or in this case +<li><strong>actual_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Conformation to be closed (or in this case transformed in space).</li> -<li><strong>closed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Closed (transformed) conformation gets stored in +<li><strong>closed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Closed (transformed) conformation gets stored in here.</li> </ul> </td> @@ -663,13 +676,13 @@ here.</li> <dl class="class"> <dt id="promod3.modelling.CTerminalCloser"> <em class="property">class </em><code class="descclassname">promod3.modelling.</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.modelling.CTerminalCloser" title="Permalink to this definition">¶</a></dt> -<dd><p>The <a class="reference internal" href="#promod3.modelling.CTerminalCloser" title="promod3.modelling.CTerminalCloser"><code class="xref py py-class docutils literal notranslate"><span class="pre">CTerminalCloser</span></code></a> simply takes the conformation and closes by +<dd><p>The <a class="reference internal" href="#promod3.modelling.CTerminalCloser" title="promod3.modelling.CTerminalCloser"><code class="xref py py-class docutils literal"><span class="pre">CTerminalCloser</span></code></a> 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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation should +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation should adapt.</td> </tr> </tbody> @@ -682,9 +695,9 @@ adapt.</td> <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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Conformation to be closed (or in this case +<li><strong>actual_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Conformation to be closed (or in this case transformed in space).</li> -<li><strong>closed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Closed (transformed) conformation gets stored in +<li><strong>closed_positions</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Closed (transformed) conformation gets stored in here.</li> </ul> </td> @@ -717,7 +730,7 @@ closer has a rather boring job in this case.</p> <span id="mc-scorer-object"></span><h2>Scorer Object<a class="headerlink" href="#scorer-object" 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. You can either use the provided scorer or any -object implementing the functionality defined in <a class="reference internal" href="#promod3.modelling.ScorerBase" title="promod3.modelling.ScorerBase"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScorerBase</span></code></a>.</p> +object implementing the functionality defined in <a class="reference internal" href="#promod3.modelling.ScorerBase" title="promod3.modelling.ScorerBase"><code class="xref py py-class docutils literal"><span class="pre">ScorerBase</span></code></a>.</p> <dl class="class"> <dt id="promod3.modelling.ScorerBase"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">ScorerBase</code><a class="headerlink" href="#promod3.modelling.ScorerBase" title="Permalink to this definition">¶</a></dt> @@ -732,11 +745,11 @@ environment.</p> <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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.BackboneList</span></code></a>) – Coordinates to be scored</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.BackboneList</span></code></a>) – Coordinates to be scored</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The score</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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -748,15 +761,15 @@ environment.</p> <dt id="promod3.modelling.LinearScorer"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">LinearScorer</code><span class="sig-paren">(</span><em>scorer</em>, <em>scorer_env</em>, <em>start_resnum</em>, <em>num_residues</em>, <em>chain_idx</em>, <em>linear_weights</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.LinearScorer" title="Permalink to this definition">¶</a></dt> <dd><p>The LinearScorer allows to combine the scores available from -<a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer" title="promod3.scoring.BackboneOverallScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneOverallScorer</span></code></a> in a linear manner. See -<a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer.CalculateLinearCombination" title="promod3.scoring.BackboneOverallScorer.CalculateLinearCombination"><code class="xref py py-meth docutils literal notranslate"><span class="pre">CalculateLinearCombination()</span></code></a> for a +<a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer" title="promod3.scoring.BackboneOverallScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneOverallScorer</span></code></a> in a linear manner. See +<a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer.CalculateLinearCombination" title="promod3.scoring.BackboneOverallScorer.CalculateLinearCombination"><code class="xref py py-meth docutils literal"><span class="pre">CalculateLinearCombination()</span></code></a> for a detailed description of the arguments.</p> <div class="admonition warning"> <p class="first admonition-title">Warning</p> <p class="last">The provided <em>scorer_env</em> will be altered in every -<a class="reference internal" href="#promod3.modelling.LinearScorer.GetScore" title="promod3.modelling.LinearScorer.GetScore"><code class="xref py py-func docutils literal notranslate"><span class="pre">GetScore()</span></code></a> call. +<a class="reference internal" href="#promod3.modelling.LinearScorer.GetScore" title="promod3.modelling.LinearScorer.GetScore"><code class="xref py py-func docutils literal"><span class="pre">GetScore()</span></code></a> call. You might consider the Stash / Pop mechanism of the -<a class="reference internal" href="../scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a> to restore to the +<a class="reference internal" href="../scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a> to restore to the original state once the sampling is done.</p> </div> <table class="docutils field-list" frame="void" rules="none"> @@ -764,18 +777,18 @@ original state once the sampling is done.</p> <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="../scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer" title="promod3.scoring.BackboneOverallScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneOverallScorer</span></code></a>) – Scorer Object with set environment for the particular loop +<li><strong>scorer</strong> (<a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer" title="promod3.scoring.BackboneOverallScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneOverallScorer</span></code></a>) – Scorer Object with set environment for the particular loop modelling problem.</li> -<li><strong>scorer_env</strong> (<a class="reference internal" href="../scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a>) – The environment that is linked to the <em>scorer</em></li> -<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Res. number defining the position in the SEQRES.</li> -<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of residues to score</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of chain the loop(s) belong to.</li> -<li><strong>linear_weights</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a> (keys: <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>, -values: <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>)) – Weights for each desired scorer.</li> +<li><strong>scorer_env</strong> (<a class="reference internal" href="../scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a>) – The environment that is linked to the <em>scorer</em></li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Res. number defining the position in the SEQRES.</li> +<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of residues to score</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of chain the loop(s) belong to.</li> +<li><strong>linear_weights</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">dict</span></code></a> (keys: <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>, +values: <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>)) – Weights for each desired scorer.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>linear_weights</em> has a <em>key</em> for +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>linear_weights</em> has a <em>key</em> for which no scorer exists</p> </td> </tr> @@ -788,11 +801,11 @@ which no scorer exists</p> <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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Loop to be scored.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Loop to be scored.</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">A linear combination of the scores</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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -804,10 +817,10 @@ which no scorer exists</p> <div class="section" id="cooler-object"> <span id="mc-cooler-object"></span><h2>Cooler Object<a class="headerlink" href="#cooler-object" title="Permalink to this headline">¶</a></h2> <p>The cooler objects control the temperature of the Monte Carlo trajectory. -They’re intended to deliver steadily decreasing temperatures with calls +They’re intended to deliver steadily decreasing temperatures with calls to their GetTemperature function. You can either use the provided cooler or any object implementing the functionality defined in -<a class="reference internal" href="#promod3.modelling.CoolerBase" title="promod3.modelling.CoolerBase"><code class="xref py py-class docutils literal notranslate"><span class="pre">CoolerBase</span></code></a>.</p> +<a class="reference internal" href="#promod3.modelling.CoolerBase" title="promod3.modelling.CoolerBase"><code class="xref py py-class docutils literal"><span class="pre">CoolerBase</span></code></a>.</p> <dl class="class"> <dt id="promod3.modelling.CoolerBase"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">CoolerBase</code><a class="headerlink" href="#promod3.modelling.CoolerBase" title="Permalink to this definition">¶</a></dt> @@ -822,7 +835,7 @@ cooler.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The Temperature</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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -840,7 +853,7 @@ cooler.</p> <dt id="promod3.modelling.ExponentialCooler"> <em class="property">class </em><code class="descclassname">promod3.modelling.</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.modelling.ExponentialCooler" title="Permalink to this definition">¶</a></dt> <dd><p>The exponential cooler starts with a given <em>start_temperature</em> and counts the -calls to its <a class="reference internal" href="#promod3.modelling.ExponentialCooler.GetTemperature" title="promod3.modelling.ExponentialCooler.GetTemperature"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetTemperature()</span></code></a> function. According to the +calls to its <a class="reference internal" href="#promod3.modelling.ExponentialCooler.GetTemperature" title="promod3.modelling.ExponentialCooler.GetTemperature"><code class="xref py py-meth docutils literal"><span class="pre">GetTemperature()</span></code></a> function. According to the <em>change_frequency</em>, the returned temperature gets multiplied by the <em>cooling_factor</em>.</p> <table class="docutils field-list" frame="void" rules="none"> @@ -848,9 +861,9 @@ calls to its <a class="reference internal" href="#promod3.modelling.ExponentialC <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Frequency to change temperature</li> -<li><strong>start_temperature</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – temperature to start with</li> -<li><strong>cooling_factor</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Factor to decrease temperature</li> +<li><strong>change_frequency</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Frequency to change temperature</li> +<li><strong>start_temperature</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – temperature to start with</li> +<li><strong>cooling_factor</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Factor to decrease temperature</li> </ul> </td> </tr> @@ -888,45 +901,22 @@ internal counter to 0</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Generating Loops De Novo</a><ul> +<li><a class="reference internal" href="#sampler-object">Sampler Object</a></li> +<li><a class="reference internal" href="#closer-object">Closer Object</a></li> +<li><a class="reference internal" href="#scorer-object">Scorer Object</a></li> +<li><a class="reference internal" href="#cooler-object">Cooler Object</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> <li>Previous: <a href="loop_closing.html" title="previous chapter">Fitting Loops Into Gaps</a></li> <li>Next: <a href="sidechain_reconstruction.html" title="next chapter">Sidechain Reconstruction</a></li> </ul></li> @@ -934,26 +924,23 @@ internal counter to 0</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/modelling/monte_carlo.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -962,11 +949,11 @@ internal counter to 0</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/modelling/monte_carlo.rst.txt" + <a href="../_sources/modelling/monte_carlo.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/pipeline.html b/doc/html/modelling/pipeline.html index 88958f472146febd1697cfce3df6fa14ebf560a0..bfbdbc05f16216a2a746c306103be168615c37b6 100644 --- a/doc/html/modelling/pipeline.html +++ b/doc/html/modelling/pipeline.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Modelling Pipeline — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="modelling - Protein Modelling" href="index.html" /> <link rel="next" title="Model Checking" href="model_checking.html" /> <link rel="prev" title="modelling - Protein Modelling" href="index.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -38,23 +51,23 @@ <h1>Modelling Pipeline<a class="headerlink" href="#modelling-pipeline" title="Permalink to this headline">¶</a></h1> <p>A protein homology modelling pipeline has the following main steps:</p> <ul class="simple"> -<li>Build a raw model from the template (see <a class="reference internal" href="#promod3.modelling.BuildRawModel" title="promod3.modelling.BuildRawModel"><code class="xref py py-func docutils literal notranslate"><span class="pre">BuildRawModel()</span></code></a> function)</li> +<li>Build a raw model from the template (see <a class="reference internal" href="#promod3.modelling.BuildRawModel" title="promod3.modelling.BuildRawModel"><code class="xref py py-func docutils literal"><span class="pre">BuildRawModel()</span></code></a> function)</li> <li>Perform loop modelling to close (or remove) all gaps (see functions -<a class="reference internal" href="#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-func docutils literal notranslate"><span class="pre">CloseSmallDeletions()</span></code></a>, <a class="reference internal" href="#promod3.modelling.RemoveTerminalGaps" title="promod3.modelling.RemoveTerminalGaps"><code class="xref py py-func docutils literal notranslate"><span class="pre">RemoveTerminalGaps()</span></code></a>, -<a class="reference internal" href="#promod3.modelling.MergeGapsByDistance" title="promod3.modelling.MergeGapsByDistance"><code class="xref py py-func docutils literal notranslate"><span class="pre">MergeGapsByDistance()</span></code></a>, <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal notranslate"><span class="pre">FillLoopsByDatabase()</span></code></a>, -<a class="reference internal" href="#promod3.modelling.FillLoopsByMonteCarlo" title="promod3.modelling.FillLoopsByMonteCarlo"><code class="xref py py-func docutils literal notranslate"><span class="pre">FillLoopsByMonteCarlo()</span></code></a>, <a class="reference internal" href="#promod3.modelling.CloseLargeDeletions" title="promod3.modelling.CloseLargeDeletions"><code class="xref py py-func docutils literal notranslate"><span class="pre">CloseLargeDeletions()</span></code></a> or -<a class="reference internal" href="#promod3.modelling.CloseGaps" title="promod3.modelling.CloseGaps"><code class="xref py py-func docutils literal notranslate"><span class="pre">CloseGaps()</span></code></a> that calls all these functions using predefined +<a class="reference internal" href="#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-func docutils literal"><span class="pre">CloseSmallDeletions()</span></code></a>, <a class="reference internal" href="#promod3.modelling.RemoveTerminalGaps" title="promod3.modelling.RemoveTerminalGaps"><code class="xref py py-func docutils literal"><span class="pre">RemoveTerminalGaps()</span></code></a>, +<a class="reference internal" href="#promod3.modelling.MergeGapsByDistance" title="promod3.modelling.MergeGapsByDistance"><code class="xref py py-func docutils literal"><span class="pre">MergeGapsByDistance()</span></code></a>, <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal"><span class="pre">FillLoopsByDatabase()</span></code></a>, +<a class="reference internal" href="#promod3.modelling.FillLoopsByMonteCarlo" title="promod3.modelling.FillLoopsByMonteCarlo"><code class="xref py py-func docutils literal"><span class="pre">FillLoopsByMonteCarlo()</span></code></a>, <a class="reference internal" href="#promod3.modelling.CloseLargeDeletions" title="promod3.modelling.CloseLargeDeletions"><code class="xref py py-func docutils literal"><span class="pre">CloseLargeDeletions()</span></code></a> or +<a class="reference internal" href="#promod3.modelling.CloseGaps" title="promod3.modelling.CloseGaps"><code class="xref py py-func docutils literal"><span class="pre">CloseGaps()</span></code></a> that calls all these functions using predefined heuristics)</li> -<li>Build sidechains (see <a class="reference internal" href="#promod3.modelling.BuildSidechains" title="promod3.modelling.BuildSidechains"><code class="xref py py-func docutils literal notranslate"><span class="pre">BuildSidechains()</span></code></a> function)</li> +<li>Build sidechains (see <a class="reference internal" href="#promod3.modelling.BuildSidechains" title="promod3.modelling.BuildSidechains"><code class="xref py py-func docutils literal"><span class="pre">BuildSidechains()</span></code></a> function)</li> <li>Minimize energy of final model using molecular mechanics -(see <a class="reference internal" href="#promod3.modelling.MinimizeModelEnergy" title="promod3.modelling.MinimizeModelEnergy"><code class="xref py py-func docutils literal notranslate"><span class="pre">MinimizeModelEnergy()</span></code></a> function)</li> +(see <a class="reference internal" href="#promod3.modelling.MinimizeModelEnergy" title="promod3.modelling.MinimizeModelEnergy"><code class="xref py py-func docutils literal"><span class="pre">MinimizeModelEnergy()</span></code></a> function)</li> </ul> <p>The last steps to go from a raw model to a final model can easily be executed -with the <a class="reference internal" href="#promod3.modelling.BuildFromRawModel" title="promod3.modelling.BuildFromRawModel"><code class="xref py py-func docutils literal notranslate"><span class="pre">BuildFromRawModel()</span></code></a> function. If you want to run and tweak the +with the <a class="reference internal" href="#promod3.modelling.BuildFromRawModel" title="promod3.modelling.BuildFromRawModel"><code class="xref py py-func docutils literal"><span class="pre">BuildFromRawModel()</span></code></a> function. If you want to run and tweak the internal steps, you can start with the following code and adapt it to your purposes:</p> -<div class="highlight-default notranslate" id="modelling-steps-example"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">io</span> -<span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">modelling</span><span class="p">,</span> <span class="n">loop</span> +<div class="highlight-default" id="modelling-steps-example"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">io</span> +<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">modelling</span><span class="p">,</span> <span class="n">loop</span> <span class="c1"># setup</span> <span class="n">merge_distance</span> <span class="o">=</span> <span class="mi">4</span> @@ -96,21 +109,21 @@ purposes:</p> <dt id="promod3.modelling.ModellingHandle"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">ModellingHandle</code><a class="headerlink" href="#promod3.modelling.ModellingHandle" title="Permalink to this definition">¶</a></dt> <dd><p>Handles the result for structure model building and provides high-level methods -to turn an initial raw model (see <a class="reference internal" href="#promod3.modelling.BuildRawModel" title="promod3.modelling.BuildRawModel"><code class="xref py py-func docutils literal notranslate"><span class="pre">BuildRawModel()</span></code></a>) +to turn an initial raw model (see <a class="reference internal" href="#promod3.modelling.BuildRawModel" title="promod3.modelling.BuildRawModel"><code class="xref py py-func docutils literal"><span class="pre">BuildRawModel()</span></code></a>) into a complete protein model by removing any existing gaps.</p> <dl class="attribute"> <dt id="promod3.modelling.ModellingHandle.model"> <code class="descname">model</code><a class="headerlink" href="#promod3.modelling.ModellingHandle.model" title="Permalink to this definition">¶</a></dt> <dd><p>The resulting model. This includes one chain per target chain (in the same -order as the sequences in <a class="reference internal" href="#promod3.modelling.ModellingHandle.seqres" title="promod3.modelling.ModellingHandle.seqres"><code class="xref py py-attr docutils literal notranslate"><span class="pre">seqres</span></code></a>) and (if they were included) a -chain named ‘_’ for ligands. You can therefore access <cite>model.chains</cite> items -and <a class="reference internal" href="#promod3.modelling.ModellingHandle.seqres" title="promod3.modelling.ModellingHandle.seqres"><code class="xref py py-attr docutils literal notranslate"><span class="pre">seqres</span></code></a> items with the same indexing and the optional ligand +order as the sequences in <a class="reference internal" href="#promod3.modelling.ModellingHandle.seqres" title="promod3.modelling.ModellingHandle.seqres"><code class="xref py py-attr docutils literal"><span class="pre">seqres</span></code></a>) and (if they were included) a +chain named ‘_’ for ligands. You can therefore access <cite>model.chains</cite> items +and <a class="reference internal" href="#promod3.modelling.ModellingHandle.seqres" title="promod3.modelling.ModellingHandle.seqres"><code class="xref py py-attr docutils literal"><span class="pre">seqres</span></code></a> items with the same indexing and the optional ligand chain follows afterwards.</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://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">EntityHandle</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">EntityHandle</span></code></a></td> </tr> </tbody> </table> @@ -127,7 +140,7 @@ Gaps of different chains are appended one after another.</p> <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="gap_handling.html#promod3.modelling.StructuralGapList" title="promod3.modelling.StructuralGapList"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructuralGapList</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference internal" href="gap_handling.html#promod3.modelling.StructuralGapList" title="promod3.modelling.StructuralGapList"><code class="xref py py-class docutils literal"><span class="pre">StructuralGapList</span></code></a></td> </tr> </tbody> </table> @@ -136,13 +149,13 @@ Gaps of different chains are appended one after another.</p> <dl class="attribute"> <dt id="promod3.modelling.ModellingHandle.seqres"> <code class="descname">seqres</code><a class="headerlink" href="#promod3.modelling.ModellingHandle.seqres" title="Permalink to this definition">¶</a></dt> -<dd><p>List of sequences with one <a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">SequenceHandle</span></code></a> for each chain +<dd><p>List of sequences with one <a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">SequenceHandle</span></code></a> for each chain of the target protein.</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://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.SequenceList" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">SequenceList</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.SequenceList" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">SequenceList</span></code></a></td> </tr> </tbody> </table> @@ -151,16 +164,16 @@ of the target protein.</p> <dl class="attribute"> <dt id="promod3.modelling.ModellingHandle.profiles"> <code class="descname">profiles</code><a class="headerlink" href="#promod3.modelling.ModellingHandle.profiles" title="Permalink to this definition">¶</a></dt> -<dd><p>List of profiles with one <a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.ProfileHandle</span></code></a> for each chain of -the target protein (same order as in <a class="reference internal" href="#promod3.modelling.ModellingHandle.seqres" title="promod3.modelling.ModellingHandle.seqres"><code class="xref py py-attr docutils literal notranslate"><span class="pre">seqres</span></code></a>). Please note, that this -attribute won’t be set by simply calling <a class="reference internal" href="#promod3.modelling.BuildFromRawModel" title="promod3.modelling.BuildFromRawModel"><code class="xref py py-func docutils literal notranslate"><span class="pre">BuildFromRawModel()</span></code></a>. You have +<dd><p>List of profiles with one <a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a> for each chain of +the target protein (same order as in <a class="reference internal" href="#promod3.modelling.ModellingHandle.seqres" title="promod3.modelling.ModellingHandle.seqres"><code class="xref py py-attr docutils literal"><span class="pre">seqres</span></code></a>). Please note, that this +attribute won’t be set by simply calling <a class="reference internal" href="#promod3.modelling.BuildFromRawModel" title="promod3.modelling.BuildFromRawModel"><code class="xref py py-func docutils literal"><span class="pre">BuildFromRawModel()</span></code></a>. You have to fill it manually or even better by the convenient function -<a class="reference internal" href="#promod3.modelling.SetSequenceProfiles" title="promod3.modelling.SetSequenceProfiles"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetSequenceProfiles()</span></code></a>, to ensure consistency with the seqres.</p> +<a class="reference internal" href="#promod3.modelling.SetSequenceProfiles" title="promod3.modelling.SetSequenceProfiles"><code class="xref py py-func docutils literal"><span class="pre">SetSequenceProfiles()</span></code></a>, to ensure consistency with the 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">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.ProfileHandle</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a></td> </tr> </tbody> </table> @@ -169,17 +182,17 @@ to fill it manually or even better by the convenient function <dl class="attribute"> <dt id="promod3.modelling.ModellingHandle.psipred_predictions"> <code class="descname">psipred_predictions</code><a class="headerlink" href="#promod3.modelling.ModellingHandle.psipred_predictions" title="Permalink to this definition">¶</a></dt> -<dd><p>List of predictions with one <a class="reference internal" href="../loop/structure_db.html#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.PsipredPrediction</span></code></a> for -each chain of the target protein (same order as in <a class="reference internal" href="#promod3.modelling.ModellingHandle.seqres" title="promod3.modelling.ModellingHandle.seqres"><code class="xref py py-attr docutils literal notranslate"><span class="pre">seqres</span></code></a>). Please -note, that this attribute won’t be set by simply calling -<a class="reference internal" href="#promod3.modelling.BuildFromRawModel" title="promod3.modelling.BuildFromRawModel"><code class="xref py py-func docutils literal notranslate"><span class="pre">BuildFromRawModel()</span></code></a>. You have to fill it manually or even better by -the convenient function <a class="reference internal" href="#promod3.modelling.SetPsipredPredictions" title="promod3.modelling.SetPsipredPredictions"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetPsipredPredictions()</span></code></a>, to ensure +<dd><p>List of predictions with one <a class="reference internal" href="../loop/structure_db.html#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.PsipredPrediction</span></code></a> for +each chain of the target protein (same order as in <a class="reference internal" href="#promod3.modelling.ModellingHandle.seqres" title="promod3.modelling.ModellingHandle.seqres"><code class="xref py py-attr docutils literal"><span class="pre">seqres</span></code></a>). Please +note, that this attribute won’t be set by simply calling +<a class="reference internal" href="#promod3.modelling.BuildFromRawModel" title="promod3.modelling.BuildFromRawModel"><code class="xref py py-func docutils literal"><span class="pre">BuildFromRawModel()</span></code></a>. You have to fill it manually or even better by +the convenient function <a class="reference internal" href="#promod3.modelling.SetPsipredPredictions" title="promod3.modelling.SetPsipredPredictions"><code class="xref py py-func docutils literal"><span class="pre">SetPsipredPredictions()</span></code></a>, to ensure consistency with the 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">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="../loop/structure_db.html#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal notranslate"><span class="pre">PsipredPrediction</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="../loop/structure_db.html#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal"><span class="pre">PsipredPrediction</span></code></a></td> </tr> </tbody> </table> @@ -189,14 +202,14 @@ consistency with the seqres.</p> <dt id="promod3.modelling.ModellingHandle.backbone_scorer_env"> <code class="descname">backbone_scorer_env</code><a class="headerlink" href="#promod3.modelling.ModellingHandle.backbone_scorer_env" title="Permalink to this definition">¶</a></dt> <dd><p>Backbone score environment attached to this handle. A default environment is -set with <a class="reference internal" href="#promod3.modelling.SetupDefaultBackboneScoring" title="promod3.modelling.SetupDefaultBackboneScoring"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetupDefaultBackboneScoring()</span></code></a> when needed. Additional +set with <a class="reference internal" href="#promod3.modelling.SetupDefaultBackboneScoring" title="promod3.modelling.SetupDefaultBackboneScoring"><code class="xref py py-func docutils literal"><span class="pre">SetupDefaultBackboneScoring()</span></code></a> when needed. Additional information can be added to the environment before running the pipeline steps.</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="../scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference internal" href="../scoring/backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a></td> </tr> </tbody> </table> @@ -206,12 +219,12 @@ steps.</p> <dt id="promod3.modelling.ModellingHandle.backbone_scorer"> <code class="descname">backbone_scorer</code><a class="headerlink" href="#promod3.modelling.ModellingHandle.backbone_scorer" title="Permalink to this definition">¶</a></dt> <dd><p>Backbone scorer container attached to this handle. A default set of scorers -is initialized with <a class="reference internal" href="#promod3.modelling.SetupDefaultBackboneScoring" title="promod3.modelling.SetupDefaultBackboneScoring"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetupDefaultBackboneScoring()</span></code></a> when needed.</p> +is initialized with <a class="reference internal" href="#promod3.modelling.SetupDefaultBackboneScoring" title="promod3.modelling.SetupDefaultBackboneScoring"><code class="xref py py-func docutils literal"><span class="pre">SetupDefaultBackboneScoring()</span></code></a> when needed.</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="../scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer" title="promod3.scoring.BackboneOverallScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneOverallScorer</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.BackboneOverallScorer" title="promod3.scoring.BackboneOverallScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneOverallScorer</span></code></a></td> </tr> </tbody> </table> @@ -221,14 +234,14 @@ is initialized with <a class="reference internal" href="#promod3.modelling.Setup <dt id="promod3.modelling.ModellingHandle.all_atom_scorer_env"> <code class="descname">all_atom_scorer_env</code><a class="headerlink" href="#promod3.modelling.ModellingHandle.all_atom_scorer_env" title="Permalink to this definition">¶</a></dt> <dd><p>All atom environment attached to this handle for scoring. A default -environment is set with <a class="reference internal" href="#promod3.modelling.SetupDefaultAllAtomScoring" title="promod3.modelling.SetupDefaultAllAtomScoring"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetupDefaultAllAtomScoring()</span></code></a> when needed. This +environment is set with <a class="reference internal" href="#promod3.modelling.SetupDefaultAllAtomScoring" title="promod3.modelling.SetupDefaultAllAtomScoring"><code class="xref py py-func docutils literal"><span class="pre">SetupDefaultAllAtomScoring()</span></code></a> when needed. This environment is for temporary work only and is only updated to score loops. It is not to be updated when loops are chosen and added to the final model.</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="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnv</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnv</span></code></a></td> </tr> </tbody> </table> @@ -238,12 +251,12 @@ It is not to be updated when loops are chosen and added to the final model.</p> <dt id="promod3.modelling.ModellingHandle.all_atom_scorer"> <code class="descname">all_atom_scorer</code><a class="headerlink" href="#promod3.modelling.ModellingHandle.all_atom_scorer" title="Permalink to this definition">¶</a></dt> <dd><p>All atom scorer container attached to this handle. A default set of scorers -is initialized with <a class="reference internal" href="#promod3.modelling.SetupDefaultAllAtomScoring" title="promod3.modelling.SetupDefaultAllAtomScoring"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetupDefaultAllAtomScoring()</span></code></a> when needed.</p> +is initialized with <a class="reference internal" href="#promod3.modelling.SetupDefaultAllAtomScoring" title="promod3.modelling.SetupDefaultAllAtomScoring"><code class="xref py py-func docutils literal"><span class="pre">SetupDefaultAllAtomScoring()</span></code></a> when needed.</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="../scoring/all_atom_scorers.html#promod3.scoring.AllAtomOverallScorer" title="promod3.scoring.AllAtomOverallScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomOverallScorer</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference internal" href="../scoring/all_atom_scorers.html#promod3.scoring.AllAtomOverallScorer" title="promod3.scoring.AllAtomOverallScorer"><code class="xref py py-class docutils literal"><span class="pre">AllAtomOverallScorer</span></code></a></td> </tr> </tbody> </table> @@ -253,13 +266,13 @@ is initialized with <a class="reference internal" href="#promod3.modelling.Setup <dt id="promod3.modelling.ModellingHandle.all_atom_sidechain_env"> <code class="descname">all_atom_sidechain_env</code><a class="headerlink" href="#promod3.modelling.ModellingHandle.all_atom_sidechain_env" title="Permalink to this definition">¶</a></dt> <dd><p>All atom environment attached to this handle for sidechain reconstruction. A -default environment is set with <a class="reference internal" href="#promod3.modelling.SetupDefaultAllAtomScoring" title="promod3.modelling.SetupDefaultAllAtomScoring"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetupDefaultAllAtomScoring()</span></code></a> when +default environment is set with <a class="reference internal" href="#promod3.modelling.SetupDefaultAllAtomScoring" title="promod3.modelling.SetupDefaultAllAtomScoring"><code class="xref py py-func docutils literal"><span class="pre">SetupDefaultAllAtomScoring()</span></code></a> when needed.</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="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnv</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnv</span></code></a></td> </tr> </tbody> </table> @@ -269,13 +282,13 @@ needed.</p> <dt id="promod3.modelling.ModellingHandle.sidechain_reconstructor"> <code class="descname">sidechain_reconstructor</code><a class="headerlink" href="#promod3.modelling.ModellingHandle.sidechain_reconstructor" title="Permalink to this definition">¶</a></dt> <dd><p>A sidechain reconstructor to add sidechains to loops prior to all atom -scoring. A default one is set with <a class="reference internal" href="#promod3.modelling.SetupDefaultAllAtomScoring" title="promod3.modelling.SetupDefaultAllAtomScoring"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetupDefaultAllAtomScoring()</span></code></a> when +scoring. A default one is set with <a class="reference internal" href="#promod3.modelling.SetupDefaultAllAtomScoring" title="promod3.modelling.SetupDefaultAllAtomScoring"><code class="xref py py-func docutils literal"><span class="pre">SetupDefaultAllAtomScoring()</span></code></a> when needed.</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="sidechain_reconstruction.html#promod3.modelling.SidechainReconstructor" title="promod3.modelling.SidechainReconstructor"><code class="xref py py-class docutils literal notranslate"><span class="pre">SidechainReconstructor</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference internal" href="sidechain_reconstruction.html#promod3.modelling.SidechainReconstructor" title="promod3.modelling.SidechainReconstructor"><code class="xref py py-class docutils literal"><span class="pre">SidechainReconstructor</span></code></a></td> </tr> </tbody> </table> @@ -284,14 +297,14 @@ needed.</p> <dl class="attribute"> <dt id="promod3.modelling.ModellingHandle.fragger_handles"> <code class="descname">fragger_handles</code><a class="headerlink" href="#promod3.modelling.ModellingHandle.fragger_handles" title="Permalink to this definition">¶</a></dt> -<dd><p>Optional attribute which is set in <a class="reference internal" href="#promod3.modelling.SetFraggerHandles" title="promod3.modelling.SetFraggerHandles"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetFraggerHandles()</span></code></a>. Use -<code class="xref py py-meth docutils literal notranslate"><span class="pre">hasattr()</span></code> to check if it’s available. If it’s set, it is used in -<a class="reference internal" href="#promod3.modelling.BuildFromRawModel" title="promod3.modelling.BuildFromRawModel"><code class="xref py py-meth docutils literal notranslate"><span class="pre">BuildFromRawModel()</span></code></a>.</p> +<dd><p>Optional attribute which is set in <a class="reference internal" href="#promod3.modelling.SetFraggerHandles" title="promod3.modelling.SetFraggerHandles"><code class="xref py py-meth docutils literal"><span class="pre">SetFraggerHandles()</span></code></a>. Use +<code class="xref py py-meth docutils literal"><span class="pre">hasattr()</span></code> to check if it’s available. If it’s set, it is used in +<a class="reference internal" href="#promod3.modelling.BuildFromRawModel" title="promod3.modelling.BuildFromRawModel"><code class="xref py py-meth docutils literal"><span class="pre">BuildFromRawModel()</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">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">FraggerHandle</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal"><span class="pre">FraggerHandle</span></code></a></td> </tr> </tbody> </table> @@ -300,15 +313,15 @@ needed.</p> <dl class="attribute"> <dt id="promod3.modelling.ModellingHandle.modelling_issues"> <code class="descname">modelling_issues</code><a class="headerlink" href="#promod3.modelling.ModellingHandle.modelling_issues" title="Permalink to this definition">¶</a></dt> -<dd><p>Optional attribute which is set in <a class="reference internal" href="#promod3.modelling.AddModellingIssue" title="promod3.modelling.AddModellingIssue"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AddModellingIssue()</span></code></a>. Use -<code class="xref py py-meth docutils literal notranslate"><span class="pre">hasattr()</span></code> to check if it’s available. If it’s set, it can be used to -check issues which occurred in <a class="reference internal" href="#promod3.modelling.BuildFromRawModel" title="promod3.modelling.BuildFromRawModel"><code class="xref py py-meth docutils literal notranslate"><span class="pre">BuildFromRawModel()</span></code></a> (see -<a class="reference internal" href="#promod3.modelling.MinimizeModelEnergy" title="promod3.modelling.MinimizeModelEnergy"><code class="xref py py-meth docutils literal notranslate"><span class="pre">MinimizeModelEnergy()</span></code></a> and <a class="reference internal" href="#promod3.modelling.CheckFinalModel" title="promod3.modelling.CheckFinalModel"><code class="xref py py-meth docutils literal notranslate"><span class="pre">CheckFinalModel()</span></code></a> for details).</p> +<dd><p>Optional attribute which is set in <a class="reference internal" href="#promod3.modelling.AddModellingIssue" title="promod3.modelling.AddModellingIssue"><code class="xref py py-meth docutils literal"><span class="pre">AddModellingIssue()</span></code></a>. Use +<code class="xref py py-meth docutils literal"><span class="pre">hasattr()</span></code> to check if it’s available. If it’s set, it can be used to +check issues which occurred in <a class="reference internal" href="#promod3.modelling.BuildFromRawModel" title="promod3.modelling.BuildFromRawModel"><code class="xref py py-meth docutils literal"><span class="pre">BuildFromRawModel()</span></code></a> (see +<a class="reference internal" href="#promod3.modelling.MinimizeModelEnergy" title="promod3.modelling.MinimizeModelEnergy"><code class="xref py py-meth docutils literal"><span class="pre">MinimizeModelEnergy()</span></code></a> and <a class="reference internal" href="#promod3.modelling.CheckFinalModel" title="promod3.modelling.CheckFinalModel"><code class="xref py py-meth docutils literal"><span class="pre">CheckFinalModel()</span></code></a> for details).</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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.modelling.ModellingIssue" title="promod3.modelling.ModellingIssue"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingIssue</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.modelling.ModellingIssue" title="promod3.modelling.ModellingIssue"><code class="xref py py-class docutils literal"><span class="pre">ModellingIssue</span></code></a></td> </tr> </tbody> </table> @@ -318,20 +331,20 @@ check issues which occurred in <a class="reference internal" href="#promod3.mode <dt id="promod3.modelling.ModellingHandle.Copy"> <code class="descname">Copy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.ModellingHandle.Copy" title="Permalink to this definition">¶</a></dt> <dd><p>Generates a deep copy. Everything will be copied over to the returned -<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>, except the potentially set scoring members -<a class="reference internal" href="#promod3.modelling.ModellingHandle.backbone_scorer" title="promod3.modelling.ModellingHandle.backbone_scorer"><code class="xref py py-attr docutils literal notranslate"><span class="pre">backbone_scorer</span></code></a>, -<a class="reference internal" href="#promod3.modelling.ModellingHandle.backbone_scorer_env" title="promod3.modelling.ModellingHandle.backbone_scorer_env"><code class="xref py py-attr docutils literal notranslate"><span class="pre">backbone_scorer_env</span></code></a>, -<a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_scorer_env" title="promod3.modelling.ModellingHandle.all_atom_scorer_env"><code class="xref py py-attr docutils literal notranslate"><span class="pre">all_atom_scorer_env</span></code></a>, -<a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_scorer" title="promod3.modelling.ModellingHandle.all_atom_scorer"><code class="xref py py-attr docutils literal notranslate"><span class="pre">all_atom_scorer</span></code></a>, -<a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_sidechain_env" title="promod3.modelling.ModellingHandle.all_atom_sidechain_env"><code class="xref py py-attr docutils literal notranslate"><span class="pre">all_atom_sidechain_env</span></code></a> and -<a class="reference internal" href="#promod3.modelling.ModellingHandle.sidechain_reconstructor" title="promod3.modelling.ModellingHandle.sidechain_reconstructor"><code class="xref py py-attr docutils literal notranslate"><span class="pre">sidechain_reconstructor</span></code></a>.</p> +<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>, except the potentially set scoring members +<a class="reference internal" href="#promod3.modelling.ModellingHandle.backbone_scorer" title="promod3.modelling.ModellingHandle.backbone_scorer"><code class="xref py py-attr docutils literal"><span class="pre">backbone_scorer</span></code></a>, +<a class="reference internal" href="#promod3.modelling.ModellingHandle.backbone_scorer_env" title="promod3.modelling.ModellingHandle.backbone_scorer_env"><code class="xref py py-attr docutils literal"><span class="pre">backbone_scorer_env</span></code></a>, +<a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_scorer_env" title="promod3.modelling.ModellingHandle.all_atom_scorer_env"><code class="xref py py-attr docutils literal"><span class="pre">all_atom_scorer_env</span></code></a>, +<a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_scorer" title="promod3.modelling.ModellingHandle.all_atom_scorer"><code class="xref py py-attr docutils literal"><span class="pre">all_atom_scorer</span></code></a>, +<a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_sidechain_env" title="promod3.modelling.ModellingHandle.all_atom_sidechain_env"><code class="xref py py-attr docutils literal"><span class="pre">all_atom_sidechain_env</span></code></a> and +<a class="reference internal" href="#promod3.modelling.ModellingHandle.sidechain_reconstructor" title="promod3.modelling.ModellingHandle.sidechain_reconstructor"><code class="xref py py-attr docutils literal"><span class="pre">sidechain_reconstructor</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">A deep copy of the current handle</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a></td> </tr> </tbody> </table> @@ -347,7 +360,7 @@ alignment handle or an alignment handle list. Every list item is treated as a single chain in the final raw model.</p> <p>Each alignment handle must contain exactly two sequences and the second sequence is considered the template sequence, which must have a -<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">EntityView</span></code></a> attached.</p> +<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">EntityView</span></code></a> attached.</p> <p>This is a basic protein core modelling algorithm that copies backbone coordinates based on the sequence alignment. For matching residues, the side chain coordinates are also copied. Gaps are ignored. Hydrogen an @@ -368,40 +381,40 @@ return an empty model.</p> <p>Residue numbers are set such that missing residue in gaps are honoured and subsequent loop modelling can insert new residues without having to renumber. <strong>The numbering of residues starts for every chain with the value 1</strong>.</p> -<p>The returned <a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a> stores the obtained raw model as well +<p>The returned <a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a> stores the obtained raw model as well as information about insertions and deletions in the gaps 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 simple"> -<li><strong>aln</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.AlignmentHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">AlignmentHandle</span></code></a> / <code class="xref py py-class docutils literal notranslate"><span class="pre">AlignmentList</span></code>) – Single alignment handle for raw model with single chain or +<li><strong>aln</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.AlignmentHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">AlignmentHandle</span></code></a> / <code class="xref py py-class docutils literal"><span class="pre">AlignmentList</span></code>) – Single alignment handle for raw model with single chain or list of alignment handles for raw model with multiple chains.</li> -<li><strong>include_ligands</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True, if we wish to include ligands in the model. This +<li><strong>include_ligands</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True, if we wish to include ligands in the model. This searches for ligands in all OST handles of the views attached to the alignments. Ligands are identified with the <cite>ligand</cite> property in the handle (set by OST -based on HET records) or by the chain name ‘_’ (as set +based on HET records) or by the chain name ‘_’ (as set in SMTL). All ligands are added to a new chain named -‘_’.</li> -<li><strong>chain_names</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Chains are named by a single chanacter taken from this.</li> -<li><strong>spdbv_style</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True, if we need a model in the old SPDBV style.</li> +‘_’.</li> +<li><strong>chain_names</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Chains are named by a single chanacter taken from this.</li> +<li><strong>spdbv_style</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True, if we need a model in the old SPDBV style.</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Raw (pseudo) model from the alignment.</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a></p> </td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first">A <a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#RuntimeError" title="(in Python v3.6)"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> when:</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first">A <a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#RuntimeError" title="(in Python v3.6)"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code></a> when:</p> <ul class="last simple"> <li>the alignments do not have two sequences</li> <li>the second sequence does not have an attached structure</li> <li>the residues of the template structure do not match with the -alignment sequence (note that you can set an “offset” (see -<a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.AlignmentHandle.SetSequenceOffset" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetSequenceOffset()</span></code></a>) for the +alignment sequence (note that you can set an “offset” (see +<a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.AlignmentHandle.SetSequenceOffset" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">SetSequenceOffset()</span></code></a>) for the template sequence (but not for the target))</li> <li>the target sequence has a non-zero offset (cannot be honored as the resulting model will always start its residue numbering at 1)</li> @@ -418,7 +431,7 @@ the resulting model will always start its residue numbering at 1)</li> <dl class="function"> <dt id="promod3.modelling.BuildFromRawModel"> <code class="descclassname">promod3.modelling.</code><code class="descname">BuildFromRawModel</code><span class="sig-paren">(</span><em>mhandle</em>, <em>use_amber_ff=False</em>, <em>extra_force_fields=[]</em>, <em>model_termini=False</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.BuildFromRawModel" title="Permalink to this definition">¶</a></dt> -<dd><p>Build a model starting with a raw model (see <a class="reference internal" href="#promod3.modelling.BuildRawModel" title="promod3.modelling.BuildRawModel"><code class="xref py py-func docutils literal notranslate"><span class="pre">BuildRawModel()</span></code></a>).</p> +<dd><p>Build a model starting with a raw model (see <a class="reference internal" href="#promod3.modelling.BuildRawModel" title="promod3.modelling.BuildRawModel"><code class="xref py py-func docutils literal"><span class="pre">BuildRawModel()</span></code></a>).</p> <p>This function implements a recommended pipeline to generate complete models from a raw model. The steps are shown in detail in the code example <a class="reference internal" href="#modelling-steps-example"><span class="std std-ref">above</span></a>. If you wish to use your own @@ -426,14 +439,14 @@ pipeline, you can use that code as a starting point for your own custom modelling pipeline. For reproducibility, we recommend that you keep copies of custom pipelines.</p> <p>To adapt the scoring used during loop closing, you can call -<a class="reference internal" href="#promod3.modelling.SetupDefaultBackboneScoring" title="promod3.modelling.SetupDefaultBackboneScoring"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetupDefaultBackboneScoring()</span></code></a> and <a class="reference internal" href="#promod3.modelling.SetupDefaultAllAtomScoring" title="promod3.modelling.SetupDefaultAllAtomScoring"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetupDefaultAllAtomScoring()</span></code></a> +<a class="reference internal" href="#promod3.modelling.SetupDefaultBackboneScoring" title="promod3.modelling.SetupDefaultBackboneScoring"><code class="xref py py-func docutils literal"><span class="pre">SetupDefaultBackboneScoring()</span></code></a> and <a class="reference internal" href="#promod3.modelling.SetupDefaultAllAtomScoring" title="promod3.modelling.SetupDefaultAllAtomScoring"><code class="xref py py-func docutils literal"><span class="pre">SetupDefaultAllAtomScoring()</span></code></a> and adapt the default scoring members. Alternatively, you can setup the scoring manually, but you must ensure consistency yourself!</p> <p>By default, a simple backbone dihedral sampling is performed when entering -Monte Carlo. If <em>mhandle</em> has a list of <a class="reference internal" href="algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">FraggerHandle</span></code></a> objects -attached as “fragger_handles” attribute, the sampling will be performed with +Monte Carlo. If <em>mhandle</em> has a list of <a class="reference internal" href="algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal"><span class="pre">FraggerHandle</span></code></a> objects +attached as “fragger_handles” attribute, the sampling will be performed with structural fragments. To ensure consistency, the fragger handles should be -attached using <a class="reference internal" href="#promod3.modelling.SetFraggerHandles" title="promod3.modelling.SetFraggerHandles"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetFraggerHandles()</span></code></a>. +attached using <a class="reference internal" href="#promod3.modelling.SetFraggerHandles" title="promod3.modelling.SetFraggerHandles"><code class="xref py py-meth docutils literal"><span class="pre">SetFraggerHandles()</span></code></a>. But be aware of increased runtime due to the fragment search step.</p> <p>If the function fails to close all gaps, it will produce a warning and return an incomplete model.</p> @@ -442,20 +455,20 @@ return an incomplete model.</p> <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>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – The prepared template coordinates loaded with the input +<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – The prepared template coordinates loaded with the input alignment.</li> -<li><strong>use_amber_ff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – if True, use the AMBER force field instead of the def. -CHARMM one (see <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/forcefield/#ost.mol.mm.LoadAMBERForcefield" title="(in OpenStructure v1.11.0)"><code class="xref py py-func docutils literal notranslate"><span class="pre">ost.mol.mm.LoadAMBERForcefield()</span></code></a> -and <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/forcefield/#ost.mol.mm.LoadCHARMMForcefield" title="(in OpenStructure v1.11.0)"><code class="xref py py-func docutils literal notranslate"><span class="pre">ost.mol.mm.LoadCHARMMForcefield()</span></code></a>). +<li><strong>use_amber_ff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – if True, use the AMBER force field instead of the def. +CHARMM one (see <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/forcefield/#ost.mol.mm.LoadAMBERForcefield" title="(in OpenStructure v2.0.0)"><code class="xref py py-func docutils literal"><span class="pre">ost.mol.mm.LoadAMBERForcefield()</span></code></a> +and <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/forcefield/#ost.mol.mm.LoadCHARMMForcefield" title="(in OpenStructure v2.0.0)"><code class="xref py py-func docutils literal"><span class="pre">ost.mol.mm.LoadCHARMMForcefield()</span></code></a>). Both do a similarly good job without ligands (CHARMM slightly better), but you will want to be consistent with the optional force fields in <cite>extra_force_fields</cite>.</li> -<li><strong>extra_force_fields</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/forcefield/#ost.mol.mm.Forcefield" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.mm.Forcefield</span></code></a>) – Additional list of force fields to use if a +<li><strong>extra_force_fields</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/forcefield/#ost.mol.mm.Forcefield" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.mm.Forcefield</span></code></a>) – Additional list of force fields to use if a (ligand) residue cannot be parametrized with the default force field. The force fields are tried in the order as given and ligands without an existing parametrization are skipped.</li> -<li><strong>model_termini</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – The default modelling pipeline in ProMod3 is optimized +<li><strong>model_termini</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – The default modelling pipeline in ProMod3 is optimized to generate a gap-free model of the region in the target sequence(s) that is covered with template information. Terminal extensions without template @@ -464,14 +477,14 @@ You can activate this flag to enforce a model of the full target sequence(s). The terminal parts will be modelled with a crude Monte Carlo approach. Be aware that the accuracy of those termini is likely to be -limited. Termini of length 1 won’t be modelled.</li> +limited. Termini of length 1 won’t be modelled.</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Delivers the model as an OST entity.</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 external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Entity</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Entity</span></code></a></p> </td> </tr> </tbody> @@ -488,21 +501,21 @@ limited. Termini of length 1 won’t be modelled.</li> This one is already tailored towards a certain modelling job. The scorers added (with their respective keys) are:</p> <ul class="simple"> -<li>“cb_packing”: <a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer" title="promod3.scoring.CBPackingScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">CBPackingScorer</span></code></a></li> -<li>“cbeta”: <a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.CBetaScorer" title="promod3.scoring.CBetaScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">CBetaScorer</span></code></a></li> -<li>“reduced”: <a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.ReducedScorer" title="promod3.scoring.ReducedScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">ReducedScorer</span></code></a></li> -<li>“clash”: <a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.ClashScorer" title="promod3.scoring.ClashScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">ClashScorer</span></code></a></li> -<li>“hbond”: <a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.HBondScorer" title="promod3.scoring.HBondScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">HBondScorer</span></code></a></li> -<li>“torsion”: <a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.TorsionScorer" title="promod3.scoring.TorsionScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionScorer</span></code></a></li> -<li>“pairwise”: <a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.PairwiseScorer" title="promod3.scoring.PairwiseScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">PairwiseScorer</span></code></a></li> +<li>“cb_packing”: <a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer" title="promod3.scoring.CBPackingScorer"><code class="xref py py-class docutils literal"><span class="pre">CBPackingScorer</span></code></a></li> +<li>“cbeta”: <a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.CBetaScorer" title="promod3.scoring.CBetaScorer"><code class="xref py py-class docutils literal"><span class="pre">CBetaScorer</span></code></a></li> +<li>“reduced”: <a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.ReducedScorer" title="promod3.scoring.ReducedScorer"><code class="xref py py-class docutils literal"><span class="pre">ReducedScorer</span></code></a></li> +<li>“clash”: <a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.ClashScorer" title="promod3.scoring.ClashScorer"><code class="xref py py-class docutils literal"><span class="pre">ClashScorer</span></code></a></li> +<li>“hbond”: <a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.HBondScorer" title="promod3.scoring.HBondScorer"><code class="xref py py-class docutils literal"><span class="pre">HBondScorer</span></code></a></li> +<li>“torsion”: <a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.TorsionScorer" title="promod3.scoring.TorsionScorer"><code class="xref py py-class docutils literal"><span class="pre">TorsionScorer</span></code></a></li> +<li>“pairwise”: <a class="reference internal" href="../scoring/backbone_scorers.html#promod3.scoring.PairwiseScorer" title="promod3.scoring.PairwiseScorer"><code class="xref py py-class docutils literal"><span class="pre">PairwiseScorer</span></code></a></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"><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – The modelling handle. This will set the properties -<a class="reference internal" href="#promod3.modelling.ModellingHandle.backbone_scorer" title="promod3.modelling.ModellingHandle.backbone_scorer"><code class="xref py py-attr docutils literal notranslate"><span class="pre">backbone_scorer</span></code></a> and -<a class="reference internal" href="#promod3.modelling.ModellingHandle.backbone_scorer_env" title="promod3.modelling.ModellingHandle.backbone_scorer_env"><code class="xref py py-attr docutils literal notranslate"><span class="pre">backbone_scorer_env</span></code></a> of <cite>mhandle</cite>.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – The modelling handle. This will set the properties +<a class="reference internal" href="#promod3.modelling.ModellingHandle.backbone_scorer" title="promod3.modelling.ModellingHandle.backbone_scorer"><code class="xref py py-attr docutils literal"><span class="pre">backbone_scorer</span></code></a> and +<a class="reference internal" href="#promod3.modelling.ModellingHandle.backbone_scorer_env" title="promod3.modelling.ModellingHandle.backbone_scorer_env"><code class="xref py py-attr docutils literal"><span class="pre">backbone_scorer_env</span></code></a> of <cite>mhandle</cite>.</td> </tr> </tbody> </table> @@ -515,12 +528,12 @@ The scorers added (with their respective keys) are:</p> <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">True, if <a class="reference internal" href="#promod3.modelling.ModellingHandle.backbone_scorer" title="promod3.modelling.ModellingHandle.backbone_scorer"><code class="xref py py-attr docutils literal notranslate"><span class="pre">backbone_scorer</span></code></a> and -<a class="reference internal" href="#promod3.modelling.ModellingHandle.backbone_scorer_env" title="promod3.modelling.ModellingHandle.backbone_scorer_env"><code class="xref py py-attr docutils literal notranslate"><span class="pre">backbone_scorer_env</span></code></a> of <cite>mhandle</cite> are set.</td> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, if <a class="reference internal" href="#promod3.modelling.ModellingHandle.backbone_scorer" title="promod3.modelling.ModellingHandle.backbone_scorer"><code class="xref py py-attr docutils literal"><span class="pre">backbone_scorer</span></code></a> and +<a class="reference internal" href="#promod3.modelling.ModellingHandle.backbone_scorer_env" title="promod3.modelling.ModellingHandle.backbone_scorer_env"><code class="xref py py-attr docutils literal"><span class="pre">backbone_scorer_env</span></code></a> of <cite>mhandle</cite> are set.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle to check.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle to check.</td> </tr> </tbody> </table> @@ -534,19 +547,19 @@ This one is already tailored towards a certain modelling job, where we reconstruct sidechains for loop candidates and score them. The scorers added (with their respective keys) are:</p> <ul class="simple"> -<li>“aa_interaction”: <a class="reference internal" href="../scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer" title="promod3.scoring.AllAtomInteractionScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomInteractionScorer</span></code></a></li> -<li>“aa_packing”: <a class="reference internal" href="../scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer" title="promod3.scoring.AllAtomPackingScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPackingScorer</span></code></a></li> -<li>“aa_clash”: <a class="reference internal" href="../scoring/all_atom_scorers.html#promod3.scoring.AllAtomClashScorer" title="promod3.scoring.AllAtomClashScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomClashScorer</span></code></a></li> +<li>“aa_interaction”: <a class="reference internal" href="../scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer" title="promod3.scoring.AllAtomInteractionScorer"><code class="xref py py-class docutils literal"><span class="pre">AllAtomInteractionScorer</span></code></a></li> +<li>“aa_packing”: <a class="reference internal" href="../scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer" title="promod3.scoring.AllAtomPackingScorer"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPackingScorer</span></code></a></li> +<li>“aa_clash”: <a class="reference internal" href="../scoring/all_atom_scorers.html#promod3.scoring.AllAtomClashScorer" title="promod3.scoring.AllAtomClashScorer"><code class="xref py py-class docutils literal"><span class="pre">AllAtomClashScorer</span></code></a></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"><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – The modelling handle. This will set the properties -<a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_scorer_env" title="promod3.modelling.ModellingHandle.all_atom_scorer_env"><code class="xref py py-attr docutils literal notranslate"><span class="pre">all_atom_scorer_env</span></code></a>, -<a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_scorer" title="promod3.modelling.ModellingHandle.all_atom_scorer"><code class="xref py py-attr docutils literal notranslate"><span class="pre">all_atom_scorer</span></code></a>, -<a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_sidechain_env" title="promod3.modelling.ModellingHandle.all_atom_sidechain_env"><code class="xref py py-attr docutils literal notranslate"><span class="pre">all_atom_sidechain_env</span></code></a> and -<a class="reference internal" href="#promod3.modelling.ModellingHandle.sidechain_reconstructor" title="promod3.modelling.ModellingHandle.sidechain_reconstructor"><code class="xref py py-attr docutils literal notranslate"><span class="pre">sidechain_reconstructor</span></code></a>.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – The modelling handle. This will set the properties +<a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_scorer_env" title="promod3.modelling.ModellingHandle.all_atom_scorer_env"><code class="xref py py-attr docutils literal"><span class="pre">all_atom_scorer_env</span></code></a>, +<a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_scorer" title="promod3.modelling.ModellingHandle.all_atom_scorer"><code class="xref py py-attr docutils literal"><span class="pre">all_atom_scorer</span></code></a>, +<a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_sidechain_env" title="promod3.modelling.ModellingHandle.all_atom_sidechain_env"><code class="xref py py-attr docutils literal"><span class="pre">all_atom_sidechain_env</span></code></a> and +<a class="reference internal" href="#promod3.modelling.ModellingHandle.sidechain_reconstructor" title="promod3.modelling.ModellingHandle.sidechain_reconstructor"><code class="xref py py-attr docutils literal"><span class="pre">sidechain_reconstructor</span></code></a>.</td> </tr> </tbody> </table> @@ -559,14 +572,14 @@ The scorers added (with their respective keys) are:</p> <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">True, if <a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_scorer_env" title="promod3.modelling.ModellingHandle.all_atom_scorer_env"><code class="xref py py-attr docutils literal notranslate"><span class="pre">all_atom_scorer_env</span></code></a>, -<a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_scorer" title="promod3.modelling.ModellingHandle.all_atom_scorer"><code class="xref py py-attr docutils literal notranslate"><span class="pre">all_atom_scorer</span></code></a>, -<a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_sidechain_env" title="promod3.modelling.ModellingHandle.all_atom_sidechain_env"><code class="xref py py-attr docutils literal notranslate"><span class="pre">all_atom_sidechain_env</span></code></a> and -<a class="reference internal" href="#promod3.modelling.ModellingHandle.sidechain_reconstructor" title="promod3.modelling.ModellingHandle.sidechain_reconstructor"><code class="xref py py-attr docutils literal notranslate"><span class="pre">sidechain_reconstructor</span></code></a> of <cite>mhandle</cite> are set.</td> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, if <a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_scorer_env" title="promod3.modelling.ModellingHandle.all_atom_scorer_env"><code class="xref py py-attr docutils literal"><span class="pre">all_atom_scorer_env</span></code></a>, +<a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_scorer" title="promod3.modelling.ModellingHandle.all_atom_scorer"><code class="xref py py-attr docutils literal"><span class="pre">all_atom_scorer</span></code></a>, +<a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_sidechain_env" title="promod3.modelling.ModellingHandle.all_atom_sidechain_env"><code class="xref py py-attr docutils literal"><span class="pre">all_atom_sidechain_env</span></code></a> and +<a class="reference internal" href="#promod3.modelling.ModellingHandle.sidechain_reconstructor" title="promod3.modelling.ModellingHandle.sidechain_reconstructor"><code class="xref py py-attr docutils literal"><span class="pre">sidechain_reconstructor</span></code></a> of <cite>mhandle</cite> are set.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle to check.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle to check.</td> </tr> </tbody> </table> @@ -576,18 +589,18 @@ The scorers added (with their respective keys) are:</p> <dt id="promod3.modelling.InsertLoop"> <code class="descclassname">promod3.modelling.</code><code class="descname">InsertLoop</code><span class="sig-paren">(</span><em>mhandle</em>, <em>bb_list</em>, <em>start_resnum</em>, <em>chain_idx</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.InsertLoop" title="Permalink to this definition">¶</a></dt> <dd><p>Insert loop into model and ensure consistent updating of scoring environments. -Note that we do not update <a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_scorer_env" title="promod3.modelling.ModellingHandle.all_atom_scorer_env"><code class="xref py py-attr docutils literal notranslate"><span class="pre">all_atom_scorer_env</span></code></a> as +Note that we do not update <a class="reference internal" href="#promod3.modelling.ModellingHandle.all_atom_scorer_env" title="promod3.modelling.ModellingHandle.all_atom_scorer_env"><code class="xref py py-attr docutils literal"><span class="pre">all_atom_scorer_env</span></code></a> as that one is meant to be updated only while scoring. To clear a gap while -inserting a loop, use the simpler <a class="reference internal" href="gap_handling.html#promod3.modelling.InsertLoopClearGaps" title="promod3.modelling.InsertLoopClearGaps"><code class="xref py py-meth docutils literal notranslate"><span class="pre">InsertLoopClearGaps()</span></code></a>.</p> +inserting a loop, use the simpler <a class="reference internal" href="gap_handling.html#promod3.modelling.InsertLoopClearGaps" title="promod3.modelling.InsertLoopClearGaps"><code class="xref py py-meth docutils literal"><span class="pre">InsertLoopClearGaps()</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>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> -<li><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Loop to insert (backbone only).</li> -<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Res. number defining the start position in the SEQRES.</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of chain the loop belongs to.</li> +<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> +<li><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Loop to insert (backbone only).</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Res. number defining the start position in the SEQRES.</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of chain the loop belongs to.</li> </ul> </td> </tr> @@ -605,11 +618,11 @@ model loops at the termini.</p> <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>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Number of gaps which were removed.</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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -640,18 +653,18 @@ environments get updated in <strong>target_mhandle</strong>.</p> <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>source_mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Source of structural information and gaps</li> -<li><strong>target_mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Structural information and gaps will be copied in here</li> -<li><strong>source_chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – This is the chain where the info comes from</li> -<li><strong>target_chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – This is the chain where the info goes to</li> -<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – First residue of the copied stretch</li> -<li><strong>end_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Last residue of the copied stretch</li> -<li><strong>transform</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Mat4</span></code></a>) – Transformation to be applied to all atom positions when -they’re copied over</li> +<li><strong>source_mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Source of structural information and gaps</li> +<li><strong>target_mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Structural information and gaps will be copied in here</li> +<li><strong>source_chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – This is the chain where the info comes from</li> +<li><strong>target_chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – This is the chain where the info goes to</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – First residue of the copied stretch</li> +<li><strong>end_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Last residue of the copied stretch</li> +<li><strong>transform</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a>) – Transformation to be applied to all atom positions when +they’re copied over</li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first">A <a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#RuntimeError" title="(in Python v3.6)"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> when:</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first">A <a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#RuntimeError" title="(in Python v3.6)"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code></a> when:</p> <ul class="last simple"> <li>the chain indices are invalid</li> <li>the SEQRES of the specified chains do not match</li> @@ -669,19 +682,19 @@ at the specified positions in the <strong>source_mhandle</strong> do not exist</ <dl class="function"> <dt id="promod3.modelling.SetSequenceProfiles"> <code class="descclassname">promod3.modelling.</code><code class="descname">SetSequenceProfiles</code><span class="sig-paren">(</span><em>mhandle</em>, <em>profiles</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.SetSequenceProfiles" title="Permalink to this definition">¶</a></dt> -<dd><p>Sets the <a class="reference internal" href="#promod3.modelling.ModellingHandle.profiles" title="promod3.modelling.ModellingHandle.profiles"><code class="xref py py-attr docutils literal notranslate"><span class="pre">sequence</span> <span class="pre">profiles</span></code></a> of <strong>mhandle</strong> -while ensuring consistency with the <a class="reference internal" href="#promod3.modelling.ModellingHandle.seqres" title="promod3.modelling.ModellingHandle.seqres"><code class="xref py py-attr docutils literal notranslate"><span class="pre">seqres</span></code></a>.</p> +<dd><p>Sets the <a class="reference internal" href="#promod3.modelling.ModellingHandle.profiles" title="promod3.modelling.ModellingHandle.profiles"><code class="xref py py-attr docutils literal"><span class="pre">sequence</span> <span class="pre">profiles</span></code></a> of <strong>mhandle</strong> +while ensuring consistency with the <a class="reference internal" href="#promod3.modelling.ModellingHandle.seqres" title="promod3.modelling.ModellingHandle.seqres"><code class="xref py py-attr docutils literal"><span class="pre">seqres</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>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Will have the profiles attached afterwards</li> -<li><strong>profiles</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – The sequence profiles to attach</li> +<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Will have the profiles attached afterwards</li> +<li><strong>profiles</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – The sequence profiles to attach</li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#ValueError" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ValueError</span></code></a> when the given <strong>profiles</strong> are not consistent +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#ValueError" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">ValueError</span></code></a> when the given <strong>profiles</strong> are not consistent with seqres in <strong>mhandle</strong></p> </td> </tr> @@ -692,20 +705,20 @@ with seqres in <strong>mhandle</strong></p> <dl class="function"> <dt id="promod3.modelling.SetPsipredPredictions"> <code class="descclassname">promod3.modelling.</code><code class="descname">SetPsipredPredictions</code><span class="sig-paren">(</span><em>mhandle</em>, <em>predictions</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.SetPsipredPredictions" title="Permalink to this definition">¶</a></dt> -<dd><p>Sets the <a class="reference internal" href="#promod3.modelling.ModellingHandle.psipred_predictions" title="promod3.modelling.ModellingHandle.psipred_predictions"><code class="xref py py-attr docutils literal notranslate"><span class="pre">predictions</span></code></a> of +<dd><p>Sets the <a class="reference internal" href="#promod3.modelling.ModellingHandle.psipred_predictions" title="promod3.modelling.ModellingHandle.psipred_predictions"><code class="xref py py-attr docutils literal"><span class="pre">predictions</span></code></a> of <strong>mhandle</strong> while ensuring consistency with the -<a class="reference internal" href="#promod3.modelling.ModellingHandle.seqres" title="promod3.modelling.ModellingHandle.seqres"><code class="xref py py-attr docutils literal notranslate"><span class="pre">seqres</span></code></a>.</p> +<a class="reference internal" href="#promod3.modelling.ModellingHandle.seqres" title="promod3.modelling.ModellingHandle.seqres"><code class="xref py py-attr docutils literal"><span class="pre">seqres</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>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Will have the predictions attached afterwards</li> -<li><strong>predictions</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="../loop/structure_db.html#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal notranslate"><span class="pre">PsipredPrediction</span></code></a>) – The predictions to attach</li> +<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Will have the predictions attached afterwards</li> +<li><strong>predictions</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="../loop/structure_db.html#promod3.loop.PsipredPrediction" title="promod3.loop.PsipredPrediction"><code class="xref py py-class docutils literal"><span class="pre">PsipredPrediction</span></code></a>) – The predictions to attach</li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#ValueError" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ValueError</span></code></a> when the given <strong>predictions</strong> are not consistent +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#ValueError" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">ValueError</span></code></a> when the given <strong>predictions</strong> are not consistent with seqres in <strong>mhandle</strong></p> </td> </tr> @@ -716,19 +729,19 @@ with seqres in <strong>mhandle</strong></p> <dl class="function"> <dt id="promod3.modelling.SetFraggerHandles"> <code class="descclassname">promod3.modelling.</code><code class="descname">SetFraggerHandles</code><span class="sig-paren">(</span><em>mhandle</em>, <em>fragger_handles</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.SetFraggerHandles" title="Permalink to this definition">¶</a></dt> -<dd><p>Sets <a class="reference internal" href="#promod3.modelling.ModellingHandle.fragger_handles" title="promod3.modelling.ModellingHandle.fragger_handles"><code class="xref py py-attr docutils literal notranslate"><span class="pre">fragger_handles</span></code></a> in <em>mhandle</em> while -ensuring consistency with the <a class="reference internal" href="#promod3.modelling.ModellingHandle.seqres" title="promod3.modelling.ModellingHandle.seqres"><code class="xref py py-attr docutils literal notranslate"><span class="pre">ModellingHandle.seqres</span></code></a>.</p> +<dd><p>Sets <a class="reference internal" href="#promod3.modelling.ModellingHandle.fragger_handles" title="promod3.modelling.ModellingHandle.fragger_handles"><code class="xref py py-attr docutils literal"><span class="pre">fragger_handles</span></code></a> in <em>mhandle</em> while +ensuring consistency with the <a class="reference internal" href="#promod3.modelling.ModellingHandle.seqres" title="promod3.modelling.ModellingHandle.seqres"><code class="xref py py-attr docutils literal"><span class="pre">ModellingHandle.seqres</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>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Will have the fragger handles attached afterwards</li> -<li><strong>fragger_handles</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">FraggerHandle</span></code></a>) – The fragger handles to attach</li> +<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Will have the fragger handles attached afterwards</li> +<li><strong>fragger_handles</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal"><span class="pre">FraggerHandle</span></code></a>) – The fragger handles to attach</li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#ValueError" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ValueError</span></code></a> when the given <em>fragger_handles</em> are not +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/exceptions.html#ValueError" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">ValueError</span></code></a> when the given <em>fragger_handles</em> are not consistent with seqres in <em>mhandle</em></p> </td> </tr> @@ -743,42 +756,42 @@ consistent with seqres in <em>mhandle</em></p> following steps:</p> <ul class="simple"> <li>Try to close small deletions by relaxing them -(see <a class="reference internal" href="#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-func docutils literal notranslate"><span class="pre">CloseSmallDeletions()</span></code></a>)</li> +(see <a class="reference internal" href="#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-func docutils literal"><span class="pre">CloseSmallDeletions()</span></code></a>)</li> <li>Iteratively merge gaps up to a distance <strong>merge_distance</strong> -(see <a class="reference internal" href="#promod3.modelling.MergeGapsByDistance" title="promod3.modelling.MergeGapsByDistance"><code class="xref py py-func docutils literal notranslate"><span class="pre">MergeGapsByDistance()</span></code></a>) and try to fill them with a database -approach (see <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal notranslate"><span class="pre">FillLoopsByDatabase()</span></code></a>)</li> +(see <a class="reference internal" href="#promod3.modelling.MergeGapsByDistance" title="promod3.modelling.MergeGapsByDistance"><code class="xref py py-func docutils literal"><span class="pre">MergeGapsByDistance()</span></code></a>) and try to fill them with a database +approach (see <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal"><span class="pre">FillLoopsByDatabase()</span></code></a>)</li> <li>Try to fill remaining gaps using a Monte Carlo approach -(see <a class="reference internal" href="#promod3.modelling.FillLoopsByMonteCarlo" title="promod3.modelling.FillLoopsByMonteCarlo"><code class="xref py py-func docutils literal notranslate"><span class="pre">FillLoopsByMonteCarlo()</span></code></a>)</li> +(see <a class="reference internal" href="#promod3.modelling.FillLoopsByMonteCarlo" title="promod3.modelling.FillLoopsByMonteCarlo"><code class="xref py py-func docutils literal"><span class="pre">FillLoopsByMonteCarlo()</span></code></a>)</li> <li>Large deletions get closed using a last resort approach -(see <a class="reference internal" href="#promod3.modelling.CloseLargeDeletions" title="promod3.modelling.CloseLargeDeletions"><code class="xref py py-func docutils literal notranslate"><span class="pre">CloseLargeDeletions()</span></code></a>)</li> +(see <a class="reference internal" href="#promod3.modelling.CloseLargeDeletions" title="promod3.modelling.CloseLargeDeletions"><code class="xref py py-func docutils literal"><span class="pre">CloseLargeDeletions()</span></code></a>)</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 last simple"> -<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> -<li><strong>merge_distance</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Max. merge distance when performing the database +<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> +<li><strong>merge_distance</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Max. merge distance when performing the database approach</li> -<li><strong>fragment_db</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.FragDB" title="promod3.loop.FragDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">FragDB</span></code></a>) – Database for searching fragments in database +<li><strong>fragment_db</strong> (<a class="reference internal" href="../loop/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>) – Database for searching fragments in database approach, must be consistent with provided <strong>structure_db</strong>. A default is loaded if None.</li> -<li><strong>structure_db</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a>) – Structure db from which the <strong>fragment_db</strong> gets -it’s structural information. A default is loaded +<li><strong>structure_db</strong> (<a class="reference internal" href="../loop/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>) – Structure db from which the <strong>fragment_db</strong> gets +it’s structural information. A default is loaded if None.</li> -<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.TorsionSampler</span></code></a>) – Used as parameter for <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal notranslate"><span class="pre">FillLoopsByDatabase()</span></code></a> -and <a class="reference internal" href="#promod3.modelling.FillLoopsByMonteCarlo" title="promod3.modelling.FillLoopsByMonteCarlo"><code class="xref py py-func docutils literal notranslate"><span class="pre">FillLoopsByMonteCarlo()</span></code></a> A default one is +<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.TorsionSampler</span></code></a>) – Used as parameter for <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal"><span class="pre">FillLoopsByDatabase()</span></code></a> +and <a class="reference internal" href="#promod3.modelling.FillLoopsByMonteCarlo" title="promod3.modelling.FillLoopsByMonteCarlo"><code class="xref py py-func docutils literal"><span class="pre">FillLoopsByMonteCarlo()</span></code></a> A default one is loaded if None.</li> -<li><strong>fragger_handles</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – A list of <a class="reference internal" href="algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.modelling.FraggerHandle</span></code></a> +<li><strong>fragger_handles</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – A list of <a class="reference internal" href="algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal"><span class="pre">promod3.modelling.FraggerHandle</span></code></a> objects for each chain in <strong>mhandle</strong>. If provided, fragments will be used for -sampling when the <a class="reference internal" href="#promod3.modelling.FillLoopsByMonteCarlo" title="promod3.modelling.FillLoopsByMonteCarlo"><code class="xref py py-func docutils literal notranslate"><span class="pre">FillLoopsByMonteCarlo()</span></code></a> +sampling when the <a class="reference internal" href="#promod3.modelling.FillLoopsByMonteCarlo" title="promod3.modelling.FillLoopsByMonteCarlo"><code class="xref py py-func docutils literal"><span class="pre">FillLoopsByMonteCarlo()</span></code></a> gets executed.</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – If not None, only gaps from chain with given index get +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – If not None, only gaps from chain with given index get processed</li> -<li><strong>resnum_range</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> containing two <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – If not None, only gaps within this resnum range get +<li><strong>resnum_range</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> containing two <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – If not None, only gaps within this resnum range get processed.</li> -<li><strong>length_dep_weights</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – <a class="reference internal" href="loop_candidates.html#promod3.modelling.ScoringWeights" title="promod3.modelling.ScoringWeights"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoringWeights</span></code></a> provides different sets +<li><strong>length_dep_weights</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – <a class="reference internal" href="loop_candidates.html#promod3.modelling.ScoringWeights" title="promod3.modelling.ScoringWeights"><code class="xref py py-class docutils literal"><span class="pre">ScoringWeights</span></code></a> provides different sets of weights that have been trained on different loop subsets. If this flag is true, the length dependent weights are used to close loops with @@ -799,9 +812,9 @@ good chance to be bridged just by relaxing neighbours around a tiny gap. Before diving into the more demanding tasks in modeling, those may be closed already in the raw-model. After closure some checks are done to see if the solution is stereochemically sensible.</p> -<p>Closed gaps are removed from <code class="xref py py-attr docutils literal notranslate"><span class="pre">mhandle.gaps</span></code>.</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">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</span> <span class="k">import</span> <span class="n">modelling</span> +<p>Closed gaps are removed from <code class="xref py py-attr docutils literal"><span class="pre">mhandle.gaps</span></code>.</p> +<div class="highlight-default"><div class="highlight"><pre><span></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</span> <span class="kn">import</span> <span class="n">modelling</span> <span class="c1"># setup</span> <span class="n">tpl</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="s1">'data/gly.pdb'</span><span class="p">)</span> @@ -820,35 +833,35 @@ solution is stereochemically sensible.</p> <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>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> -<li><strong>max_extension</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Maximal number of gap extension steps to perform -(see <a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">GapExtender</span></code></a>)</li> -<li><strong>clash_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Threshold for the backbone clash score. Acceptance +<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> +<li><strong>max_extension</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Maximal number of gap extension steps to perform +(see <a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal"><span class="pre">GapExtender</span></code></a>)</li> +<li><strong>clash_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Threshold for the backbone clash score. Acceptance means being lower than this.</li> -<li><strong>e_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Potential energy should be lower than this.</li> -<li><strong>use_scoring_extender</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True = use <a class="reference internal" href="gap_handling.html#promod3.modelling.ScoringGapExtender" title="promod3.modelling.ScoringGapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoringGapExtender</span></code></a> instead -of <a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">GapExtender</span></code></a>. +<li><strong>e_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Potential energy should be lower than this.</li> +<li><strong>use_scoring_extender</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True = use <a class="reference internal" href="gap_handling.html#promod3.modelling.ScoringGapExtender" title="promod3.modelling.ScoringGapExtender"><code class="xref py py-class docutils literal"><span class="pre">ScoringGapExtender</span></code></a> instead +of <a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal"><span class="pre">GapExtender</span></code></a>. The gap is penalized according as 0.8*length + sum(helices) + sum(sheets). For the scondary-structure-penalty to work, the model-template must have the appropriate -information before <a class="reference internal" href="#promod3.modelling.BuildRawModel" title="promod3.modelling.BuildRawModel"><code class="xref py py-func docutils literal notranslate"><span class="pre">BuildRawModel()</span></code></a> is +information before <a class="reference internal" href="#promod3.modelling.BuildRawModel" title="promod3.modelling.BuildRawModel"><code class="xref py py-func docutils literal"><span class="pre">BuildRawModel()</span></code></a> is called (e.g. with -<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/alg/molalg/#ost.mol.alg.AssignSecStruct" title="(in OpenStructure v1.11.0)"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ost.mol.alg.AssignSecStruct()</span></code></a>).</li> -<li><strong>use_full_extender</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True = use <a class="reference internal" href="gap_handling.html#promod3.modelling.FullGapExtender" title="promod3.modelling.FullGapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">FullGapExtender</span></code></a> instead of -of <a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">GapExtender</span></code></a>. Also works in combination +<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/alg/molalg/#ost.mol.alg.AssignSecStruct" title="(in OpenStructure v2.0.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.alg.AssignSecStruct()</span></code></a>).</li> +<li><strong>use_full_extender</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True = use <a class="reference internal" href="gap_handling.html#promod3.modelling.FullGapExtender" title="promod3.modelling.FullGapExtender"><code class="xref py py-class docutils literal"><span class="pre">FullGapExtender</span></code></a> instead of +of <a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal"><span class="pre">GapExtender</span></code></a>. Also works in combination with <cite>use_scoring_extender</cite>. This allows the gap extender to skip neighboring gaps and to correctly handle gaps close to termini.</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – If not None, only gaps from chain with given index get +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – If not None, only gaps from chain with given index get processed</li> -<li><strong>resnum_range</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> containing two <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – If not None, only gaps within this resnum range get +<li><strong>resnum_range</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> containing two <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – If not None, only gaps within this resnum range get processed.</li> -<li><strong>ff_lookup</strong> (<a class="reference internal" href="../loop/mm_system_creation.html#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.ForcefieldLookup</span></code></a>) – Forcefield to parametrize -<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.BackboneList</span></code></a> in -<a class="reference internal" href="loop_closing.html#promod3.modelling.BackboneRelaxer" title="promod3.modelling.BackboneRelaxer"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.modelling.BackboneRelaxer</span></code></a>. +<li><strong>ff_lookup</strong> (<a class="reference internal" href="../loop/mm_system_creation.html#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.ForcefieldLookup</span></code></a>) – Forcefield to parametrize +<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.BackboneList</span></code></a> in +<a class="reference internal" href="loop_closing.html#promod3.modelling.BackboneRelaxer" title="promod3.modelling.BackboneRelaxer"><code class="xref py py-class docutils literal"><span class="pre">promod3.modelling.BackboneRelaxer</span></code></a>. If set to None, the one returned by -<a class="reference internal" href="../loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetDefault" title="promod3.loop.ForcefieldLookup.GetDefault"><code class="xref py py-func docutils literal notranslate"><span class="pre">promod3.loop.ForcefieldLookup.GetDefault()</span></code></a> +<a class="reference internal" href="../loop/mm_system_creation.html#promod3.loop.ForcefieldLookup.GetDefault" title="promod3.loop.ForcefieldLookup.GetDefault"><code class="xref py py-func docutils literal"><span class="pre">promod3.loop.ForcefieldLookup.GetDefault()</span></code></a> gets used.</li> </ul> </td> @@ -867,8 +880,8 @@ stretch of original gaps and the deleted region. Original gaps will be removed. Stem residues count to the gap, so <strong>A-A-A</strong> has a distance of 0.</p> <p>IMPORTANT: we assume here that <em>mhandle</em> stores gaps sequentially. Non-sequential gaps are ignored!</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">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</span> <span class="k">import</span> <span class="n">modelling</span> +<div class="highlight-default"><div class="highlight"><pre><span></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</span> <span class="kn">import</span> <span class="n">modelling</span> <span class="c1"># setup</span> <span class="n">tpl</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="s1">'data/1crn_cut.pdb'</span><span class="p">)</span> @@ -889,12 +902,12 @@ Non-sequential gaps are ignored!</p> <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>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> -<li><strong>distance</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The max. no. of residues between two gaps up to which +<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> +<li><strong>distance</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The max. no. of residues between two gaps up to which merge happens.</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – If not None, only gaps from chain with given index get +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – If not None, only gaps from chain with given index get processed</li> -<li><strong>resnum_range</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> containing two <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – If not None, two gaps only get merged if they’re +<li><strong>resnum_range</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> containing two <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – If not None, two gaps only get merged if they’re both in this resnum range.</li> </ul> </td> @@ -911,8 +924,8 @@ both in this resnum range.</li> database. Do not expect a gap being filled in between its actual stem residues. This function cannot fill gaps at C- or N-terminal.</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">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</span> <span class="k">import</span> <span class="n">modelling</span><span class="p">,</span> <span class="n">loop</span> +<div class="highlight-default"><div class="highlight"><pre><span></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</span> <span class="kn">import</span> <span class="n">modelling</span><span class="p">,</span> <span class="n">loop</span> <span class="c1"># setup</span> <span class="n">tpl</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="s1">'data/1crn_cut.pdb'</span><span class="p">)</span> @@ -935,66 +948,66 @@ This function cannot fill gaps at C- or N-terminal.</p> <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>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> -<li><strong>fragment_db</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.FragDB" title="promod3.loop.FragDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">FragDB</span></code></a>) – A fragment database coupled to the <em>structure_db</em>.</li> -<li><strong>structure_db</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a>) – Backbone/profile data.</li> -<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a>) – A sampler for torsion angles. A default one is +<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> +<li><strong>fragment_db</strong> (<a class="reference internal" href="../loop/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>) – A fragment database coupled to the <em>structure_db</em>.</li> +<li><strong>structure_db</strong> (<a class="reference internal" href="../loop/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>) – Backbone/profile data.</li> +<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/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>) – A sampler for torsion angles. A default one is loaded if None.</li> -<li><strong>max_loops_to_search</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Define how many candidates are ‘enough’ to be +<li><strong>max_loops_to_search</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Define how many candidates are ‘enough’ to be evaluated per loop. The actual found candidates -may be more (if we found ‘enough’) or less (if +may be more (if we found ‘enough’) or less (if not enough candidates exist) of this number.</li> -<li><strong>min_loops_required</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Define how many candidates we require to close +<li><strong>min_loops_required</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Define how many candidates we require to close the loop. If we did not find at least this number of candidates for a gap, we skip it without -closing. Can be set to <code class="docutils literal notranslate"><span class="pre">max_loops_to_search</span></code> +closing. Can be set to <code class="docutils literal"><span class="pre">max_loops_to_search</span></code> (or equivalently to -1) to enforce that we only close gaps for which we found enough candidates.</li> -<li><strong>max_res_extension</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Only allow this number of residues to be added to +<li><strong>max_res_extension</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Only allow this number of residues to be added to the gaps when extending. If set to <strong>-1</strong>, any number of residues can be added (as long as the <cite>fragment_db</cite> allows it).</li> -<li><strong>extended_search</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True = more loop candidates are considered. +<li><strong>extended_search</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True = more loop candidates are considered. The candidate search is done less precisely (see -<a class="reference internal" href="loop_candidates.html#promod3.modelling.LoopCandidates.FillFromDatabase" title="promod3.modelling.LoopCandidates.FillFromDatabase"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FillFromDatabase()</span></code></a>). +<a class="reference internal" href="loop_candidates.html#promod3.modelling.LoopCandidates.FillFromDatabase" title="promod3.modelling.LoopCandidates.FillFromDatabase"><code class="xref py py-meth docutils literal"><span class="pre">FillFromDatabase()</span></code></a>). The candidates are still scored and evaluated the same though (only more of them considered).</li> -<li><strong>use_scoring_extender</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True = use <a class="reference internal" href="gap_handling.html#promod3.modelling.ScoringGapExtender" title="promod3.modelling.ScoringGapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoringGapExtender</span></code></a> instead -of <a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">GapExtender</span></code></a>. -See <a class="reference internal" href="#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-func docutils literal notranslate"><span class="pre">CloseSmallDeletions()</span></code></a>.</li> -<li><strong>use_full_extender</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True = use <a class="reference internal" href="gap_handling.html#promod3.modelling.FullGapExtender" title="promod3.modelling.FullGapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">FullGapExtender</span></code></a> instead of -<a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">GapExtender</span></code></a>. -See <a class="reference internal" href="#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-func docutils literal notranslate"><span class="pre">CloseSmallDeletions()</span></code></a>.</li> -<li><strong>score_variant</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – <p>How to score loop candidates. Options:</p> +<li><strong>use_scoring_extender</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True = use <a class="reference internal" href="gap_handling.html#promod3.modelling.ScoringGapExtender" title="promod3.modelling.ScoringGapExtender"><code class="xref py py-class docutils literal"><span class="pre">ScoringGapExtender</span></code></a> instead +of <a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal"><span class="pre">GapExtender</span></code></a>. +See <a class="reference internal" href="#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-func docutils literal"><span class="pre">CloseSmallDeletions()</span></code></a>.</li> +<li><strong>use_full_extender</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True = use <a class="reference internal" href="gap_handling.html#promod3.modelling.FullGapExtender" title="promod3.modelling.FullGapExtender"><code class="xref py py-class docutils literal"><span class="pre">FullGapExtender</span></code></a> instead of +<a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal"><span class="pre">GapExtender</span></code></a>. +See <a class="reference internal" href="#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-func docutils literal"><span class="pre">CloseSmallDeletions()</span></code></a>.</li> +<li><strong>score_variant</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – <p>How to score loop candidates. Options:</p> <ul> <li><strong>0</strong>: put frame of backbone residues enclosing all -candidates and score frame. This will also “score” +candidates and score frame. This will also “score” non-modelled residues!</li> <li><strong>1</strong>: score candidates directly</li> <li><strong>2</strong>: like <strong>1</strong> but penalize length of candidate</li> </ul> </li> -<li><strong>ring_punch_detection</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – <p>How to deal with ring punchings. Options:</p> +<li><strong>ring_punch_detection</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – <p>How to deal with ring punchings. Options:</p> <ul> <li><strong>0</strong>: not at all (fastest)</li> <li><strong>1</strong>: check for punchings with existing rings</li> <li><strong>2</strong>: check incl. sidechain for loop cand.</li> </ul> </li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – If not None, only gaps from chain with given index get +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – If not None, only gaps from chain with given index get processed</li> -<li><strong>resnum_range</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> containing two <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – If not None, only gaps within this resnum range get +<li><strong>resnum_range</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> containing two <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – If not None, only gaps within this resnum range get processed</li> -<li><strong>max_num_all_atom</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – If > 0, we prefilter loop candidates based on +<li><strong>max_num_all_atom</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – If > 0, we prefilter loop candidates based on non-all-atom-scores and apply all atom scoring to the best <em>max_num_all_atom</em> candidates. If desired, <em>5</em> is a good value here (larger values give only numerical improvement). With <em>5</em>, this will be approx. 2x slower than without and will give a slight improvement in loop selection.</li> -<li><strong>clash_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – If > 0, we only keep loop candidates which have a +<li><strong>clash_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – If > 0, we only keep loop candidates which have a backbone clash score lower than this.</li> -<li><strong>length_dep_weights</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – <a class="reference internal" href="loop_candidates.html#promod3.modelling.ScoringWeights" title="promod3.modelling.ScoringWeights"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoringWeights</span></code></a> provides different sets +<li><strong>length_dep_weights</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – <a class="reference internal" href="loop_candidates.html#promod3.modelling.ScoringWeights" title="promod3.modelling.ScoringWeights"><code class="xref py py-class docutils literal"><span class="pre">ScoringWeights</span></code></a> provides different sets of weights that have been trained on different loop subsets. If this flag is true, the length dependent weights are used to select the final @@ -1010,16 +1023,16 @@ loops.</li> <dt id="promod3.modelling.FillLoopsByMonteCarlo"> <code class="descclassname">promod3.modelling.</code><code class="descname">FillLoopsByMonteCarlo</code><span class="sig-paren">(</span><em>mhandle</em>, <em>torsion_sampler=None</em>, <em>max_loops_to_search=6</em>, <em>max_extension=30</em>, <em>mc_num_loops=2</em>, <em>mc_steps=5000</em>, <em>use_scoring_extender=True</em>, <em>use_full_extender=True</em>, <em>score_variant=0</em>, <em>ring_punch_detection=1</em>, <em>fragger_handles=None</em>, <em>chain_idx=None</em>, <em>resnum_range=None</em>, <em>length_dep_weights=False</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.FillLoopsByMonteCarlo" title="Permalink to this definition">¶</a></dt> <dd><p>Try to fill up loops with Monte Carlo sampling.</p> -<p>This is meant as a “last-resort” approach when it is not possible to fill -the loops from the database with <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal notranslate"><span class="pre">FillLoopsByDatabase()</span></code></a>. +<p>This is meant as a “last-resort” approach when it is not possible to fill +the loops from the database with <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal"><span class="pre">FillLoopsByDatabase()</span></code></a>. This will extend the gaps (up to <em>max_extension</em> times) a bit to allow for more loop candidates to be found.</p> <p>The loops are modelled by either sampling the dihedral angles or (if -<em>fragger_handles</em> is given) <a class="reference internal" href="../loop/structure_db.html#promod3.loop.Fragger" title="promod3.loop.Fragger"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fragger</span></code></a> lists. The latter +<em>fragger_handles</em> is given) <a class="reference internal" href="../loop/structure_db.html#promod3.loop.Fragger" title="promod3.loop.Fragger"><code class="xref py py-class docutils literal"><span class="pre">Fragger</span></code></a> lists. The latter is only used if the gap length is >= the length of fragments stored.</p> <p>This function cannot fill gaps at C- or N-terminal.</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">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</span> <span class="k">import</span> <span class="n">modelling</span><span class="p">,</span> <span class="n">loop</span> +<div class="highlight-default"><div class="highlight"><pre><span></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</span> <span class="kn">import</span> <span class="n">modelling</span><span class="p">,</span> <span class="n">loop</span> <span class="c1"># setup</span> <span class="n">tpl</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="s1">'data/1crn_cut.pdb'</span><span class="p">)</span> @@ -1041,34 +1054,34 @@ is only used if the gap length is >= the length of fragments stored.</p> <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>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> -<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a>) – A sampler for torsion angles. A default one is +<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> +<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/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>) – A sampler for torsion angles. A default one is loaded if None.</li> -<li><strong>max_loops_to_search</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Define how many candidates are ‘enough’ to be +<li><strong>max_loops_to_search</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Define how many candidates are ‘enough’ to be evaluated per loop.</li> -<li><strong>max_extension</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Maximal number of gap extension steps to perform -(see <a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">GapExtender</span></code></a>)</li> -<li><strong>mc_num_loops</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of loop candidates to consider for each extended gap -(see <a class="reference internal" href="loop_candidates.html#promod3.modelling.LoopCandidates.FillFromMonteCarloSampler" title="promod3.modelling.LoopCandidates.FillFromMonteCarloSampler"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FillFromMonteCarloSampler()</span></code></a>)</li> -<li><strong>mc_steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of MC steps to perform for each loop candidate -(see <a class="reference internal" href="loop_candidates.html#promod3.modelling.LoopCandidates.FillFromMonteCarloSampler" title="promod3.modelling.LoopCandidates.FillFromMonteCarloSampler"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FillFromMonteCarloSampler()</span></code></a>)</li> -<li><strong>use_scoring_extender</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True = use <a class="reference internal" href="gap_handling.html#promod3.modelling.ScoringGapExtender" title="promod3.modelling.ScoringGapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoringGapExtender</span></code></a> instead -of <a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">GapExtender</span></code></a>. -See <a class="reference internal" href="#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-func docutils literal notranslate"><span class="pre">CloseSmallDeletions()</span></code></a>.</li> -<li><strong>use_full_extender</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True = use <a class="reference internal" href="gap_handling.html#promod3.modelling.FullGapExtender" title="promod3.modelling.FullGapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">FullGapExtender</span></code></a> instead of -<a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">GapExtender</span></code></a>. -See <a class="reference internal" href="#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-func docutils literal notranslate"><span class="pre">CloseSmallDeletions()</span></code></a>.</li> -<li><strong>score_variant</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – How to score loop candidates (AllAtom not supported). -See <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal notranslate"><span class="pre">FillLoopsByDatabase()</span></code></a>.</li> -<li><strong>ring_punch_detection</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – How to deal with ring punchings. -See <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal notranslate"><span class="pre">FillLoopsByDatabase()</span></code></a>.</li> -<li><strong>fragger_handles</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">FraggerHandle</span></code></a>) – Either None (no fragger sampling used) or one +<li><strong>max_extension</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Maximal number of gap extension steps to perform +(see <a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal"><span class="pre">GapExtender</span></code></a>)</li> +<li><strong>mc_num_loops</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of loop candidates to consider for each extended gap +(see <a class="reference internal" href="loop_candidates.html#promod3.modelling.LoopCandidates.FillFromMonteCarloSampler" title="promod3.modelling.LoopCandidates.FillFromMonteCarloSampler"><code class="xref py py-meth docutils literal"><span class="pre">FillFromMonteCarloSampler()</span></code></a>)</li> +<li><strong>mc_steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of MC steps to perform for each loop candidate +(see <a class="reference internal" href="loop_candidates.html#promod3.modelling.LoopCandidates.FillFromMonteCarloSampler" title="promod3.modelling.LoopCandidates.FillFromMonteCarloSampler"><code class="xref py py-meth docutils literal"><span class="pre">FillFromMonteCarloSampler()</span></code></a>)</li> +<li><strong>use_scoring_extender</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True = use <a class="reference internal" href="gap_handling.html#promod3.modelling.ScoringGapExtender" title="promod3.modelling.ScoringGapExtender"><code class="xref py py-class docutils literal"><span class="pre">ScoringGapExtender</span></code></a> instead +of <a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal"><span class="pre">GapExtender</span></code></a>. +See <a class="reference internal" href="#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-func docutils literal"><span class="pre">CloseSmallDeletions()</span></code></a>.</li> +<li><strong>use_full_extender</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True = use <a class="reference internal" href="gap_handling.html#promod3.modelling.FullGapExtender" title="promod3.modelling.FullGapExtender"><code class="xref py py-class docutils literal"><span class="pre">FullGapExtender</span></code></a> instead of +<a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal"><span class="pre">GapExtender</span></code></a>. +See <a class="reference internal" href="#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-func docutils literal"><span class="pre">CloseSmallDeletions()</span></code></a>.</li> +<li><strong>score_variant</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – How to score loop candidates (AllAtom not supported). +See <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal"><span class="pre">FillLoopsByDatabase()</span></code></a>.</li> +<li><strong>ring_punch_detection</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – How to deal with ring punchings. +See <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal"><span class="pre">FillLoopsByDatabase()</span></code></a>.</li> +<li><strong>fragger_handles</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal"><span class="pre">FraggerHandle</span></code></a>) – Either None (no fragger sampling used) or one fragger handle for each chain in <em>mhandle</em>.</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – If not None, only gaps from chain with given index get +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – If not None, only gaps from chain with given index get processed</li> -<li><strong>resnum_range</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> containing two <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – If not None, only gaps within this resnum range get +<li><strong>resnum_range</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> containing two <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – If not None, only gaps within this resnum range get processed</li> -<li><strong>length_dep_weights</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – <a class="reference internal" href="loop_candidates.html#promod3.modelling.ScoringWeights" title="promod3.modelling.ScoringWeights"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoringWeights</span></code></a> provides different sets +<li><strong>length_dep_weights</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – <a class="reference internal" href="loop_candidates.html#promod3.modelling.ScoringWeights" title="promod3.modelling.ScoringWeights"><code class="xref py py-class docutils literal"><span class="pre">ScoringWeights</span></code></a> provides different sets of weights that have been trained on different loop subsets. If this flag is true, the length dependent weights are used to select the final @@ -1084,7 +1097,7 @@ loops.</li> <dt id="promod3.modelling.CloseLargeDeletions"> <code class="descclassname">promod3.modelling.</code><code class="descname">CloseLargeDeletions</code><span class="sig-paren">(</span><em>mhandle</em>, <em>structure_db</em>, <em>linker_length=8</em>, <em>num_fragments=500</em>, <em>use_scoring_extender=True</em>, <em>use_full_extender=True</em>, <em>chain_idx=None</em>, <em>resnum_range=None</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.CloseLargeDeletions" title="Permalink to this definition">¶</a></dt> <dd><p>Try to close large deletions.</p> -<p>This is meant as a “last-resort” approach. In some cases you cannot +<p>This is meant as a “last-resort” approach. In some cases you cannot close very large deletions simply because the two parts separated by a deletion are too far apart. The idea is to sample a linker region and always move the whole chain towards the n-terminus.</p> @@ -1093,22 +1106,22 @@ and always move the whole chain towards the n-terminus.</p> <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>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> -<li><strong>structure_db</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a>) – The database from which to extract fragments for +<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> +<li><strong>structure_db</strong> (<a class="reference internal" href="../loop/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>) – The database from which to extract fragments for the linker region.</li> -<li><strong>linker_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Desired length (in residues w/o stems) for the +<li><strong>linker_length</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Desired length (in residues w/o stems) for the linker. This may be shorter if extender cannot extend further.</li> -<li><strong>num_fragments</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of fragments to sample the linker.</li> -<li><strong>use_scoring_extender</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True = use <a class="reference internal" href="gap_handling.html#promod3.modelling.ScoringGapExtender" title="promod3.modelling.ScoringGapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScoringGapExtender</span></code></a> instead -of <a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">GapExtender</span></code></a>. -See <a class="reference internal" href="#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-func docutils literal notranslate"><span class="pre">CloseSmallDeletions()</span></code></a>.</li> -<li><strong>use_full_extender</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – True = use <a class="reference internal" href="gap_handling.html#promod3.modelling.FullGapExtender" title="promod3.modelling.FullGapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">FullGapExtender</span></code></a> instead of -<a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal notranslate"><span class="pre">GapExtender</span></code></a>. -See <a class="reference internal" href="#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-func docutils literal notranslate"><span class="pre">CloseSmallDeletions()</span></code></a>.</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – If not None, only gaps from chain with given index get +<li><strong>num_fragments</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of fragments to sample the linker.</li> +<li><strong>use_scoring_extender</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True = use <a class="reference internal" href="gap_handling.html#promod3.modelling.ScoringGapExtender" title="promod3.modelling.ScoringGapExtender"><code class="xref py py-class docutils literal"><span class="pre">ScoringGapExtender</span></code></a> instead +of <a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal"><span class="pre">GapExtender</span></code></a>. +See <a class="reference internal" href="#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-func docutils literal"><span class="pre">CloseSmallDeletions()</span></code></a>.</li> +<li><strong>use_full_extender</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – True = use <a class="reference internal" href="gap_handling.html#promod3.modelling.FullGapExtender" title="promod3.modelling.FullGapExtender"><code class="xref py py-class docutils literal"><span class="pre">FullGapExtender</span></code></a> instead of +<a class="reference internal" href="gap_handling.html#promod3.modelling.GapExtender" title="promod3.modelling.GapExtender"><code class="xref py py-class docutils literal"><span class="pre">GapExtender</span></code></a>. +See <a class="reference internal" href="#promod3.modelling.CloseSmallDeletions" title="promod3.modelling.CloseSmallDeletions"><code class="xref py py-func docutils literal"><span class="pre">CloseSmallDeletions()</span></code></a>.</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – If not None, only gaps from chain with given index get processed</li> -<li><strong>resnum_range</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> containing two <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – If not None, only gaps within this resnum range get +<li><strong>resnum_range</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> containing two <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – If not None, only gaps within this resnum range get processed</li> </ul> </td> @@ -1124,11 +1137,11 @@ processed</li> <p>Use with care! This is an experimental feature which will increase coverage but we do not assume that the resulting termini are of high quality!</p> <p>The termini are modelled by either sampling the dihedral angles or (if -<em>fragger_handles</em> is given) <a class="reference internal" href="../loop/structure_db.html#promod3.loop.Fragger" title="promod3.loop.Fragger"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fragger</span></code></a> lists. The latter +<em>fragger_handles</em> is given) <a class="reference internal" href="../loop/structure_db.html#promod3.loop.Fragger" title="promod3.loop.Fragger"><code class="xref py py-class docutils literal"><span class="pre">Fragger</span></code></a> lists. The latter is only used if the gap length is >= the length of fragments stored.</p> <p>Terminal gaps of length 1 are ignored by this function!</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">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</span> <span class="k">import</span> <span class="n">modelling</span><span class="p">,</span> <span class="n">loop</span> +<div class="highlight-default"><div class="highlight"><pre><span></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</span> <span class="kn">import</span> <span class="n">modelling</span><span class="p">,</span> <span class="n">loop</span> <span class="c1"># setup</span> <span class="n">tpl</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="s1">'data/gly.pdb'</span><span class="p">)</span> @@ -1150,14 +1163,14 @@ is only used if the gap length is >= the length of fragments stored.</p> <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>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> -<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a>) – A sampler for torsion angles.</li> -<li><strong>fragger_handles</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">FraggerHandle</span></code></a>) – Either None (no fragger sampling used) or one +<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> +<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/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>) – A sampler for torsion angles.</li> +<li><strong>fragger_handles</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="algorithms.html#promod3.modelling.FraggerHandle" title="promod3.modelling.FraggerHandle"><code class="xref py py-class docutils literal"><span class="pre">FraggerHandle</span></code></a>) – Either None (no fragger sampling used) or one fragger handle for each chain in <em>mhandle</em>.</li> -<li><strong>mc_num_loops</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of loop candidates to consider for each terminal gap -(see <a class="reference internal" href="loop_candidates.html#promod3.modelling.LoopCandidates.FillFromMonteCarloSampler" title="promod3.modelling.LoopCandidates.FillFromMonteCarloSampler"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FillFromMonteCarloSampler()</span></code></a>)</li> -<li><strong>mc_steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of MC steps to perform for each loop candidate -(see <a class="reference internal" href="loop_candidates.html#promod3.modelling.LoopCandidates.FillFromMonteCarloSampler" title="promod3.modelling.LoopCandidates.FillFromMonteCarloSampler"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FillFromMonteCarloSampler()</span></code></a>)</li> +<li><strong>mc_num_loops</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of loop candidates to consider for each terminal gap +(see <a class="reference internal" href="loop_candidates.html#promod3.modelling.LoopCandidates.FillFromMonteCarloSampler" title="promod3.modelling.LoopCandidates.FillFromMonteCarloSampler"><code class="xref py py-meth docutils literal"><span class="pre">FillFromMonteCarloSampler()</span></code></a>)</li> +<li><strong>mc_steps</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of MC steps to perform for each loop candidate +(see <a class="reference internal" href="loop_candidates.html#promod3.modelling.LoopCandidates.FillFromMonteCarloSampler" title="promod3.modelling.LoopCandidates.FillFromMonteCarloSampler"><code class="xref py py-meth docutils literal"><span class="pre">FillFromMonteCarloSampler()</span></code></a>)</li> </ul> </td> </tr> @@ -1169,30 +1182,30 @@ fragger handle for each chain in <em>mhandle</em>.</li> <dt id="promod3.modelling.BuildSidechains"> <code class="descclassname">promod3.modelling.</code><code class="descname">BuildSidechains</code><span class="sig-paren">(</span><em>mhandle</em>, <em>merge_distance=4</em>, <em>fragment_db=None</em>, <em>structure_db=None</em>, <em>torsion_sampler=None</em>, <em>rotamer_library=None</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.BuildSidechains" title="Permalink to this definition">¶</a></dt> <dd><p>Build sidechains for model.</p> -<p>This is a wrapper for <a class="reference internal" href="sidechain_reconstruction.html#promod3.modelling.ReconstructSidechains" title="promod3.modelling.ReconstructSidechains"><code class="xref py py-func docutils literal notranslate"><span class="pre">promod3.modelling.ReconstructSidechains()</span></code></a>, +<p>This is a wrapper for <a class="reference internal" href="sidechain_reconstruction.html#promod3.modelling.ReconstructSidechains" title="promod3.modelling.ReconstructSidechains"><code class="xref py py-func docutils literal"><span class="pre">promod3.modelling.ReconstructSidechains()</span></code></a>, followed by a check for ring punches. If ring punches are found it introduces gaps for the residues with punched rings and tries to fill them -with <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal notranslate"><span class="pre">FillLoopsByDatabase()</span></code></a> with <em>ring_punch_detection=2</em>.</p> +with <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal"><span class="pre">FillLoopsByDatabase()</span></code></a> with <em>ring_punch_detection=2</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>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> -<li><strong>merge_distance</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Used as parameter for <a class="reference internal" href="#promod3.modelling.MergeGapsByDistance" title="promod3.modelling.MergeGapsByDistance"><code class="xref py py-func docutils literal notranslate"><span class="pre">MergeGapsByDistance()</span></code></a> +<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> +<li><strong>merge_distance</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Used as parameter for <a class="reference internal" href="#promod3.modelling.MergeGapsByDistance" title="promod3.modelling.MergeGapsByDistance"><code class="xref py py-func docutils literal"><span class="pre">MergeGapsByDistance()</span></code></a> if ring punches are found.</li> -<li><strong>fragment_db</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.FragDB" title="promod3.loop.FragDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">FragDB</span></code></a>) – Used as parameter for <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal notranslate"><span class="pre">FillLoopsByDatabase()</span></code></a> +<li><strong>fragment_db</strong> (<a class="reference internal" href="../loop/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>) – Used as parameter for <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal"><span class="pre">FillLoopsByDatabase()</span></code></a> if ring punches are found. A default one is loaded if None.</li> -<li><strong>structure_db</strong> (<a class="reference internal" href="../loop/structure_db.html#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a>) – Used as parameter for <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal notranslate"><span class="pre">FillLoopsByDatabase()</span></code></a> +<li><strong>structure_db</strong> (<a class="reference internal" href="../loop/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>) – Used as parameter for <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal"><span class="pre">FillLoopsByDatabase()</span></code></a> if ring punches are found. A default one is loaded if None.</li> -<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a>) – Used as parameter for <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal notranslate"><span class="pre">FillLoopsByDatabase()</span></code></a> +<li><strong>torsion_sampler</strong> (<a class="reference internal" href="../loop/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>) – Used as parameter for <a class="reference internal" href="#promod3.modelling.FillLoopsByDatabase" title="promod3.modelling.FillLoopsByDatabase"><code class="xref py py-func docutils literal"><span class="pre">FillLoopsByDatabase()</span></code></a> if ring punches are found. A default one is loaded if None.</li> -<li><strong>rotamer_library</strong> (<a class="reference internal" href="../sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib" title="promod3.sidechain.RotamerLib"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerLib</span></code></a> or -<a class="reference internal" href="../sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib" title="promod3.sidechain.BBDepRotamerLib"><code class="xref py py-class docutils literal notranslate"><span class="pre">BBDepRotamerLib</span></code></a>) – Used as parameter for -<code class="xref py py-func docutils literal notranslate"><span class="pre">modelling.ReconstructSidechains()</span></code>, a default +<li><strong>rotamer_library</strong> (<a class="reference internal" href="../sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib" title="promod3.sidechain.RotamerLib"><code class="xref py py-class docutils literal"><span class="pre">RotamerLib</span></code></a> or +<a class="reference internal" href="../sidechain/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>) – Used as parameter for +<code class="xref py py-func docutils literal"><span class="pre">modelling.ReconstructSidechains()</span></code>, a default one is loaded if None.</li> </ul> </td> @@ -1205,7 +1218,7 @@ one is loaded if None.</li> <dt id="promod3.modelling.MinimizeModelEnergy"> <code class="descclassname">promod3.modelling.</code><code class="descname">MinimizeModelEnergy</code><span class="sig-paren">(</span><em>mhandle</em>, <em>max_iterations=12</em>, <em>max_iter_sd=20</em>, <em>max_iter_lbfgs=10</em>, <em>use_amber_ff=False</em>, <em>extra_force_fields=[]</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.MinimizeModelEnergy" title="Permalink to this definition">¶</a></dt> <dd><p>Minimize energy of final model using molecular mechanics.</p> -<p>Uses <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/molmm/#module-ost.mol.mm" title="(in OpenStructure v1.11.0)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ost.mol.mm</span></code></a> to perform energy minimization. +<p>Uses <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/molmm/#module-ost.mol.mm" title="(in OpenStructure v2.0.0)"><code class="xref py py-mod docutils literal"><span class="pre">ost.mol.mm</span></code></a> to perform energy minimization. It will iteratively (at most <em>max_iterations</em> times):</p> <ul class="simple"> <li>run up to <em>max_iter_sd</em> minimization iter. of a steepest descend method</li> @@ -1213,35 +1226,35 @@ It will iteratively (at most <em>max_iterations</em> times):</p> Broyden-Fletcher-Goldfarb-Shanno method</li> <li>abort if no stereochemical problems found</li> </ul> -<p>The idea is that we don’t want to minimize “too much”. So, we iteratively +<p>The idea is that we don’t want to minimize “too much”. So, we iteratively minimize until there are no stereochemical problems and not more.</p> <p>To speed things up, this can run on multiple CPU threads by setting the -env. variable <code class="docutils literal notranslate"><span class="pre">PM3_OPENMM_CPU_THREADS</span></code> to the number of desired threads. +env. variable <code class="docutils literal"><span class="pre">PM3_OPENMM_CPU_THREADS</span></code> to the number of desired threads. If the variable is not set, 1 thread will be used by default.</p> <p>If the starting model is so bad that the energy is NaN or Inf from the start (happens if atoms are on top of each other or almost), the energy minimization is aborted. This issue is logged and added as a major issue to -<a class="reference internal" href="#promod3.modelling.ModellingHandle.modelling_issues" title="promod3.modelling.ModellingHandle.modelling_issues"><code class="xref py py-attr docutils literal notranslate"><span class="pre">modelling_issues</span></code></a> of <em>mhandle</em>.</p> +<a class="reference internal" href="#promod3.modelling.ModellingHandle.modelling_issues" title="promod3.modelling.ModellingHandle.modelling_issues"><code class="xref py py-attr docutils literal"><span class="pre">modelling_issues</span></code></a> of <em>mhandle</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>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> -<li><strong>max_iterations</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Max. number of iterations for SD+LBFGS</li> -<li><strong>max_iter_sd</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Max. number of iterations within SD method</li> -<li><strong>max_iter_lbfgs</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Max. number of iterations within LBFGS method</li> -<li><strong>use_amber_ff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – if True, use the AMBER force field instead of the def. -CHARMM one (see <a class="reference internal" href="#promod3.modelling.BuildFromRawModel" title="promod3.modelling.BuildFromRawModel"><code class="xref py py-meth docutils literal notranslate"><span class="pre">BuildFromRawModel()</span></code></a>).</li> -<li><strong>extra_force_fields</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/mm/forcefield/#ost.mol.mm.Forcefield" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.mm.Forcefield</span></code></a>) – Additional list of force fields to use (see -<a class="reference internal" href="#promod3.modelling.BuildFromRawModel" title="promod3.modelling.BuildFromRawModel"><code class="xref py py-meth docutils literal notranslate"><span class="pre">BuildFromRawModel()</span></code></a>).</li> +<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle on which to apply change.</li> +<li><strong>max_iterations</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Max. number of iterations for SD+LBFGS</li> +<li><strong>max_iter_sd</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Max. number of iterations within SD method</li> +<li><strong>max_iter_lbfgs</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Max. number of iterations within LBFGS method</li> +<li><strong>use_amber_ff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – if True, use the AMBER force field instead of the def. +CHARMM one (see <a class="reference internal" href="#promod3.modelling.BuildFromRawModel" title="promod3.modelling.BuildFromRawModel"><code class="xref py py-meth docutils literal"><span class="pre">BuildFromRawModel()</span></code></a>).</li> +<li><strong>extra_force_fields</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/mm/forcefield/#ost.mol.mm.Forcefield" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.mm.Forcefield</span></code></a>) – Additional list of force fields to use (see +<a class="reference internal" href="#promod3.modelling.BuildFromRawModel" title="promod3.modelling.BuildFromRawModel"><code class="xref py py-meth docutils literal"><span class="pre">BuildFromRawModel()</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">The model including all oxygens as used in the minimizer.</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 external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Entity</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">Entity</span></code></a></p> </td> </tr> </tbody> @@ -1252,11 +1265,11 @@ CHARMM one (see <a class="reference internal" href="#promod3.modelling.BuildFrom <dt id="promod3.modelling.CheckFinalModel"> <code class="descclassname">promod3.modelling.</code><code class="descname">CheckFinalModel</code><span class="sig-paren">(</span><em>mhandle</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.CheckFinalModel" title="Permalink to this definition">¶</a></dt> <dd><p>Performs samity checks on final models and reports problems.</p> -<p>Issues are logged and tracked in <a class="reference internal" href="#promod3.modelling.ModellingHandle.modelling_issues" title="promod3.modelling.ModellingHandle.modelling_issues"><code class="xref py py-attr docutils literal notranslate"><span class="pre">modelling_issues</span></code></a> +<p>Issues are logged and tracked in <a class="reference internal" href="#promod3.modelling.ModellingHandle.modelling_issues" title="promod3.modelling.ModellingHandle.modelling_issues"><code class="xref py py-attr docutils literal"><span class="pre">modelling_issues</span></code></a> of <em>mhandle</em>. Major issues:</p> <ul class="simple"> <li>Chains with less than 3 residues (usually due to bad templates).</li> -<li>Incomplete models (i.e. some gaps couldn’t be closed). One issue is +<li>Incomplete models (i.e. some gaps couldn’t be closed). One issue is created per unclosed gap and the stems of the gap are added to the issue.</li> <li>Complete models with sequence mismatches (should never happen).</li> <li>Residues with rings which have been punched by another bond.</li> @@ -1264,14 +1277,14 @@ created per unclosed gap and the stems of the gap are added to the issue.</li> <p>Minor issues:</p> <ul class="simple"> <li>Remaining stereo-chemical problems after energy minimization. The affected -residues will have the boolean property “stereo_chemical_problem_backbone” +residues will have the boolean property “stereo_chemical_problem_backbone” set to True, if the problem affects backbone atoms.</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"><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle for which to perform checks.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Modelling handle for which to perform checks.</td> </tr> </tbody> </table> @@ -1285,9 +1298,9 @@ set to True, if the problem affects backbone atoms.</li> <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>text</strong> – Sets <a class="reference internal" href="#promod3.modelling.ModellingIssue.text" title="promod3.modelling.ModellingIssue.text"><code class="xref py py-attr docutils literal notranslate"><span class="pre">text</span></code></a>.</li> -<li><strong>severity</strong> – Sets <a class="reference internal" href="#promod3.modelling.ModellingIssue.severity" title="promod3.modelling.ModellingIssue.severity"><code class="xref py py-attr docutils literal notranslate"><span class="pre">severity</span></code></a>.</li> -<li><strong>residue_list</strong> – Sets <a class="reference internal" href="#promod3.modelling.ModellingIssue.residue_list" title="promod3.modelling.ModellingIssue.residue_list"><code class="xref py py-attr docutils literal notranslate"><span class="pre">residue_list</span></code></a>.</li> +<li><strong>text</strong> – Sets <a class="reference internal" href="#promod3.modelling.ModellingIssue.text" title="promod3.modelling.ModellingIssue.text"><code class="xref py py-attr docutils literal"><span class="pre">text</span></code></a>.</li> +<li><strong>severity</strong> – Sets <a class="reference internal" href="#promod3.modelling.ModellingIssue.severity" title="promod3.modelling.ModellingIssue.severity"><code class="xref py py-attr docutils literal"><span class="pre">severity</span></code></a>.</li> +<li><strong>residue_list</strong> – Sets <a class="reference internal" href="#promod3.modelling.ModellingIssue.residue_list" title="promod3.modelling.ModellingIssue.residue_list"><code class="xref py py-attr docutils literal"><span class="pre">residue_list</span></code></a>.</li> </ul> </td> </tr> @@ -1301,7 +1314,7 @@ set to True, if the problem affects backbone atoms.</li> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></td> </tr> </tbody> </table> @@ -1315,7 +1328,7 @@ set to True, if the problem affects backbone atoms.</li> <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="#promod3.modelling.ModellingIssue.Severity" title="promod3.modelling.ModellingIssue.Severity"><code class="xref py py-class docutils literal notranslate"><span class="pre">Severity</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference internal" href="#promod3.modelling.ModellingIssue.Severity" title="promod3.modelling.ModellingIssue.Severity"><code class="xref py py-class docutils literal"><span class="pre">Severity</span></code></a></td> </tr> </tbody> </table> @@ -1329,8 +1342,8 @@ set to True, if the problem affects backbone atoms.</li> <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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ResidueHandle</span></code></a> / -<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueView" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ResidueView</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ResidueHandle</span></code></a> / +<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueView" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ResidueView</span></code></a></td> </tr> </tbody> </table> @@ -1356,14 +1369,14 @@ set to True, if the problem affects backbone atoms.</li> <dl class="method"> <dt id="promod3.modelling.ModellingIssue.is_major"> -<code class="descname">is_major</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.ModellingIssue.is_major" title="Permalink to this definition">¶</a></dt> +<code class="descclassname">ModellingIssue.</code><code class="descname">is_major</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.ModellingIssue.is_major" 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">True if this is a major issue.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -1374,19 +1387,19 @@ set to True, if the problem affects backbone atoms.</li> <dl class="function"> <dt id="promod3.modelling.AddModellingIssue"> <code class="descclassname">promod3.modelling.</code><code class="descname">AddModellingIssue</code><span class="sig-paren">(</span><em>mhandle</em>, <em>text</em>, <em>severity</em>, <em>residue_list=[]</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.AddModellingIssue" title="Permalink to this definition">¶</a></dt> -<dd><p>Adds a new <a class="reference internal" href="#promod3.modelling.ModellingIssue" title="promod3.modelling.ModellingIssue"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingIssue</span></code></a> to -<a class="reference internal" href="#promod3.modelling.ModellingHandle.modelling_issues" title="promod3.modelling.ModellingHandle.modelling_issues"><code class="xref py py-attr docutils literal notranslate"><span class="pre">modelling_issues</span></code></a> in <em>mhandle</em>.</p> -<p>If <em>mhandle</em> doesn’t contain the <a class="reference internal" href="#promod3.modelling.ModellingHandle.modelling_issues" title="promod3.modelling.ModellingHandle.modelling_issues"><code class="xref py py-attr docutils literal notranslate"><span class="pre">modelling_issues</span></code></a> +<dd><p>Adds a new <a class="reference internal" href="#promod3.modelling.ModellingIssue" title="promod3.modelling.ModellingIssue"><code class="xref py py-class docutils literal"><span class="pre">ModellingIssue</span></code></a> to +<a class="reference internal" href="#promod3.modelling.ModellingHandle.modelling_issues" title="promod3.modelling.ModellingHandle.modelling_issues"><code class="xref py py-attr docutils literal"><span class="pre">modelling_issues</span></code></a> in <em>mhandle</em>.</p> +<p>If <em>mhandle</em> doesn’t contain the <a class="reference internal" href="#promod3.modelling.ModellingHandle.modelling_issues" title="promod3.modelling.ModellingHandle.modelling_issues"><code class="xref py py-attr docutils literal"><span class="pre">modelling_issues</span></code></a> attribute yet, it is 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">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModellingHandle</span></code></a>) – Will have the issue added to.</li> -<li><strong>text</strong> – Sets <a class="reference internal" href="#promod3.modelling.ModellingIssue.text" title="promod3.modelling.ModellingIssue.text"><code class="xref py py-attr docutils literal notranslate"><span class="pre">ModellingIssue.text</span></code></a>.</li> -<li><strong>severity</strong> – Sets <a class="reference internal" href="#promod3.modelling.ModellingIssue.severity" title="promod3.modelling.ModellingIssue.severity"><code class="xref py py-attr docutils literal notranslate"><span class="pre">ModellingIssue.severity</span></code></a>.</li> -<li><strong>residue_list</strong> – Sets <a class="reference internal" href="#promod3.modelling.ModellingIssue.residue_list" title="promod3.modelling.ModellingIssue.residue_list"><code class="xref py py-attr docutils literal notranslate"><span class="pre">ModellingIssue.residue_list</span></code></a>.</li> +<li><strong>mhandle</strong> (<a class="reference internal" href="#promod3.modelling.ModellingHandle" title="promod3.modelling.ModellingHandle"><code class="xref py py-class docutils literal"><span class="pre">ModellingHandle</span></code></a>) – Will have the issue added to.</li> +<li><strong>text</strong> – Sets <a class="reference internal" href="#promod3.modelling.ModellingIssue.text" title="promod3.modelling.ModellingIssue.text"><code class="xref py py-attr docutils literal"><span class="pre">ModellingIssue.text</span></code></a>.</li> +<li><strong>severity</strong> – Sets <a class="reference internal" href="#promod3.modelling.ModellingIssue.severity" title="promod3.modelling.ModellingIssue.severity"><code class="xref py py-attr docutils literal"><span class="pre">ModellingIssue.severity</span></code></a>.</li> +<li><strong>residue_list</strong> – Sets <a class="reference internal" href="#promod3.modelling.ModellingIssue.residue_list" title="promod3.modelling.ModellingIssue.residue_list"><code class="xref py py-attr docutils literal"><span class="pre">ModellingIssue.residue_list</span></code></a>.</li> </ul> </td> </tr> @@ -1404,72 +1417,45 @@ attribute yet, it is added.</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Modelling Pipeline</a><ul> +<li><a class="reference internal" href="#build-raw-modelling-handle">Build Raw Modelling Handle</a></li> +<li><a class="reference internal" href="#the-default-pipeline">The Default Pipeline</a></li> +<li><a class="reference internal" href="#modelling-steps">Modelling Steps</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> - <li>Previous: <a href="index.html" title="previous chapter"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> + <li><a href="index.html"><code class="docutils literal"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> + <li>Previous: <a href="index.html" title="previous chapter"><code class="docutils literal"><span class="pre">modelling</span></code> - Protein Modelling</a></li> <li>Next: <a href="model_checking.html" title="next chapter">Model Checking</a></li> </ul></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/modelling/pipeline.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -1478,11 +1464,11 @@ attribute yet, it is added.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/modelling/pipeline.rst.txt" + <a href="../_sources/modelling/pipeline.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/sidechain_reconstruction.html b/doc/html/modelling/sidechain_reconstruction.html index bf8ae04e9de57a457fecf476cf8fc5e3986a52ed..30408defd75febb96c9bec57b6ab4becf1d86336 100644 --- a/doc/html/modelling/sidechain_reconstruction.html +++ b/doc/html/modelling/sidechain_reconstruction.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Sidechain Reconstruction — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="modelling - Protein Modelling" href="index.html" /> <link rel="next" title="Modelling Algorithms" href="algorithms.html" /> <link rel="prev" title="Generating Loops De Novo" href="monte_carlo.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -38,14 +51,14 @@ <h1>Sidechain Reconstruction<a class="headerlink" href="#sidechain-reconstruction" title="Permalink to this headline">¶</a></h1> <p>Two methods are provided to fully reconstruct sidechains of residues:</p> <ul class="simple"> -<li>the <a class="reference internal" href="#promod3.modelling.ReconstructSidechains" title="promod3.modelling.ReconstructSidechains"><code class="xref py py-func docutils literal notranslate"><span class="pre">ReconstructSidechains()</span></code></a> function handles a full OST -<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">EntityHandle</span></code></a></li> -<li>the <a class="reference internal" href="#promod3.modelling.SidechainReconstructor" title="promod3.modelling.SidechainReconstructor"><code class="xref py py-class docutils literal notranslate"><span class="pre">SidechainReconstructor</span></code></a> is linked to an all atom environment +<li>the <a class="reference internal" href="#promod3.modelling.ReconstructSidechains" title="promod3.modelling.ReconstructSidechains"><code class="xref py py-func docutils literal"><span class="pre">ReconstructSidechains()</span></code></a> function handles a full OST +<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">EntityHandle</span></code></a></li> +<li>the <a class="reference internal" href="#promod3.modelling.SidechainReconstructor" title="promod3.modelling.SidechainReconstructor"><code class="xref py py-class docutils literal"><span class="pre">SidechainReconstructor</span></code></a> is linked to an all atom environment and used to reconstruct sidechains of single loops</li> </ul> <p>Example usage:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">io</span><span class="p">,</span> <span class="n">mol</span> -<span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">modelling</span> +<div class="highlight-default"><div class="highlight"><pre><span></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">mol</span> +<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">modelling</span> <span class="c1"># load a protein </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="s1">'data/1CRN.pdb'</span><span class="p">)</span> @@ -57,8 +70,8 @@ and used to reconstruct sidechains of single loops</li> <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="s1">'sidechain_test_rec.pdb'</span><span class="p">)</span> </pre></div> </div> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">io</span> -<span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">loop</span><span class="p">,</span> <span class="n">modelling</span> +<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">io</span> +<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">loop</span><span class="p">,</span> <span class="n">modelling</span> <span class="c1"># load example (has res. numbering starting at 1)</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="s1">'data/1CRN.pdb'</span><span class="p">)</span> @@ -94,32 +107,32 @@ and used to reconstruct sidechains of single loops</li> <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>ent</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.EntityHandle</span></code></a>) – Structure for sidechain reconstruction. Note, that the sidechain +<li><strong>ent</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityHandle</span></code></a>) – 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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Flag, whether complete sidechains in <em>ent</em> (i.e. +<li><strong>keep_sidechains</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Flag, whether complete sidechains in <em>ent</em> (i.e. containing all required atoms) 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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Flag, whether possible disulfid bonds should be +<li><strong>build_disulfids</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – 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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Rotamer model to be used, can either be “frm” or “rrm”</li> -<li><strong>consider_ligands</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Flag, whether to add ligands (anything in chain -‘_’) as static objects.</li> -<li><strong>rotamer_library</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">BBDepRotamerLib</span></code> / <code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerLib</span></code>) – A rotamer library to extract the rotamers from. The -default is to call <code class="xref py py-meth docutils literal notranslate"><span class="pre"><LoadBBDepLib>()</span></code>.</li> -<li><strong>optimize_subrotamers</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Only considered when <em>rotamer_model</em> -is “frm”. +<li><strong>rotamer_model</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Rotamer model to be used, can either be “frm” or “rrm”</li> +<li><strong>consider_ligands</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Flag, whether to add ligands (anything in chain +‘_’) as static objects.</li> +<li><strong>rotamer_library</strong> (<code class="xref py py-class docutils literal"><span class="pre">BBDepRotamerLib</span></code> / <code class="xref py py-class docutils literal"><span class="pre">RotamerLib</span></code>) – A rotamer library to extract the rotamers from. The +default is to call <code class="xref py py-meth docutils literal"><span class="pre"><LoadBBDepLib>()</span></code>.</li> +<li><strong>optimize_subrotamers</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Only considered when <em>rotamer_model</em> +is “frm”. If set to True, the FRM solution undergoes some postprocessing by calling -<code class="xref py py-func docutils literal notranslate"><span class="pre">SubrotamerOptimizer()</span></code> with default +<code class="xref py py-func docutils literal"><span class="pre">SubrotamerOptimizer()</span></code> with default parametrization.</li> -<li><strong>graph_max_complexity</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Max. complexity for -<code class="xref py py-meth docutils literal notranslate"><span class="pre">RotamerGraph.TreeSolve()</span></code>.</li> -<li><strong>graph_intial_epsilon</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Initial epsilon for -<code class="xref py py-meth docutils literal notranslate"><span class="pre">RotamerGraph.TreeSolve()</span></code>.</li> -<li><strong>energy_function</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – What energy function to use can be any in -[“SCWRL4”, “SCWRL3”]</li> +<li><strong>graph_max_complexity</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Max. complexity for +<code class="xref py py-meth docutils literal"><span class="pre">RotamerGraph.TreeSolve()</span></code>.</li> +<li><strong>graph_intial_epsilon</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Initial epsilon for +<code class="xref py py-meth docutils literal"><span class="pre">RotamerGraph.TreeSolve()</span></code>.</li> +<li><strong>energy_function</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – What energy function to use can be any in +[“SCWRL4”, “SCWRL3”]</li> </ul> </td> </tr> @@ -134,7 +147,7 @@ parametrization.</li> <dt id="promod3.modelling.SidechainReconstructor"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">SidechainReconstructor</code><span class="sig-paren">(</span><em>keep_sidechains=True</em>, <em>build_disulfids=True</em>, <em>optimize_subrotamers=False</em>, <em>remodel_cutoff=20</em>, <em>rigid_frame_cutoff=0</em>, <em>graph_max_complexity=100000000</em>, <em>graph_intial_epsilon=0.02</em>, <em>disulfid_score_thresh=45</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.modelling.SidechainReconstructor" title="Permalink to this definition">¶</a></dt> <dd><p>Reconstruct sidechains for single loops or residues. Must be linked to an -all atom env. (<a class="reference internal" href="#promod3.modelling.SidechainReconstructor.AttachEnvironment" title="promod3.modelling.SidechainReconstructor.AttachEnvironment"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AttachEnvironment()</span></code></a>) containing the structural data. +all atom env. (<a class="reference internal" href="#promod3.modelling.SidechainReconstructor.AttachEnvironment" title="promod3.modelling.SidechainReconstructor.AttachEnvironment"><code class="xref py py-meth docutils literal"><span class="pre">AttachEnvironment()</span></code></a>) containing the structural data. Residues are identified as N- or C-terminal according to the seqres in the environment. This means that residues preceeded / followed by gaps are not treated as terminal! In the reconstruction procedure you can specify @@ -152,20 +165,20 @@ CB atom distance between residues (CA in case of glycine).</p> <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>keep_sidechains</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Flag, whether complete sidechains in env. (i.e. +<li><strong>keep_sidechains</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Flag, whether complete sidechains in env. (i.e. containing all required atoms) should be kept rigid and directly be added to the result.</li> -<li><strong>build_disulfids</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Flag, whether possible disulfid bonds should be +<li><strong>build_disulfids</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Flag, whether possible disulfid bonds should be searched. If a disulfid bond is found, the two participating cysteins are fixed and added to the result.</li> -<li><strong>optimize_subrotamers</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Flag, whether the -<a class="reference internal" href="../sidechain/subrotamer_optimizer.html#promod3.sidechain.SubrotamerOptimizer" title="promod3.sidechain.SubrotamerOptimizer"><code class="xref py py-func docutils literal notranslate"><span class="pre">SubrotamerOptimizer()</span></code></a> +<li><strong>optimize_subrotamers</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Flag, whether the +<a class="reference internal" href="../sidechain/subrotamer_optimizer.html#promod3.sidechain.SubrotamerOptimizer" title="promod3.sidechain.SubrotamerOptimizer"><code class="xref py py-func docutils literal"><span class="pre">SubrotamerOptimizer()</span></code></a> with default parametrization should be called -if we’re dealing with FRM rotamers.</li> -<li><strong>remodel_cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Cutoff to identify all residues that need to be +if we’re dealing with FRM rotamers.</li> +<li><strong>remodel_cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Cutoff to identify all residues that need to be remodelled.</li> -<li><strong>rigid_frame_cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Cutoff to control the visibility of the rigid +<li><strong>rigid_frame_cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Cutoff to control the visibility of the rigid frame to the reconstruction procedure. Everything within [<em>remodel_cutoff</em>, @@ -173,13 +186,13 @@ Everything within will be considered as ridig frame. Small sidenote: if the <em>keep_sidechains</em> flag is true and all residues within <em>remodel_cutoff</em> already have a -sidechain, the <em>rigid_frame_cutoff</em> won’t have any +sidechain, the <em>rigid_frame_cutoff</em> won’t have any effect.</li> -<li><strong>graph_max_complexity</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Max. complexity for -<code class="xref py py-meth docutils literal notranslate"><span class="pre">promod3.sidechain.RotamerGraph.TreeSolve()</span></code>.</li> -<li><strong>graph_intial_epsilon</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Initial epsilon for -<code class="xref py py-meth docutils literal notranslate"><span class="pre">promod3.sidechain.RotamerGraph.TreeSolve()</span></code>.</li> -<li><strong>disulfid_score_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – If <code class="xref py py-meth docutils literal notranslate"><span class="pre">DisulfidScore()</span></code> between two CYS is +<li><strong>graph_max_complexity</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Max. complexity for +<code class="xref py py-meth docutils literal"><span class="pre">promod3.sidechain.RotamerGraph.TreeSolve()</span></code>.</li> +<li><strong>graph_intial_epsilon</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Initial epsilon for +<code class="xref py py-meth docutils literal"><span class="pre">promod3.sidechain.RotamerGraph.TreeSolve()</span></code>.</li> +<li><strong>disulfid_score_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – If <code class="xref py py-meth docutils literal"><span class="pre">DisulfidScore()</span></code> between two CYS is below this threshold, we consider them to be disulfid-bonded.</li> </ul> @@ -206,22 +219,22 @@ environment before calling this!</p> <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>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResNum" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResNum</span></code></a>) – Start of loop.</li> -<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Length of loop.</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Chain the loop belongs to.</li> -<li><strong>start_resnum_list</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Starts of loops.</li> -<li><strong>num_residues_list</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Lengths of loops.</li> -<li><strong>chain_idx_list</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Chains the loops belong to.</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResNum" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResNum</span></code></a>) – Start of loop.</li> +<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Length of loop.</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Chain the loop belongs to.</li> +<li><strong>start_resnum_list</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Starts of loops.</li> +<li><strong>num_residues_list</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Lengths of loops.</li> +<li><strong>chain_idx_list</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Chains the loops belong to.</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">A helper object with all the reconstruction results.</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.modelling.SidechainReconstructionData" title="promod3.modelling.SidechainReconstructionData"><code class="xref py py-class docutils literal notranslate"><span class="pre">SidechainReconstructionData</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.modelling.SidechainReconstructionData" title="promod3.modelling.SidechainReconstructionData"><code class="xref py py-class docutils literal"><span class="pre">SidechainReconstructionData</span></code></a></p> </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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if reconstructor was never attached +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if reconstructor was never attached to an environment or if parameters lead to invalid / unset positions in environment.</p> </td> @@ -244,17 +257,17 @@ if multiple reconstructors are used (or you must use a distinct <em>env</em>).</ <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>env</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnv</span></code></a>) – Link to this environment.</li> -<li><strong>use_frm</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – If True, use flexible rotamer model, else rigid.</li> -<li><strong>use_bbdep_lib</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – If True, use default backbone dependent rot. library -(<code class="xref py py-meth docutils literal notranslate"><span class="pre">LoadBBDepLib()</span></code>), else use +<li><strong>env</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnv</span></code></a>) – Link to this environment.</li> +<li><strong>use_frm</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – If True, use flexible rotamer model, else rigid.</li> +<li><strong>use_bbdep_lib</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – If True, use default backbone dependent rot. library +(<code class="xref py py-meth docutils literal"><span class="pre">LoadBBDepLib()</span></code>), else use backbone independent one -(<code class="xref py py-meth docutils literal notranslate"><span class="pre">LoadLib()</span></code>).</li> -<li><strong>rotamer_library</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">BBDepRotamerLib</span></code> / <code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerLib</span></code>) – Custom rotamer library to be used.</li> +(<code class="xref py py-meth docutils literal"><span class="pre">LoadLib()</span></code>).</li> +<li><strong>rotamer_library</strong> (<code class="xref py py-class docutils literal"><span class="pre">BBDepRotamerLib</span></code> / <code class="xref py py-class docutils literal"><span class="pre">RotamerLib</span></code>) – Custom rotamer library to be used.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>env</em> was already linked to +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>env</em> was already linked to another reconstructor with inconsistent parameters. Acceptable changes:</p> <ul class="last simple"> @@ -276,18 +289,18 @@ changes:</p> <dt id="promod3.modelling.SidechainReconstructionData"> <em class="property">class </em><code class="descclassname">promod3.modelling.</code><code class="descname">SidechainReconstructionData</code><a class="headerlink" href="#promod3.modelling.SidechainReconstructionData" title="Permalink to this definition">¶</a></dt> <dd><p>Contains the results of a sidechain reconstruction -(<a class="reference internal" href="#promod3.modelling.SidechainReconstructor.Reconstruct" title="promod3.modelling.SidechainReconstructor.Reconstruct"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SidechainReconstructor.Reconstruct()</span></code></a>). All attributes are read only!</p> +(<a class="reference internal" href="#promod3.modelling.SidechainReconstructor.Reconstruct" title="promod3.modelling.SidechainReconstructor.Reconstruct"><code class="xref py py-meth docutils literal"><span class="pre">SidechainReconstructor.Reconstruct()</span></code></a>). All attributes are read only!</p> <dl class="attribute"> <dt id="promod3.modelling.SidechainReconstructionData.env_pos"> <code class="descname">env_pos</code><a class="headerlink" href="#promod3.modelling.SidechainReconstructionData.env_pos" title="Permalink to this definition">¶</a></dt> <dd><p>Container for structural data and mapping to the internal residue indices -of the used <a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnv</span></code></a>. Useful for scoring and env. +of the used <a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnv</span></code></a>. Useful for scoring and env. updates.</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="../loop/all_atom.html#promod3.loop.AllAtomEnvPositions" title="promod3.loop.AllAtomEnvPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnvPositions</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnvPositions" title="promod3.loop.AllAtomEnvPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnvPositions</span></code></a></td> </tr> </tbody> </table> @@ -299,7 +312,7 @@ updates.</p> <dt id="promod3.modelling.SidechainReconstructionData.loop_lengths"> <code class="descname">loop_lengths</code><a class="headerlink" href="#promod3.modelling.SidechainReconstructionData.loop_lengths" title="Permalink to this definition">¶</a></dt> <dd><p>The first <em>sum(loop_lengths)</em> residues in -<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnvPositions.res_indices" title="promod3.loop.AllAtomEnvPositions.res_indices"><code class="xref py py-attr docutils literal notranslate"><span class="pre">res_indices</span></code></a> of <em>env_pos</em> are +<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnvPositions.res_indices" title="promod3.loop.AllAtomEnvPositions.res_indices"><code class="xref py py-attr docutils literal"><span class="pre">res_indices</span></code></a> of <em>env_pos</em> are guaranteed to belong to the actual input, all the rest comes from the close environment.</p> <p>Each input loop (apart from overlapping and 0-length loops) is defined by an @@ -312,7 +325,7 @@ the stems.</p> <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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -327,7 +340,7 @@ the stems.</p> <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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -342,7 +355,7 @@ bridge (indices in [<em>0, len(env_pos.res_indices)-1</em>]).</p> <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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> with two <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> with two <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></td> </tr> </tbody> </table> @@ -357,7 +370,7 @@ in the environment (same length as <em>env_pos.res_indices</em>)</p> <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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -372,7 +385,7 @@ in the environment (same length as <em>env_pos.res_indices</em>)</p> <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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> </tbody> </table> @@ -390,45 +403,21 @@ in the environment (same length as <em>env_pos.res_indices</em>)</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Sidechain Reconstruction</a><ul> +<li><a class="reference internal" href="#reconstruct-function">Reconstruct Function</a></li> +<li><a class="reference internal" href="#sidechainreconstructor-class">SidechainReconstructor Class</a></li> +<li><a class="reference internal" href="#the-sidechainreconstructiondata-class">The SidechainReconstructionData class</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> <li>Previous: <a href="monte_carlo.html" title="previous chapter">Generating Loops De Novo</a></li> <li>Next: <a href="algorithms.html" title="next chapter">Modelling Algorithms</a></li> </ul></li> @@ -436,26 +425,23 @@ in the environment (same length as <em>env_pos.res_indices</em>)</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/modelling/sidechain_reconstruction.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -464,11 +450,11 @@ in the environment (same length as <em>env_pos.res_indices</em>)</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/modelling/sidechain_reconstruction.rst.txt" + <a href="../_sources/modelling/sidechain_reconstruction.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/objects.inv b/doc/html/objects.inv index ab2026943f8701647d55765b8ce88e980a39a3d4..602290626e1f18ec433a41b4583f12e17c2fe4d1 100644 Binary files a/doc/html/objects.inv and b/doc/html/objects.inv differ diff --git a/doc/html/portableIO.html b/doc/html/portableIO.html index b6c70238d53b0743f9414f90aeb800493295ab39..a618910159389fb793673c05bc569d7dd15905f5 100644 --- a/doc/html/portableIO.html +++ b/doc/html/portableIO.html @@ -1,30 +1,43 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Using Binary Files In ProMod3 — ProMod3 3.0.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" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="index.html" /> + <link rel="up" title="Documentation For Developers" href="developers.html" /> <link rel="next" title="License" href="license.html" /> - <link rel="prev" title="ProMod3’s Share Of CMake" href="cmake/index.html" /> + <link rel="prev" title="ProMod3‘s Share Of CMake" href="cmake/index.html" /> <link rel="stylesheet" href="_static/custom.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -41,11 +54,11 @@ files to be loaded and stored. Here, we provide guidelines and describe helper tools to perform tasks related to loading and storing binary files.</p> <p>Generally, each binary file consists of a short header and binary data. The header ensures consistency between the storing and the loading of data, -while the “binary data” is some binary representation of the data of interest.</p> +while the “binary data” is some binary representation of the data of interest.</p> <p>The main issue, we try to address is that in C++, the binary representation of objects can be machine- and compiler-dependent. The standard guarantees -though that <code class="docutils literal notranslate"><span class="pre">sizeof(char)</span> <span class="pre">=</span> <span class="pre">1</span></code> and that <code class="docutils literal notranslate"><span class="pre">std::vector</span></code> is contiguous in -memory. Everything else (e.g. <code class="docutils literal notranslate"><span class="pre">sizeof(int)</span></code>, endianness, padding of structs) +though that <code class="docutils literal"><span class="pre">sizeof(char)</span> <span class="pre">=</span> <span class="pre">1</span></code> and that <code class="docutils literal"><span class="pre">std::vector</span></code> is contiguous in +memory. Everything else (e.g. <code class="docutils literal"><span class="pre">sizeof(int)</span></code>, endianness, padding of structs) can vary. Two approaches can be used:</p> <ol class="arabic simple"> <li>Raw binary data files which are very fast to load, but assume a certain @@ -59,86 +72,86 @@ case you should still distribute only the portable file and provide a converter which loads the portable file and stores a raw binary file for further use. Storing and loading of raw binary files on the same machine with the same compiler should never be an issue.</p> -<p>For instance, the classes <a class="reference internal" href="loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a>, -<a class="reference internal" href="loop/structure_db.html#promod3.loop.FragDB" title="promod3.loop.FragDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">FragDB</span></code></a>, <a class="reference internal" href="loop/structure_db.html#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a>, -<a class="reference internal" href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib" title="promod3.sidechain.BBDepRotamerLib"><code class="xref py py-class docutils literal notranslate"><span class="pre">BBDepRotamerLib</span></code></a> and -<a class="reference internal" href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib" title="promod3.sidechain.RotamerLib"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerLib</span></code></a> use this approach and the conversion is -automatically done in the <code class="docutils literal notranslate"><span class="pre">make</span></code> process. Code examples are given in the unit -tests in <code class="file docutils literal notranslate"><span class="pre">test_check_io.cc</span></code> and <code class="file docutils literal notranslate"><span class="pre">test_portable_binary.cc</span></code> and in the +<p>For instance, the classes <a class="reference internal" href="loop/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>, +<a class="reference internal" href="loop/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>, <a class="reference internal" href="loop/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>, +<a class="reference internal" href="sidechain/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> and +<a class="reference internal" href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib" title="promod3.sidechain.RotamerLib"><code class="xref py py-class docutils literal"><span class="pre">RotamerLib</span></code></a> use this approach and the conversion is +automatically done in the <code class="docutils literal"><span class="pre">make</span></code> process. Code examples are given in the unit +tests in <code class="file docutils literal"><span class="pre">test_check_io.cc</span></code> and <code class="file docutils literal"><span class="pre">test_portable_binary.cc</span></code> and in the C++ code of the classes listed above (see methods Load, Save, LoadPortable and SavePortable).</p> <div class="section" id="file-header"> <h2>File Header<a class="headerlink" href="#file-header" title="Permalink to this headline">¶</a></h2> <p>The header is written/read with functions provided in the header file -<code class="file docutils literal notranslate"><span class="pre">promod3/core/check_io.hh</span></code>. The header is written/read before the data +<code class="file docutils literal"><span class="pre">promod3/core/check_io.hh</span></code>. The header is written/read before the data itself and is structured as follows:</p> <ul class="simple"> -<li>a “magic number” (ensures that we can read <code class="docutils literal notranslate"><span class="pre">uint32_t</span></code> which is needed for +<li>a “magic number” (ensures that we can read <code class="docutils literal"><span class="pre">uint32_t</span></code> which is needed for the following fields)</li> <li>a version number (allows for backwards-compatibility)</li> <li>sizes for all types which are treated as raw memory (i.e. casted to a byte -(<code class="docutils literal notranslate"><span class="pre">char</span></code>) array and written either to memory or to a stream)</li> -<li>example values for the used base-types (ensures we can e.g. read an <code class="docutils literal notranslate"><span class="pre">int</span></code>)</li> +(<code class="docutils literal"><span class="pre">char</span></code>) array and written either to memory or to a stream)</li> +<li>example values for the used base-types (ensures we can e.g. read an <code class="docutils literal"><span class="pre">int</span></code>)</li> </ul> <p>For portable I/O (see below), we only write/read fixed-width fundamental -data-types (e.g. <code class="docutils literal notranslate"><span class="pre">int32_t</span></code>, <code class="docutils literal notranslate"><span class="pre">float</span></code>). Hence, we only check if we can +data-types (e.g. <code class="docutils literal"><span class="pre">int32_t</span></code>, <code class="docutils literal"><span class="pre">float</span></code>). Hence, we only check if we can read/write those types. -When data is converted from a non-fixed fundamental type <code class="docutils literal notranslate"><span class="pre">T</span></code> (e.g. <code class="docutils literal notranslate"><span class="pre">uint</span></code>, -<code class="docutils literal notranslate"><span class="pre">short</span></code>, <code class="docutils literal notranslate"><span class="pre">Real</span></code>), we furthermore ensure that the used fixed-width type -(size written to file) is <code class="docutils literal notranslate"><span class="pre"><=</span> <span class="pre">sizeof(T)</span></code>.</p> +When data is converted from a non-fixed fundamental type <code class="docutils literal"><span class="pre">T</span></code> (e.g. <code class="docutils literal"><span class="pre">uint</span></code>, +<code class="docutils literal"><span class="pre">short</span></code>, <code class="docutils literal"><span class="pre">Real</span></code>), we furthermore ensure that the used fixed-width type +(size written to file) is <code class="docutils literal"><span class="pre"><=</span> <span class="pre">sizeof(T)</span></code>.</p> <p>All write functions (when saving a binary) should be mirrored by the corresponding check (or get) function in the exact same order when loading.</p> <p>All functions are templatized to work with any OST-like data sink or source -and overloaded to work with <code class="docutils literal notranslate"><span class="pre">std::ofstream</span></code> and <code class="docutils literal notranslate"><span class="pre">std::ifstream</span></code>.</p> +and overloaded to work with <code class="docutils literal"><span class="pre">std::ofstream</span></code> and <code class="docutils literal"><span class="pre">std::ifstream</span></code>.</p> </div> <div class="section" id="portable-binary-data"> <h2>Portable Binary Data<a class="headerlink" href="#portable-binary-data" title="Permalink to this headline">¶</a></h2> <p>Portable files are written/read with functions and classes provided in the -header file <code class="file docutils literal notranslate"><span class="pre">promod3/core/portable_binary_serializer.hh</span></code>. +header file <code class="file docutils literal"><span class="pre">promod3/core/portable_binary_serializer.hh</span></code>. Generally, we store any data-structure value-by-value as fixed-width types!</p> <p>Writing and reading is performed by the following classes:</p> <ul class="simple"> -<li><code class="docutils literal notranslate"><span class="pre">PortableBinaryDataSink</span></code> to write files (opened as <code class="docutils literal notranslate"><span class="pre">std::ofstream</span></code>)</li> -<li><code class="docutils literal notranslate"><span class="pre">PortableBinaryDataSource</span></code> to read files (opened as <code class="docutils literal notranslate"><span class="pre">std::ifstream</span></code>)</li> +<li><code class="docutils literal"><span class="pre">PortableBinaryDataSink</span></code> to write files (opened as <code class="docutils literal"><span class="pre">std::ofstream</span></code>)</li> +<li><code class="docutils literal"><span class="pre">PortableBinaryDataSource</span></code> to read files (opened as <code class="docutils literal"><span class="pre">std::ifstream</span></code>)</li> </ul> -<p>Each serializable class must define a <code class="docutils literal notranslate"><span class="pre">Serialize</span></code> function that accepts sinks +<p>Each serializable class must define a <code class="docutils literal"><span class="pre">Serialize</span></code> function that accepts sinks and sources, such as:</p> -<div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="k">template</span> <span class="o"><</span><span class="k">typename</span> <span class="n">DS</span><span class="o">></span> +<div class="highlight-cpp"><div class="highlight"><pre><span></span><span class="k">template</span> <span class="o"><</span><span class="k">typename</span> <span class="n">DS</span><span class="o">></span> <span class="kt">void</span> <span class="n">Serialize</span><span class="p">(</span><span class="n">DS</span><span class="o">&</span> <span class="n">ds</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// serialize element-by-element</span> <span class="p">}</span> </pre></div> </div> -<p>Or if this is not possible for an object of type <code class="docutils literal notranslate"><span class="pre">T</span></code>, we need to define +<p>Or if this is not possible for an object of type <code class="docutils literal"><span class="pre">T</span></code>, we need to define global functions such as:</p> -<div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="kr">inline</span> <span class="kt">void</span> <span class="nf">Serialize</span><span class="p">(</span><span class="n">core</span><span class="o">::</span><span class="n">PortableBinaryDataSource</span><span class="o">&</span> <span class="n">ds</span><span class="p">,</span> <span class="n">T</span><span class="o">&</span> <span class="n">t</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> +<div class="highlight-cpp"><div class="highlight"><pre><span></span><span class="kr">inline</span> <span class="kt">void</span> <span class="nf">Serialize</span><span class="p">(</span><span class="n">core</span><span class="o">::</span><span class="n">PortableBinaryDataSource</span><span class="o">&</span> <span class="n">ds</span><span class="p">,</span> <span class="n">T</span><span class="o">&</span> <span class="n">t</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kr">inline</span> <span class="kt">void</span> <span class="nf">Serialize</span><span class="p">(</span><span class="n">core</span><span class="o">::</span><span class="n">PortableBinaryDataSink</span><span class="o">&</span> <span class="n">ds</span><span class="p">,</span> <span class="n">T</span> <span class="n">t</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> </pre></div> </div> -<p>Given a sink or source object <code class="docutils literal notranslate"><span class="pre">ds</span></code>, we read/write an object <code class="docutils literal notranslate"><span class="pre">v</span></code> as:</p> +<p>Given a sink or source object <code class="docutils literal"><span class="pre">ds</span></code>, we read/write an object <code class="docutils literal"><span class="pre">v</span></code> as:</p> <ul class="simple"> -<li><code class="docutils literal notranslate"><span class="pre">ds</span> <span class="pre">&</span> <span class="pre">v</span></code>, if <code class="docutils literal notranslate"><span class="pre">v</span></code> is an instance of a class, a <code class="docutils literal notranslate"><span class="pre">bool</span></code> or any -fixed-width type (e.g. <code class="docutils literal notranslate"><span class="pre">char</span></code>, <code class="docutils literal notranslate"><span class="pre">int_32_t</span></code>, <code class="docutils literal notranslate"><span class="pre">float</span></code>)</li> -<li><code class="docutils literal notranslate"><span class="pre">core::ConvertBaseType<T>(ds,</span> <span class="pre">v)</span></code>, where <code class="docutils literal notranslate"><span class="pre">T</span></code> is a fixed-width type. -<code class="docutils literal notranslate"><span class="pre">v</span></code> will then be converted to/from <code class="docutils literal notranslate"><span class="pre">T</span></code>. This is needed for any non-fixed -fundamental type (e.g. <code class="docutils literal notranslate"><span class="pre">uint</span></code>, <code class="docutils literal notranslate"><span class="pre">short</span></code>, <code class="docutils literal notranslate"><span class="pre">Real</span></code>).</li> +<li><code class="docutils literal"><span class="pre">ds</span> <span class="pre">&</span> <span class="pre">v</span></code>, if <code class="docutils literal"><span class="pre">v</span></code> is an instance of a class, a <code class="docutils literal"><span class="pre">bool</span></code> or any +fixed-width type (e.g. <code class="docutils literal"><span class="pre">char</span></code>, <code class="docutils literal"><span class="pre">int_32_t</span></code>, <code class="docutils literal"><span class="pre">float</span></code>)</li> +<li><code class="docutils literal"><span class="pre">core::ConvertBaseType<T>(ds,</span> <span class="pre">v)</span></code>, where <code class="docutils literal"><span class="pre">T</span></code> is a fixed-width type. +<code class="docutils literal"><span class="pre">v</span></code> will then be converted to/from <code class="docutils literal"><span class="pre">T</span></code>. This is needed for any non-fixed +fundamental type (e.g. <code class="docutils literal"><span class="pre">uint</span></code>, <code class="docutils literal"><span class="pre">short</span></code>, <code class="docutils literal"><span class="pre">Real</span></code>).</li> </ul> <p>Implementation notes:</p> <ul class="simple"> -<li>the <code class="docutils literal notranslate"><span class="pre">Serialize</span></code> function for fundamental types takes care of endianness +<li>the <code class="docutils literal"><span class="pre">Serialize</span></code> function for fundamental types takes care of endianness (all written as little endian and converted from/to native endianness)</li> -<li>custom <code class="docutils literal notranslate"><span class="pre">Serialize</span></code> functions exist for <code class="docutils literal notranslate"><span class="pre">String</span></code> (= <code class="docutils literal notranslate"><span class="pre">std::string</span></code>), -<code class="docutils literal notranslate"><span class="pre">std::vector<T></span></code> and <code class="docutils literal notranslate"><span class="pre">std::pair<T,T2></span></code>. It will throw an error if the -used type <code class="docutils literal notranslate"><span class="pre">T</span></code> or <code class="docutils literal notranslate"><span class="pre">T2</span></code> is a fundamental type. In that case, you have to +<li>custom <code class="docutils literal"><span class="pre">Serialize</span></code> functions exist for <code class="docutils literal"><span class="pre">String</span></code> (= <code class="docutils literal"><span class="pre">std::string</span></code>), +<code class="docutils literal"><span class="pre">std::vector<T></span></code> and <code class="docutils literal"><span class="pre">std::pair<T,T2></span></code>. It will throw an error if the +used type <code class="docutils literal"><span class="pre">T</span></code> or <code class="docutils literal"><span class="pre">T2</span></code> is a fundamental type. In that case, you have to serialize the values manually and convert each element appropriately.</li> -<li>you can use <code class="docutils literal notranslate"><span class="pre">ds.IsSource()</span></code> to distinguish sources and sinks.</li> +<li>you can use <code class="docutils literal"><span class="pre">ds.IsSource()</span></code> to distinguish sources and sinks.</li> </ul> </div> <div class="section" id="code-example"> <h2>Code Example<a class="headerlink" href="#code-example" title="Permalink to this headline">¶</a></h2> <p>Here is an example of a class which provides functionality for portable and non-portable I/O:</p> -<div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="c1">// includes for this class</span> +<div class="highlight-cpp"><div class="highlight"><pre><span></span><span class="c1">// includes for this class</span> <span class="cp">#include</span> <span class="cpf"><boost/shared_ptr.hpp></span><span class="cp"></span> <span class="cp">#include</span> <span class="cpf"><iostream></span><span class="cp"></span> <span class="cp">#include</span> <span class="cpf"><fstream></span><span class="cp"></span> @@ -364,60 +377,60 @@ and non-portable I/O:</p> <h2>Exisiting Binary Files<a class="headerlink" href="#exisiting-binary-files" title="Permalink to this headline">¶</a></h2> <p>The following binary files are currently in ProMod3:</p> <ul class="simple"> -<li>module <code class="docutils literal notranslate"><span class="pre">loop</span></code>:<ul> -<li><code class="file docutils literal notranslate"><span class="pre">frag_db.dat</span></code> -(<a class="reference internal" href="loop/structure_db.html#promod3.loop.FragDB" title="promod3.loop.FragDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">FragDB</span></code></a>)</li> -<li><code class="file docutils literal notranslate"><span class="pre">structure_db.dat</span></code> -(<a class="reference internal" href="loop/structure_db.html#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">StructureDB</span></code></a>)</li> -<li><code class="file docutils literal notranslate"><span class="pre">torsion_sampler_coil.dat</span></code> -(<a class="reference internal" href="loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a>)</li> -<li><code class="file docutils literal notranslate"><span class="pre">torsion_sampler.dat</span></code> -(<a class="reference internal" href="loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a>)</li> -<li><code class="file docutils literal notranslate"><span class="pre">torsion_sampler_extended.dat</span></code> -(<a class="reference internal" href="loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a>)</li> -<li><code class="file docutils literal notranslate"><span class="pre">torsion_sampler_helical.dat</span></code> -(<a class="reference internal" href="loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a>)</li> -<li><code class="file docutils literal notranslate"><span class="pre">ff_lookup_charmm.dat</span></code> -(<a class="reference internal" href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForcefieldLookup</span></code></a>)</li> +<li>module <code class="docutils literal"><span class="pre">loop</span></code>:<ul> +<li><code class="file docutils literal"><span class="pre">frag_db.dat</span></code> +(<a class="reference internal" href="loop/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>)</li> +<li><code class="file docutils literal"><span class="pre">structure_db.dat</span></code> +(<a class="reference internal" href="loop/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>)</li> +<li><code class="file docutils literal"><span class="pre">torsion_sampler_coil.dat</span></code> +(<a class="reference internal" href="loop/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>)</li> +<li><code class="file docutils literal"><span class="pre">torsion_sampler.dat</span></code> +(<a class="reference internal" href="loop/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>)</li> +<li><code class="file docutils literal"><span class="pre">torsion_sampler_extended.dat</span></code> +(<a class="reference internal" href="loop/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>)</li> +<li><code class="file docutils literal"><span class="pre">torsion_sampler_helical.dat</span></code> +(<a class="reference internal" href="loop/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>)</li> +<li><code class="file docutils literal"><span class="pre">ff_lookup_charmm.dat</span></code> +(<a class="reference internal" href="loop/mm_system_creation.html#promod3.loop.ForcefieldLookup" title="promod3.loop.ForcefieldLookup"><code class="xref py py-class docutils literal"><span class="pre">ForcefieldLookup</span></code></a>)</li> </ul> </li> -<li>module <code class="docutils literal notranslate"><span class="pre">scoring</span></code>:<ul> -<li><code class="file docutils literal notranslate"><span class="pre">cbeta_scorer.dat</span></code> -(<a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer" title="promod3.scoring.CBetaScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">CBetaScorer</span></code></a>)</li> -<li><code class="file docutils literal notranslate"><span class="pre">cb_packing_scorer.dat</span></code> -(<a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer" title="promod3.scoring.CBPackingScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">CBPackingScorer</span></code></a>)</li> -<li><code class="file docutils literal notranslate"><span class="pre">hbond_scorer.dat</span></code> -(<a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer" title="promod3.scoring.HBondScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">HBondScorer</span></code></a>)</li> -<li><code class="file docutils literal notranslate"><span class="pre">reduced_scorer.dat</span></code> -(<a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer" title="promod3.scoring.ReducedScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">ReducedScorer</span></code></a>)</li> -<li><code class="file docutils literal notranslate"><span class="pre">ss_agreement_scorer.dat</span></code> -(<a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.SSAgreementScorer" title="promod3.scoring.SSAgreementScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">SSAgreementScorer</span></code></a>)</li> -<li><code class="file docutils literal notranslate"><span class="pre">torsion_scorer.dat</span></code> -(<a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.TorsionScorer" title="promod3.scoring.TorsionScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionScorer</span></code></a>)</li> -<li><code class="file docutils literal notranslate"><span class="pre">aa_scorer.dat</span></code> -(<a class="reference internal" href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer" title="promod3.scoring.AllAtomInteractionScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomInteractionScorer</span></code></a>)</li> -<li><code class="file docutils literal notranslate"><span class="pre">aa_packing_scorer.dat</span></code> -(<a class="reference internal" href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer" title="promod3.scoring.AllAtomPackingScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPackingScorer</span></code></a>)</li> +<li>module <code class="docutils literal"><span class="pre">scoring</span></code>:<ul> +<li><code class="file docutils literal"><span class="pre">cbeta_scorer.dat</span></code> +(<a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.CBetaScorer" title="promod3.scoring.CBetaScorer"><code class="xref py py-class docutils literal"><span class="pre">CBetaScorer</span></code></a>)</li> +<li><code class="file docutils literal"><span class="pre">cb_packing_scorer.dat</span></code> +(<a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.CBPackingScorer" title="promod3.scoring.CBPackingScorer"><code class="xref py py-class docutils literal"><span class="pre">CBPackingScorer</span></code></a>)</li> +<li><code class="file docutils literal"><span class="pre">hbond_scorer.dat</span></code> +(<a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.HBondScorer" title="promod3.scoring.HBondScorer"><code class="xref py py-class docutils literal"><span class="pre">HBondScorer</span></code></a>)</li> +<li><code class="file docutils literal"><span class="pre">reduced_scorer.dat</span></code> +(<a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.ReducedScorer" title="promod3.scoring.ReducedScorer"><code class="xref py py-class docutils literal"><span class="pre">ReducedScorer</span></code></a>)</li> +<li><code class="file docutils literal"><span class="pre">ss_agreement_scorer.dat</span></code> +(<a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.SSAgreementScorer" title="promod3.scoring.SSAgreementScorer"><code class="xref py py-class docutils literal"><span class="pre">SSAgreementScorer</span></code></a>)</li> +<li><code class="file docutils literal"><span class="pre">torsion_scorer.dat</span></code> +(<a class="reference internal" href="scoring/backbone_scorers.html#promod3.scoring.TorsionScorer" title="promod3.scoring.TorsionScorer"><code class="xref py py-class docutils literal"><span class="pre">TorsionScorer</span></code></a>)</li> +<li><code class="file docutils literal"><span class="pre">aa_scorer.dat</span></code> +(<a class="reference internal" href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomInteractionScorer" title="promod3.scoring.AllAtomInteractionScorer"><code class="xref py py-class docutils literal"><span class="pre">AllAtomInteractionScorer</span></code></a>)</li> +<li><code class="file docutils literal"><span class="pre">aa_packing_scorer.dat</span></code> +(<a class="reference internal" href="scoring/all_atom_scorers.html#promod3.scoring.AllAtomPackingScorer" title="promod3.scoring.AllAtomPackingScorer"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPackingScorer</span></code></a>)</li> </ul> </li> -<li>module <code class="docutils literal notranslate"><span class="pre">sidechain</span></code>:<ul> -<li><code class="file docutils literal notranslate"><span class="pre">bb_dep_lib.dat</span></code> -(<a class="reference internal" href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib" title="promod3.sidechain.BBDepRotamerLib"><code class="xref py py-class docutils literal notranslate"><span class="pre">BBDepRotamerLib</span></code></a>)</li> -<li><code class="file docutils literal notranslate"><span class="pre">lib.dat</span></code> -(<a class="reference internal" href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib" title="promod3.sidechain.RotamerLib"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerLib</span></code></a>)</li> +<li>module <code class="docutils literal"><span class="pre">sidechain</span></code>:<ul> +<li><code class="file docutils literal"><span class="pre">bb_dep_lib.dat</span></code> +(<a class="reference internal" href="sidechain/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>)</li> +<li><code class="file docutils literal"><span class="pre">lib.dat</span></code> +(<a class="reference internal" href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLib" title="promod3.sidechain.RotamerLib"><code class="xref py py-class docutils literal"><span class="pre">RotamerLib</span></code></a>)</li> </ul> </li> </ul> -<p>During the <code class="docutils literal notranslate"><span class="pre">make</span></code> process, portable versions of the files (stored in the -<code class="file docutils literal notranslate"><span class="pre"><MODULE>/data</span></code> folder) are converted and corresponding raw binary files -are stored in the <code class="file docutils literal notranslate"><span class="pre">stage/share/promod3/<MODULE>_data</span></code> folder.</p> -<p>If the stage folder is moved after compilation (e.g. <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code>), the -location of the <code class="file docutils literal notranslate"><span class="pre">share/promod3</span></code> folder is to be stored in an environment -variable called <code class="docutils literal notranslate"><span class="pre">PROMOD3_SHARED_DATA_PATH</span></code>. This variable is automatically set -if you load any Python module from <code class="docutils literal notranslate"><span class="pre">promod3</span></code> or if you use the <code class="docutils literal notranslate"><span class="pre">pm</span></code> +<p>During the <code class="docutils literal"><span class="pre">make</span></code> process, portable versions of the files (stored in the +<code class="file docutils literal"><span class="pre"><MODULE>/data</span></code> folder) are converted and corresponding raw binary files +are stored in the <code class="file docutils literal"><span class="pre">stage/share/promod3/<MODULE>_data</span></code> folder.</p> +<p>If the stage folder is moved after compilation (e.g. <code class="docutils literal"><span class="pre">make</span> <span class="pre">install</span></code>), the +location of the <code class="file docutils literal"><span class="pre">share/promod3</span></code> folder is to be stored in an environment +variable called <code class="docutils literal"><span class="pre">PROMOD3_SHARED_DATA_PATH</span></code>. This variable is automatically set +if you load any Python module from <code class="docutils literal"><span class="pre">promod3</span></code> or if you use the <code class="docutils literal"><span class="pre">pm</span></code> script or if you use a well-setup module on a cluster.</p> <p>Code for the generation of the binary files and their portable versions are -in the <code class="file docutils literal notranslate"><span class="pre">extras/data_generation</span></code> folder (provided as-is).</p> +in the <code class="file docutils literal"><span class="pre">extras/data_generation</span></code> folder (provided as-is).</p> </div> </div> @@ -428,57 +441,44 @@ in the <code class="file docutils literal notranslate"><span class="pre">extras/ </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul> -<li class="toctree-l1"><a class="reference internal" href="users.html">Users</a></li> + <h3><a href="index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Using Binary Files In ProMod3</a><ul> +<li><a class="reference internal" href="#file-header">File Header</a></li> +<li><a class="reference internal" href="#portable-binary-data">Portable Binary Data</a></li> +<li><a class="reference internal" href="#code-example">Code Example</a></li> +<li><a class="reference internal" href="#exisiting-binary-files">Exisiting Binary Files</a></li> </ul> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li> +</li> </ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="index.html">Documentation overview</a><ul> <li><a href="developers.html">Documentation For Developers</a><ul> - <li>Previous: <a href="cmake/index.html" title="previous chapter">ProMod3’s Share Of CMake</a></li> + <li>Previous: <a href="cmake/index.html" title="previous chapter">ProMod3‘s Share Of CMake</a></li> <li>Next: <a href="license.html" title="next chapter">License</a></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="_sources/portableIO.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -487,11 +487,11 @@ in the <code class="file docutils literal notranslate"><span class="pre">extras/ ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="_sources/portableIO.rst.txt" + <a href="_sources/portableIO.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/py-modindex.html b/doc/html/py-modindex.html index 0a62e9a138e6fd36fecee421831233a60150d7de..b6a170f8c3173bfb8087efef3a8cf1cd9df076fd 100644 --- a/doc/html/py-modindex.html +++ b/doc/html/py-modindex.html @@ -1,21 +1,32 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Python Module Index — ProMod3 3.0.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" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="index.html" /> <link rel="stylesheet" href="_static/custom.css" type="text/css" /> @@ -25,7 +36,8 @@ - </head><body> + </head> + <body role="document"> <div class="document"> @@ -43,7 +55,7 @@ <a href="#cap-t"><strong>t</strong></a> </div> - <table class="indextable modindextable"> + <table class="indextable modindextable" cellspacing="0" cellpadding="2"> <tr class="pcap"><td></td><td> </td><td></td></tr> <tr class="cap" id="cap-p"><td></td><td> <strong>p</strong></td><td></td></tr> @@ -104,28 +116,7 @@ </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul> -<li class="toctree-l1"><a class="reference internal" href="users.html">Users</a></li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="index.html">Documentation overview</a><ul> @@ -134,24 +125,14 @@ </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -160,7 +141,7 @@ ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> </div> diff --git a/doc/html/references.html b/doc/html/references.html index 26adecb2d55c79436b45bd4f0bba9c62592e14ab..cf86ad5bd3208deff8cc687d69cad6d85eb97237 100644 --- a/doc/html/references.html +++ b/doc/html/references.html @@ -1,21 +1,32 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>References — ProMod3 3.0.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" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="index.html" /> <link rel="next" title="Changelog" href="changelog.html" /> <link rel="prev" title="License" href="license.html" /> @@ -24,7 +35,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -183,28 +195,7 @@ Fragments. Proteins.</td></tr> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul> -<li class="toctree-l1"><a class="reference internal" href="users.html">Users</a></li> -</ul> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="index.html">Documentation overview</a><ul> @@ -213,26 +204,23 @@ Fragments. Proteins.</td></tr> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="_sources/references.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -241,11 +229,11 @@ Fragments. Proteins.</td></tr> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="_sources/references.rst.txt" + <a href="_sources/references.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/scoring/all_atom_scorers.html b/doc/html/scoring/all_atom_scorers.html index 3023ea9d47cef67ce63b8fc526a78a62b20306c1..1326da5fe2f7dac094d818c04ed0bbe1a4f0ec89 100644 --- a/doc/html/scoring/all_atom_scorers.html +++ b/doc/html/scoring/all_atom_scorers.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>All Atom Scorers — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="scoring - Loop Scoring" href="index.html" /> <link rel="next" title="Other Scoring Functions" href="other_scoring_functions.html" /> <link rel="prev" title="Backbone Scorers" href="backbone_scorers.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -42,9 +55,9 @@ <dt id="promod3.scoring.AllAtomOverallScorer"> <em class="property">class </em><code class="descclassname">promod3.scoring.</code><code class="descname">AllAtomOverallScorer</code><a class="headerlink" href="#promod3.scoring.AllAtomOverallScorer" title="Permalink to this definition">¶</a></dt> <dd><p>Container that allows for the storage of multiple scorers identified by a key -(<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) and the computation of combined scores.</p> +(<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) and the computation of combined scores.</p> <p>Scorers need to be individually set or loaded by -<a class="reference internal" href="#promod3.scoring.LoadDefaultAllAtomOverallScorer" title="promod3.scoring.LoadDefaultAllAtomOverallScorer"><code class="xref py py-func docutils literal notranslate"><span class="pre">LoadDefaultAllAtomOverallScorer()</span></code></a></p> +<a class="reference internal" href="#promod3.scoring.LoadDefaultAllAtomOverallScorer" title="promod3.scoring.LoadDefaultAllAtomOverallScorer"><code class="xref py py-func docutils literal"><span class="pre">LoadDefaultAllAtomOverallScorer()</span></code></a></p> <dl class="method"> <dt id="promod3.scoring.AllAtomOverallScorer.Contains"> <code class="descname">Contains</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.AllAtomOverallScorer.Contains" title="Permalink to this definition">¶</a></dt> @@ -54,9 +67,9 @@ <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, if a scorer object for this key was already added.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Key for desired scorer.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Key for desired scorer.</td> </tr> </tbody> </table> @@ -71,11 +84,11 @@ <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Scorer with the given <em>key</em> (read-only access).</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.AllAtomScorer" title="promod3.scoring.AllAtomScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomScorer</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.AllAtomScorer" title="promod3.scoring.AllAtomScorer"><code class="xref py py-class docutils literal"><span class="pre">AllAtomScorer</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Key for desired scorer.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Key for desired scorer.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if there is no scorer with that +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if there is no scorer with that <em>key</em>.</td> </tr> </tbody> @@ -89,7 +102,7 @@ <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 internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnv</span></code></a>) – Link all scorers to this score environment.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>env</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnv</span></code></a>) – Link all scorers to this score environment.</td> </tr> </tbody> </table> @@ -100,33 +113,33 @@ <code class="descname">CalculateLinearCombination</code><span class="sig-paren">(</span><em>linear_weights</em>, <em>start_resnum</em>, <em>num_residues</em>, <em>chain_idx</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.AllAtomOverallScorer.CalculateLinearCombination" title="Permalink to this definition">¶</a></dt> <dd><p>Calculate linear combination of scores for the desired loop(s) (extracted from environment) against the set environment (see -<a class="reference internal" href="#promod3.scoring.AllAtomScorer.CalculateScore" title="promod3.scoring.AllAtomScorer.CalculateScore"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AllAtomScorer.CalculateScore()</span></code></a>).</p> +<a class="reference internal" href="#promod3.scoring.AllAtomScorer.CalculateScore" title="promod3.scoring.AllAtomScorer.CalculateScore"><code class="xref py py-meth docutils literal"><span class="pre">AllAtomScorer.CalculateScore()</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>linear_weights</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a> (keys: <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>, -values: <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>)) – Weights for each desired scorer. You can add a +<li><strong>linear_weights</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">dict</span></code></a> (keys: <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>, +values: <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>)) – Weights for each desired scorer. You can add a constant value to each score by defining a weight -with key “intercept”.</li> -<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Res. number(s) defining the position(s) in the SEQRES -(see <a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnv</span></code></a> for indexing)</li> -<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Length of loop(s).</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of chain the loop(s) belongs to -(see <a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnv</span></code></a> for indexing)</li> +with key “intercept”.</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Res. number(s) defining the position(s) in the SEQRES +(see <a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnv</span></code></a> for indexing)</li> +<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Length of loop(s).</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of chain the loop(s) belongs to +(see <a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnv</span></code></a> for indexing)</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Score for the given set of atoms.</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>linear_weights</em> has a <em>key</em> for +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>linear_weights</em> has a <em>key</em> for which no scorer exists or anything raised in -<a class="reference internal" href="#promod3.scoring.AllAtomScorer.CalculateScore" title="promod3.scoring.AllAtomScorer.CalculateScore"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AllAtomScorer.CalculateScore()</span></code></a> for any of the used scorers.</p> +<a class="reference internal" href="#promod3.scoring.AllAtomScorer.CalculateScore" title="promod3.scoring.AllAtomScorer.CalculateScore"><code class="xref py py-meth docutils literal"><span class="pre">AllAtomScorer.CalculateScore()</span></code></a> for any of the used scorers.</p> </td> </tr> </tbody> @@ -143,7 +156,7 @@ which no scorer exists or anything raised in <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>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Key for desired scorer.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Key for desired scorer.</td> </tr> </tbody> </table> @@ -160,9 +173,9 @@ which no scorer exists or anything raised in <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Loads or creates the default scorers accessible through following keys: -“aa_interaction”, “aa_packing”, “aa_clash”</td> +“aa_interaction”, “aa_packing”, “aa_clash”</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.AllAtomOverallScorer" title="promod3.scoring.AllAtomOverallScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomOverallScorer</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.AllAtomOverallScorer" title="promod3.scoring.AllAtomOverallScorer"><code class="xref py py-class docutils literal"><span class="pre">AllAtomOverallScorer</span></code></a></td> </tr> </tbody> </table> @@ -182,7 +195,7 @@ following keys: <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 internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnv</span></code></a>) – Link scorer to this score environment.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>env</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnv</span></code></a>) – Link scorer to this score environment.</td> </tr> </tbody> </table> @@ -192,28 +205,28 @@ following keys: <dt id="promod3.scoring.AllAtomScorer.CalculateScore"> <code class="descname">CalculateScore</code><span class="sig-paren">(</span><em>start_resnum</em>, <em>num_residues</em>, <em>chain_idx</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.AllAtomScorer.CalculateScore" title="Permalink to this definition">¶</a></dt> <dd><p>Calculates score for the desired loop(s) (extracted from environment) against -the set environment. Unless otherwise noted in the scorer, a lower “score” +the set environment. Unless otherwise noted in the scorer, a lower “score” is better!</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>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Res. number(s) defining the position(s) in the SEQRES -(see <a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnv</span></code></a> for indexing)</li> -<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Length of loop(s).</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of chain the loop(s) belongs to -(see <a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnv</span></code></a> for indexing)</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Res. number(s) defining the position(s) in the SEQRES +(see <a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnv</span></code></a> for indexing)</li> +<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Length of loop(s).</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of chain the loop(s) belongs to +(see <a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnv</span></code></a> for indexing)</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Score for the given set of atoms.</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last">(for most scorers) <code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if scorer was +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last">(for most scorers) <code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if scorer was never attached to a score environment, if scorer has never been properly initialized or if <em>chain_index</em> / <em>start_resnum</em> lead to invalid positions.</p> @@ -233,22 +246,22 @@ environment) against the set environment.</p> <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>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Res. number(s) defining the position(s) in the SEQRES -(see <a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnv</span></code></a> for indexing)</li> -<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Length of loop(s).</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of chain the loop(s) belongs to -(see <a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomEnv</span></code></a> for indexing)</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Res. number(s) defining the position(s) in the SEQRES +(see <a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnv</span></code></a> for indexing)</li> +<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Length of loop(s).</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of chain the loop(s) belongs to +(see <a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomEnv" title="promod3.loop.AllAtomEnv"><code class="xref py py-class docutils literal"><span class="pre">AllAtomEnv</span></code></a> for indexing)</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Scores for the given loop(s), one for each residue.</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> -of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> +of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last">same <code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> as <a class="reference internal" href="#promod3.scoring.AllAtomScorer.CalculateScore" title="promod3.scoring.AllAtomScorer.CalculateScore"><code class="xref py py-meth docutils literal notranslate"><span class="pre">CalculateScore()</span></code></a>.</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last">same <code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> as <a class="reference internal" href="#promod3.scoring.AllAtomScorer.CalculateScore" title="promod3.scoring.AllAtomScorer.CalculateScore"><code class="xref py py-meth docutils literal"><span class="pre">CalculateScore()</span></code></a>.</p> </td> </tr> </tbody> @@ -263,7 +276,7 @@ of <a class="reference external" href="https://docs.python.org/3.6/library/funct <dl class="class"> <dt id="promod3.scoring.AllAtomInteractionScorer"> <em class="property">class </em><code class="descclassname">promod3.scoring.</code><code class="descname">AllAtomInteractionScorer</code><span class="sig-paren">(</span><em>cutoff</em>, <em>bins</em>, <em>seq_sep</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.AllAtomInteractionScorer" title="Permalink to this definition">¶</a></dt> -<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.AllAtomScorer" title="promod3.scoring.AllAtomScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomScorer</span></code></a>. Evaluates a pairwise +<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.AllAtomScorer" title="promod3.scoring.AllAtomScorer"><code class="xref py py-class docutils literal"><span class="pre">AllAtomScorer</span></code></a>. Evaluates a pairwise pseudo interaction energy between all atoms which are located within a <em>cutoff</em> and which are at least <em>seq_sep</em> residues apart. An energy is assigned to each distance using equally sized bins and distinguishing all @@ -274,21 +287,21 @@ including everything, the stuff set in the environment and the coordinates in the input loops. You can change this behaviour with the according functions.</p> <p>The scorer needs to be initialized either by loading a predefined scorer (e.g. -<a class="reference internal" href="#promod3.scoring.LoadAllAtomInteractionScorer" title="promod3.scoring.LoadAllAtomInteractionScorer"><code class="xref py py-func docutils literal notranslate"><span class="pre">LoadAllAtomInteractionScorer()</span></code></a>) or by setting all energies (see <a class="reference internal" href="#promod3.scoring.AllAtomInteractionScorer.SetEnergy" title="promod3.scoring.AllAtomInteractionScorer.SetEnergy"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetEnergy()</span></code></a>).</p> +<a class="reference internal" href="#promod3.scoring.LoadAllAtomInteractionScorer" title="promod3.scoring.LoadAllAtomInteractionScorer"><code class="xref py py-func docutils literal"><span class="pre">LoadAllAtomInteractionScorer()</span></code></a>) or by setting all energies (see <a class="reference internal" href="#promod3.scoring.AllAtomInteractionScorer.SetEnergy" title="promod3.scoring.AllAtomInteractionScorer.SetEnergy"><code class="xref py py-meth docutils literal"><span class="pre">SetEnergy()</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>cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Radius in which other atoms are counted.</li> -<li><strong>bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize distances (range +<li><strong>cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Radius in which other atoms are counted.</li> +<li><strong>bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize distances (range of [0,*cutoff*]).</li> -<li><strong>seq_sep</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Minimal separation in sequence two residues must have to +<li><strong>seq_sep</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Minimal separation in sequence two residues 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>cutoff</em> < 0, <em>bins</em> < 1 or +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>cutoff</em> < 0, <em>bins</em> < 1 or <em>seq_sep</em> < 1.</p> </td> </tr> @@ -299,20 +312,20 @@ be considered.</li> <em class="property">static </em><code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.AllAtomInteractionScorer.Load" title="Permalink to this definition">¶</a></dt> <dt id="promod3.scoring.AllAtomInteractionScorer.LoadPortable"> <em class="property">static </em><code class="descname">LoadPortable</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.AllAtomInteractionScorer.LoadPortable" title="Permalink to this definition">¶</a></dt> -<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.scoring.AllAtomInteractionScorer.Save" title="promod3.scoring.AllAtomInteractionScorer.Save"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Save()</span></code></a> (optimized for fast -reading) / portable file generated with <a class="reference internal" href="#promod3.scoring.AllAtomInteractionScorer.SavePortable" title="promod3.scoring.AllAtomInteractionScorer.SavePortable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SavePortable()</span></code></a> (slower but +<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.scoring.AllAtomInteractionScorer.Save" title="promod3.scoring.AllAtomInteractionScorer.Save"><code class="xref py py-meth docutils literal"><span class="pre">Save()</span></code></a> (optimized for fast +reading) / portable file generated with <a class="reference internal" href="#promod3.scoring.AllAtomInteractionScorer.SavePortable" title="promod3.scoring.AllAtomInteractionScorer.SavePortable"><code class="xref py py-meth docutils literal"><span class="pre">SavePortable()</span></code></a> (slower but less machine-dependent).</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The loaded scorer</td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.AllAtomInteractionScorer" title="promod3.scoring.AllAtomInteractionScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomInteractionScorer</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.AllAtomInteractionScorer" title="promod3.scoring.AllAtomInteractionScorer"><code class="xref py py-class docutils literal"><span class="pre">AllAtomInteractionScorer</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened or if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened or if file cannot be parsed (see <a class="reference internal" href="../portableIO.html#portableio"><span class="std std-ref">here</span></a> for details).</td> </tr> </tbody> @@ -331,9 +344,9 @@ for details.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file where it will be saved.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file where it 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> </tr> </tbody> </table> @@ -352,14 +365,14 @@ SetEnergy(aaa2, aaa1, bin, energy).</p> <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>aaa1</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AminoAcidAtom" title="promod3.loop.AminoAcidAtom"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcidAtom</span></code></a>) – Heavy atom type for first interaction partner.</li> -<li><strong>aaa2</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AminoAcidAtom" title="promod3.loop.AminoAcidAtom"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcidAtom</span></code></a>) – Heavy atom type for second interaction partner.</li> -<li><strong>bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Discrete bin describing the interaction distance.</li> -<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</li> +<li><strong>aaa1</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AminoAcidAtom" title="promod3.loop.AminoAcidAtom"><code class="xref py py-class docutils literal"><span class="pre">AminoAcidAtom</span></code></a>) – Heavy atom type for first interaction partner.</li> +<li><strong>aaa2</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AminoAcidAtom" title="promod3.loop.AminoAcidAtom"><code class="xref py py-class docutils literal"><span class="pre">AminoAcidAtom</span></code></a>) – Heavy atom type for second interaction partner.</li> +<li><strong>bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the interaction distance.</li> +<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if inputs are invalid</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if inputs are invalid</p> </td> </tr> </tbody> @@ -373,7 +386,7 @@ SetEnergy(aaa2, aaa1, bin, energy).</p> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions within the +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions within the loop. True by default.</td> </tr> </tbody> @@ -387,7 +400,7 @@ loop. True by default.</td> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions towards the +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions towards the environment. True by default.</td> </tr> </tbody> @@ -401,7 +414,7 @@ environment. True by default.</td> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number of residues in the input loop. True by default.</td> </tr> </tbody> @@ -419,7 +432,7 @@ of residues in the input loop. True by default.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The default predefined AllAtomInteractionScorer (loaded from disk)</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.AllAtomInteractionScorer" title="promod3.scoring.AllAtomInteractionScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomInteractionScorer</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.AllAtomInteractionScorer" title="promod3.scoring.AllAtomInteractionScorer"><code class="xref py py-class docutils literal"><span class="pre">AllAtomInteractionScorer</span></code></a></td> </tr> </tbody> </table> @@ -431,24 +444,24 @@ of residues in the input loop. True by default.</td> <dl class="class"> <dt id="promod3.scoring.AllAtomPackingScorer"> <em class="property">class </em><code class="descclassname">promod3.scoring.</code><code class="descname">AllAtomPackingScorer</code><span class="sig-paren">(</span><em>cutoff</em>, <em>max_count</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.AllAtomPackingScorer" title="Permalink to this definition">¶</a></dt> -<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.AllAtomScorer" title="promod3.scoring.AllAtomScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomScorer</span></code></a>. Evaluates pseudo +<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.AllAtomScorer" title="promod3.scoring.AllAtomScorer"><code class="xref py py-class docutils literal"><span class="pre">AllAtomScorer</span></code></a>. Evaluates pseudo energies by counting surrounding atoms within a certain <em>cutoff</em> radius around all heavy atoms not belonging to the assessed residue itself.</p> <p>The scorer needs to be initialized either by loading a predefined scorer (e.g. -<a class="reference internal" href="#promod3.scoring.LoadAllAtomPackingScorer" title="promod3.scoring.LoadAllAtomPackingScorer"><code class="xref py py-func docutils literal notranslate"><span class="pre">LoadAllAtomPackingScorer()</span></code></a>) or by setting all energies (see -<a class="reference internal" href="#promod3.scoring.AllAtomPackingScorer.SetEnergy" title="promod3.scoring.AllAtomPackingScorer.SetEnergy"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetEnergy()</span></code></a>).</p> +<a class="reference internal" href="#promod3.scoring.LoadAllAtomPackingScorer" title="promod3.scoring.LoadAllAtomPackingScorer"><code class="xref py py-func docutils literal"><span class="pre">LoadAllAtomPackingScorer()</span></code></a>) or by setting all energies (see +<a class="reference internal" href="#promod3.scoring.AllAtomPackingScorer.SetEnergy" title="promod3.scoring.AllAtomPackingScorer.SetEnergy"><code class="xref py py-meth docutils literal"><span class="pre">SetEnergy()</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>cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Radius in which other atoms are counted.</li> -<li><strong>max_count</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – If number of other atoms exceeds <em>max_count</em>, it will +<li><strong>cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Radius in which other atoms are counted.</li> +<li><strong>max_count</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – If number of other atoms exceeds <em>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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>cutoff</em> < 0, <em>max_count</em> < 1.</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>cutoff</em> < 0, <em>max_count</em> < 1.</p> </td> </tr> </tbody> @@ -458,20 +471,20 @@ be set to this number.</li> <em class="property">static </em><code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.AllAtomPackingScorer.Load" title="Permalink to this definition">¶</a></dt> <dt id="promod3.scoring.AllAtomPackingScorer.LoadPortable"> <em class="property">static </em><code class="descname">LoadPortable</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.AllAtomPackingScorer.LoadPortable" title="Permalink to this definition">¶</a></dt> -<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.scoring.AllAtomPackingScorer.Save" title="promod3.scoring.AllAtomPackingScorer.Save"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Save()</span></code></a> (optimized for fast -reading) / portable file generated with <a class="reference internal" href="#promod3.scoring.AllAtomPackingScorer.SavePortable" title="promod3.scoring.AllAtomPackingScorer.SavePortable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SavePortable()</span></code></a> (slower but +<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.scoring.AllAtomPackingScorer.Save" title="promod3.scoring.AllAtomPackingScorer.Save"><code class="xref py py-meth docutils literal"><span class="pre">Save()</span></code></a> (optimized for fast +reading) / portable file generated with <a class="reference internal" href="#promod3.scoring.AllAtomPackingScorer.SavePortable" title="promod3.scoring.AllAtomPackingScorer.SavePortable"><code class="xref py py-meth docutils literal"><span class="pre">SavePortable()</span></code></a> (slower but less machine-dependent).</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The loaded scorer</td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.AllAtomPackingScorer" title="promod3.scoring.AllAtomPackingScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPackingScorer</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.AllAtomPackingScorer" title="promod3.scoring.AllAtomPackingScorer"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPackingScorer</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened or if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened or if file cannot be parsed (see <a class="reference internal" href="../portableIO.html#portableio"><span class="std std-ref">here</span></a> for details).</td> </tr> </tbody> @@ -490,9 +503,9 @@ for details.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file where it will be saved.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file where it 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> </tr> </tbody> </table> @@ -508,13 +521,13 @@ called for every heavy atom type and for every <em>count</em> <= <em>max_coun <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>aaa</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AminoAcidAtom" title="promod3.loop.AminoAcidAtom"><code class="xref py py-class docutils literal notranslate"><span class="pre">AminoAcidAtom</span></code></a>) – Heavy atom type for which to set energy.</li> -<li><strong>count</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of surrounding atoms for which to set energy.</li> -<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</li> +<li><strong>aaa</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AminoAcidAtom" title="promod3.loop.AminoAcidAtom"><code class="xref py py-class docutils literal"><span class="pre">AminoAcidAtom</span></code></a>) – Heavy atom type for which to set energy.</li> +<li><strong>count</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of surrounding atoms for which to set energy.</li> +<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if inputs are invalid</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if inputs are invalid</p> </td> </tr> </tbody> @@ -528,7 +541,7 @@ called for every heavy atom type and for every <em>count</em> <= <em>max_coun <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number of residues in the input loop. True by default.</td> </tr> </tbody> @@ -546,7 +559,7 @@ of residues in the input loop. True by default.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The default predefined AllAtomPackingScorer (loaded from disk)</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.AllAtomPackingScorer" title="promod3.scoring.AllAtomPackingScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPackingScorer</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.AllAtomPackingScorer" title="promod3.scoring.AllAtomPackingScorer"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPackingScorer</span></code></a></td> </tr> </tbody> </table> @@ -558,7 +571,7 @@ of residues in the input loop. True by default.</td> <dl class="class"> <dt id="promod3.scoring.AllAtomClashScorer"> <em class="property">class </em><code class="descclassname">promod3.scoring.</code><code class="descname">AllAtomClashScorer</code><a class="headerlink" href="#promod3.scoring.AllAtomClashScorer" title="Permalink to this definition">¶</a></dt> -<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.AllAtomScorer" title="promod3.scoring.AllAtomScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomScorer</span></code></a>. Calculates a simple +<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.AllAtomScorer" title="promod3.scoring.AllAtomScorer"><code class="xref py py-class docutils literal"><span class="pre">AllAtomScorer</span></code></a>. Calculates a simple clash score of all atoms against the environment. There is no need to define any parameters here as all interaction energies are fixed (see Eq. (11) in <a class="reference internal" href="../references.html#canutescu2003b" id="id1">[canutescu2003b]</a>). By default, the scorer calculates the scores by @@ -572,7 +585,7 @@ functions.</p> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions within the +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions within the loop. True by default.</td> </tr> </tbody> @@ -586,7 +599,7 @@ loop. True by default.</td> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions towards the +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions towards the environment. True by default.</td> </tr> </tbody> @@ -600,7 +613,7 @@ environment. True by default.</td> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number of residues in the input loop. True by default.</td> </tr> </tbody> @@ -619,45 +632,23 @@ of residues in the input loop. True by default.</td> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">All Atom Scorers</a><ul> +<li><a class="reference internal" href="#allatomoverallscorer-class">AllAtomOverallScorer class</a></li> +<li><a class="reference internal" href="#allatomscorer-base-class">AllAtomScorer base class</a></li> +<li><a class="reference internal" href="#allatominteractionscorer-class">AllAtomInteractionScorer class</a></li> +<li><a class="reference internal" href="#allatompackingscorer-class">AllAtomPackingScorer class</a></li> +<li><a class="reference internal" href="#allatomclashscorer-class">AllAtomClashScorer class</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">scoring</span></code> - Loop Scoring</a><ul> <li>Previous: <a href="backbone_scorers.html" title="previous chapter">Backbone Scorers</a></li> <li>Next: <a href="other_scoring_functions.html" title="next chapter">Other Scoring Functions</a></li> </ul></li> @@ -665,26 +656,23 @@ of residues in the input loop. True by default.</td> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/scoring/all_atom_scorers.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -693,11 +681,11 @@ of residues in the input loop. True by default.</td> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/scoring/all_atom_scorers.rst.txt" + <a href="../_sources/scoring/all_atom_scorers.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/scoring/backbone_score_env.html b/doc/html/scoring/backbone_score_env.html index e5ebe0260d917dd51b60d07ec59266e23b94d375..c8701b6f85d9ecc1eb097769ee69595fd66b57fa 100644 --- a/doc/html/scoring/backbone_score_env.html +++ b/doc/html/scoring/backbone_score_env.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Backbone Score Environment — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="scoring - Loop Scoring" href="index.html" /> <link rel="next" title="Backbone Scorers" href="backbone_scorers.html" /> <link rel="prev" title="scoring - Loop Scoring" href="index.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -55,14 +68,14 @@ to all attached scorers</li> </ul> <p>One problem that might occur is that you mess around with the environment and at some point you want to restore the original state. The -<a class="reference internal" href="#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a> provides a Stash / Pop mechanism to perform this +<a class="reference internal" href="#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a> provides a Stash / Pop mechanism to perform this task.</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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.SequenceHandle</span></code></a> / -<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.SequenceList" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.SequenceList</span></code></a>) – Internal SEQRES to be set (single chain or list with one per +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.SequenceHandle</span></code></a> / +<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.SequenceList" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.SequenceList</span></code></a>) – Internal SEQRES to be set (single chain or list with one per chain). Whenever setting structural data, consistency with this SEQRES is enforced.</td> </tr> </tbody> @@ -81,10 +94,10 @@ value 1</strong>.</li> <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 copy of the current <a class="reference internal" href="#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a> without any scorers +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">A copy of the current <a class="reference internal" href="#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a> without any scorers attached</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a></td> </tr> </tbody> </table> @@ -99,11 +112,11 @@ structural data was already set, all the existing data gets cleared first.</p> <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_structure</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.EntityHandle</span></code></a>) – Structral data to be set as environment. The chains +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>env_structure</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityHandle</span></code></a>) – Structral data to be set as environment. The chains in <em>env_structure</em> are expected to be in the same order as the SEQRES items provided in constructor.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>env</em> is inconsistent with +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>env</em> is inconsistent with SEQRES set in constructor. This can be because of corrupt residue numbers or sequence mismatches.</td> </tr> @@ -122,13 +135,13 @@ positions.</p> <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="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneList</span></code></a>) – Structural data to be set as environment.</li> -<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResNum" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResNum</span></code></a>) – Res. number defining the position in the SEQRES.</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of chain the structural data belongs to.</li> +<li><strong>bb_list</strong> (<a class="reference internal" href="../loop/backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) – Structural data to be set as environment.</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResNum" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResNum</span></code></a>) – Res. number defining the position in the SEQRES.</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if sequence of <em>bb_list</em> is +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if sequence of <em>bb_list</em> is inconsistent with previously SEQRES set in constructor or when either <em>start_resnum</em> or <em>chain_idx</em> point to invalid positions in the SEQRES.</p> @@ -148,13 +161,13 @@ with idx <em>chain_idx</em> starting from residue number <em>start_resnum</em></ <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>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Start of stretch to clear</li> -<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Length of stretch to clear</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Chain the stretch belongs to</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Start of stretch to clear</li> +<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Length of stretch to clear</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Chain the stretch 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> when either <em>start_resnum</em> or +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> when either <em>start_resnum</em> or <em>chain_idx</em> point to invalid positions in the SEQRES.</p> </td> </tr> @@ -170,12 +183,12 @@ with idx <em>chain_idx</em> starting from residue number <em>start_resnum</em></ <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>pred</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">PsipredPrediction</span></code> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of -<code class="xref py py-class docutils literal notranslate"><span class="pre">PsipredPrediction</span></code>) – Psipred prediction to set (one per chain).</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>pred</strong> (<code class="xref py py-class docutils literal"><span class="pre">PsipredPrediction</span></code> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of +<code class="xref py py-class docutils literal"><span class="pre">PsipredPrediction</span></code>) – Psipred prediction to set (one per chain).</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if the number of predictions is +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if the number of predictions is inconsistent with the number of internal chains or when one of the -predictions’ sizes is inconsistent with the internal SEQRES size.</td> +predictions’ sizes is inconsistent with the internal SEQRES size.</td> </tr> </tbody> </table> @@ -184,21 +197,21 @@ predictions’ sizes is inconsistent with the internal SEQRES size.</td> <dl class="method"> <dt id="promod3.scoring.BackboneScoreEnv.AddPairwiseFunction"> <code class="descname">AddPairwiseFunction</code><span class="sig-paren">(</span><em>function</em>, <em>function_type</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.BackboneScoreEnv.AddPairwiseFunction" title="Permalink to this definition">¶</a></dt> -<dd><p>Adds a pairwise function that can be used in <a class="reference internal" href="#promod3.scoring.BackboneScoreEnv.ApplyPairwiseFunction" title="promod3.scoring.BackboneScoreEnv.ApplyPairwiseFunction"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ApplyPairwiseFunction()</span></code></a>.</p> +<dd><p>Adds a pairwise function that can be used in <a class="reference internal" href="#promod3.scoring.BackboneScoreEnv.ApplyPairwiseFunction" title="promod3.scoring.BackboneScoreEnv.ApplyPairwiseFunction"><code class="xref py py-meth docutils literal"><span class="pre">ApplyPairwiseFunction()</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>function</strong> (<a class="reference internal" href="#promod3.scoring.PairwiseFunction" title="promod3.scoring.PairwiseFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">PairwiseFunction</span></code></a>) – Pairwise function to be added.</li> -<li><strong>function_type</strong> (<a class="reference internal" href="#promod3.scoring.PairwiseFunctionType" title="promod3.scoring.PairwiseFunctionType"><code class="xref py py-class docutils literal notranslate"><span class="pre">PairwiseFunctionType</span></code></a>) – What distances should be looked at for this function.</li> +<li><strong>function</strong> (<a class="reference internal" href="#promod3.scoring.PairwiseFunction" title="promod3.scoring.PairwiseFunction"><code class="xref py py-class docutils literal"><span class="pre">PairwiseFunction</span></code></a>) – Pairwise function to be added.</li> +<li><strong>function_type</strong> (<a class="reference internal" href="#promod3.scoring.PairwiseFunctionType" title="promod3.scoring.PairwiseFunctionType"><code class="xref py py-class docutils literal"><span class="pre">PairwiseFunctionType</span></code></a>) – What distances should be looked at for this function.</li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Function index to be used in <a class="reference internal" href="#promod3.scoring.BackboneScoreEnv.ApplyPairwiseFunction" title="promod3.scoring.BackboneScoreEnv.ApplyPairwiseFunction"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ApplyPairwiseFunction()</span></code></a>.</p> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Function index to be used in <a class="reference internal" href="#promod3.scoring.BackboneScoreEnv.ApplyPairwiseFunction" title="promod3.scoring.BackboneScoreEnv.ApplyPairwiseFunction"><code class="xref py py-meth docutils literal"><span class="pre">ApplyPairwiseFunction()</span></code></a>.</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 external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a></p> </td> </tr> </tbody> @@ -216,16 +229,16 @@ there is no need to add them twice with switched residues.</p> <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>chain_idx_one</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Chain index of first residue</li> -<li><strong>resnum_one</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Res. number of first residue</li> -<li><strong>chain_idx_two</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Chain index of second residue</li> -<li><strong>resnum_two</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Res. number of second residue</li> -<li><strong>f_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of pairwise function (as returned by -<a class="reference internal" href="#promod3.scoring.BackboneScoreEnv.AddPairwiseFunction" title="promod3.scoring.BackboneScoreEnv.AddPairwiseFunction"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AddPairwiseFunction()</span></code></a>)</li> +<li><strong>chain_idx_one</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Chain index of first residue</li> +<li><strong>resnum_one</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Res. number of first residue</li> +<li><strong>chain_idx_two</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Chain index of second residue</li> +<li><strong>resnum_two</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Res. number of second residue</li> +<li><strong>f_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of pairwise function (as returned by +<a class="reference internal" href="#promod3.scoring.BackboneScoreEnv.AddPairwiseFunction" title="promod3.scoring.BackboneScoreEnv.AddPairwiseFunction"><code class="xref py py-meth docutils literal"><span class="pre">AddPairwiseFunction()</span></code></a>)</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if any of the chain indices or +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if any of the chain indices or res. numbers is invalid, the interaction partners are the same residue or when <em>f_idx</em> is an invalid index.</p> </td> @@ -239,7 +252,7 @@ residue or when <em>f_idx</em> is an invalid index.</p> <code class="descname">Stash</code><span class="sig-paren">(</span><em>start_rnum</em>, <em>num_residues</em>, <em>chain_idx</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.BackboneScoreEnv.Stash" title="Permalink to this definition">¶</a></dt> <dd><p>FILO style stashing. You can perform up to 100 stash operations to save the current state of certain stretches in the environment. This state can -be restored by calling <a class="reference internal" href="#promod3.scoring.BackboneScoreEnv.Pop" title="promod3.scoring.BackboneScoreEnv.Pop"><code class="xref py py-func docutils literal notranslate"><span class="pre">Pop()</span></code></a>. In one stash operation you can either +be restored by calling <a class="reference internal" href="#promod3.scoring.BackboneScoreEnv.Pop" title="promod3.scoring.BackboneScoreEnv.Pop"><code class="xref py py-func docutils literal"><span class="pre">Pop()</span></code></a>. In one stash operation you can either stash one stretch by providing integers as input or several stretches by providing lists of integers.</p> <table class="docutils field-list" frame="void" rules="none"> @@ -247,9 +260,9 @@ providing lists of integers.</p> <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>start_rnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – start rnum of stretch to stash</li> -<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – length of stretch to stash</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – chain idx of stretch to stash</li> +<li><strong>start_rnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – start rnum of stretch to stash</li> +<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – length of stretch to stash</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – chain idx of stretch to stash</li> </ul> </td> </tr> @@ -272,7 +285,7 @@ providing lists of integers.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">SEQRES that was set in constructor (one sequence per chain).</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.SequenceList" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.SequenceList</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.SequenceList" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.SequenceList</span></code></a></td> </tr> </tbody> </table> @@ -306,9 +319,9 @@ providing lists of integers.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Score for a given pairwise distance</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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><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">Parameters:</th><td class="field-body"><strong>distance</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Pairwise distance</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>distance</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Pairwise distance</td> </tr> </tbody> </table> @@ -319,7 +332,7 @@ providing lists of integers.</p> <dl class="class"> <dt id="promod3.scoring.ConstraintFunction"> <em class="property">class </em><code class="descclassname">promod3.scoring.</code><code class="descname">ConstraintFunction</code><span class="sig-paren">(</span><em>min_dist</em>, <em>max_dist</em>, <em>values</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.ConstraintFunction" title="Permalink to this definition">¶</a></dt> -<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.PairwiseFunction" title="promod3.scoring.PairwiseFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">PairwiseFunction</span></code></a>. +<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.PairwiseFunction" title="promod3.scoring.PairwiseFunction"><code class="xref py py-class docutils literal"><span class="pre">PairwiseFunction</span></code></a>. Defines a constraint function. The score for a distance between <em>min_dist</em> and <em>max_dist</em> is determined by linear interpolation assuming the first and last value exactly lying on <em>min_dist</em> and <em>max_dist</em>. For distances outside the @@ -329,14 +342,14 @@ range defined by <em>min_dist</em> and <em>max_dist</em>, the returned score is <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>min_dist</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Minimal distance to be considered</li> -<li><strong>max_dist</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Maximal distance to be considered</li> -<li><strong>values</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The possible values that get returned when the distance is +<li><strong>min_dist</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Minimal distance to be considered</li> +<li><strong>max_dist</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Maximal distance to be considered</li> +<li><strong>values</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The possible values that get returned when the distance is between <em>min_dist</em> and <em>max_dist</em></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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>min_dist</em> >= <em>max_dist</em> or when +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>min_dist</em> >= <em>max_dist</em> or when <em>min_dist</em> or <em>max_dist</em> are negative or when <em>values</em> contains no elements</p> </td> @@ -348,7 +361,7 @@ elements</p> <dl class="class"> <dt id="promod3.scoring.ContactFunction"> <em class="property">class </em><code class="descclassname">promod3.scoring.</code><code class="descname">ContactFunction</code><span class="sig-paren">(</span><em>max_dist</em>, <em>score</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.ContactFunction" title="Permalink to this definition">¶</a></dt> -<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.PairwiseFunction" title="promod3.scoring.PairwiseFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">PairwiseFunction</span></code></a>. +<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.PairwiseFunction" title="promod3.scoring.PairwiseFunction"><code class="xref py py-class docutils literal"><span class="pre">PairwiseFunction</span></code></a>. Defines a simple contact function. The score value is <em>score</em> if distance < <em>max_dist</em> and 0.0 otherwise.</p> <table class="docutils field-list" frame="void" rules="none"> @@ -356,8 +369,8 @@ distance < <em>max_dist</em> and 0.0 otherwise.</p> <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_dist</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Maximal distance to be in contact</li> -<li><strong>score</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Value that gets returned if in contact</li> +<li><strong>max_dist</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Maximal distance to be in contact</li> +<li><strong>score</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Value that gets returned if in contact</li> </ul> </td> </tr> @@ -372,15 +385,15 @@ distance < <em>max_dist</em> and 0.0 otherwise.</p> <dt id="promod3.scoring.DiscoContainer"> <em class="property">class </em><code class="descclassname">promod3.scoring.</code><code class="descname">DiscoContainer</code><span class="sig-paren">(</span><em>seqres</em><span class="optional">[</span>, <em>function_type = CA_PAIRWISE_FUNCTION</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.DiscoContainer" title="Permalink to this definition">¶</a></dt> <dd><p>A container collecting structural information until it can be added in form -of <a class="reference internal" href="#promod3.scoring.ConstraintFunction" title="promod3.scoring.ConstraintFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">ConstraintFunction</span></code></a> to a <a class="reference internal" href="#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a> . +of <a class="reference internal" href="#promod3.scoring.ConstraintFunction" title="promod3.scoring.ConstraintFunction"><code class="xref py py-class docutils literal"><span class="pre">ConstraintFunction</span></code></a> to a <a class="reference internal" href="#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a> . The constraint functions are built after the principle of QMEANDisCo.</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>seqres</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.SequenceHandle</span></code></a>) – The sequence with which all added structures must match</li> -<li><strong>function_type</strong> (<a class="reference internal" href="#promod3.scoring.PairwiseFunctionType" title="promod3.scoring.PairwiseFunctionType"><code class="xref py py-class docutils literal notranslate"><span class="pre">PairwiseFunctionType</span></code></a>) – Whether you want to assess pairwise distances between CA +<li><strong>seqres</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.SequenceHandle</span></code></a>) – The sequence with which all added structures must match</li> +<li><strong>function_type</strong> (<a class="reference internal" href="#promod3.scoring.PairwiseFunctionType" title="promod3.scoring.PairwiseFunctionType"><code class="xref py py-class docutils literal"><span class="pre">PairwiseFunctionType</span></code></a>) – Whether you want to assess pairwise distances between CA or CB atoms</li> </ul> </td> @@ -394,11 +407,11 @@ or CB atoms</li> <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>aln</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/seq/base/seq/#ost.seq.AlignmentHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.seq.AlignmentHandle</span></code></a>) – Alignment, where first sequence represent the initial +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>aln</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/seq/base/seq/#ost.seq.AlignmentHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.AlignmentHandle</span></code></a>) – Alignment, where first sequence represent the initial SEQRES and the second sequence the actual structural info. The second sequence must have a view attached.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if number of sequences in <em>aln</em> is +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if number of sequences in <em>aln</em> is not two, the SEQRES does not match or when the second sequence in <em>aln</em> has no view attached.</td> </tr> @@ -411,7 +424,7 @@ not two, the SEQRES does not match or when the second sequence in <code class="descname">AttachConstraints</code><span class="sig-paren">(</span><em>env</em>, <em>chain_indices</em><span class="optional">[</span>, <em>cluster_thresh = 0.5</em>, <em>gamma = 70.0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.DiscoContainer.AttachConstraints" title="Permalink to this definition">¶</a></dt> <dd><p>Generates distance constraints and adds it to <em>env</em>. It first clusters the added sequences with a pairwise normalised sequence -similarity based on BLOSUM62. It’s a hierarchical clustering with with an +similarity based on BLOSUM62. It’s a hierarchical clustering with with an average distance metric and <em>cluster_thresh</em> as threshold to merge two clusters. Constraint functions are built for every cluster and finally merged. The influence of the per cluster constraint functions to the overall @@ -425,18 +438,18 @@ directly added to the scoring <em>env</em>.</p> <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>env</strong> (<a class="reference internal" href="#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a>) – The scoring env to which the constraint +<li><strong>env</strong> (<a class="reference internal" href="#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a>) – The scoring env to which the constraint should be added</li> -<li><strong>chain_indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Indices of chains for which the constraints should +<li><strong>chain_indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Indices of chains for which the constraints should be added</li> -<li><strong>cluster_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Controls the clustering behaviour at the initial +<li><strong>cluster_thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Controls the clustering behaviour at the initial stage of constraint construction</li> -<li><strong>gamma</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Controls how fast the influence of constraint +<li><strong>gamma</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Controls how fast the influence of constraint functions of distant clusters vanishes</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if one of the <em>chain_indices</em> is +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if one of the <em>chain_indices</em> is invalid or the SEQRES set in <em>env</em> for specified chain is inconsistent with SEQRES you initialized the DiscoContainer with</p> </td> @@ -457,72 +470,45 @@ inconsistent with SEQRES you initialized the DiscoContainer with</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Backbone Score Environment</a><ul> +<li><a class="reference internal" href="#backbonescoreenv-class">BackboneScoreEnv class</a></li> +<li><a class="reference internal" href="#pairwise-function-classes">Pairwise function classes</a></li> +<li><a class="reference internal" href="#convenient-construction-of-pairwise-functions">Convenient construction of pairwise functions</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a><ul> - <li>Previous: <a href="index.html" title="previous chapter"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> + <li><a href="index.html"><code class="docutils literal"><span class="pre">scoring</span></code> - Loop Scoring</a><ul> + <li>Previous: <a href="index.html" title="previous chapter"><code class="docutils literal"><span class="pre">scoring</span></code> - Loop Scoring</a></li> <li>Next: <a href="backbone_scorers.html" title="next chapter">Backbone Scorers</a></li> </ul></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/scoring/backbone_score_env.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -531,11 +517,11 @@ inconsistent with SEQRES you initialized the DiscoContainer with</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/scoring/backbone_score_env.rst.txt" + <a href="../_sources/scoring/backbone_score_env.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/scoring/backbone_scorers.html b/doc/html/scoring/backbone_scorers.html index b272d74f103e9717f9ea8ec489243e9dba3ea960..4dd2f344d31cd7a05b49c7f2e9e1c27abad907c8 100644 --- a/doc/html/scoring/backbone_scorers.html +++ b/doc/html/scoring/backbone_scorers.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Backbone Scorers — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="scoring - Loop Scoring" href="index.html" /> <link rel="next" title="All Atom Scorers" href="all_atom_scorers.html" /> <link rel="prev" title="Backbone Score Environment" href="backbone_score_env.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -42,9 +55,9 @@ <dt id="promod3.scoring.BackboneOverallScorer"> <em class="property">class </em><code class="descclassname">promod3.scoring.</code><code class="descname">BackboneOverallScorer</code><a class="headerlink" href="#promod3.scoring.BackboneOverallScorer" title="Permalink to this definition">¶</a></dt> <dd><p>Container that allows for the storage of multiple scorers identified by a key -(<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) and the computation of combined scores.</p> +(<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) and the computation of combined scores.</p> <p>Scorers need to be individually set or loaded by -<a class="reference internal" href="#promod3.scoring.LoadDefaultBackboneOverallScorer" title="promod3.scoring.LoadDefaultBackboneOverallScorer"><code class="xref py py-func docutils literal notranslate"><span class="pre">LoadDefaultBackboneOverallScorer()</span></code></a></p> +<a class="reference internal" href="#promod3.scoring.LoadDefaultBackboneOverallScorer" title="promod3.scoring.LoadDefaultBackboneOverallScorer"><code class="xref py py-func docutils literal"><span class="pre">LoadDefaultBackboneOverallScorer()</span></code></a></p> <dl class="method"> <dt id="promod3.scoring.BackboneOverallScorer.Contains"> <code class="descname">Contains</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.BackboneOverallScorer.Contains" title="Permalink to this definition">¶</a></dt> @@ -54,9 +67,9 @@ <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, if a scorer object for this key was already added.</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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a></td> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Key for desired scorer.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Key for desired scorer.</td> </tr> </tbody> </table> @@ -71,11 +84,11 @@ <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Scorer with the given <em>key</em> (read-only access).</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScorer</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneScorer</span></code></a></td> </tr> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Key for desired scorer.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Key for desired scorer.</td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if there is no scorer with that +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if there is no scorer with that <em>key</em>.</td> </tr> </tbody> @@ -89,7 +102,7 @@ <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 internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a>) – Link all scorers to this score environment.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>env</strong> (<a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a>) – Link all scorers to this score environment.</td> </tr> </tbody> </table> @@ -105,23 +118,23 @@ current scoring environment.</p> <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>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Key for desired scorer.</li> -<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Res. number defining the position in the SEQRES -(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a> for indexing)</li> -<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of residues in the stretch(es) to score</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of chain the stretch(es) belongs to -(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a> for indexing)</li> +<li><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Key for desired scorer.</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Res. number defining the position in the SEQRES +(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a> for indexing)</li> +<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of residues in the stretch(es) to score</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of chain the stretch(es) belongs to +(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a> for indexing)</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Score calculated with the desired scorer for the given stretch(es).</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if there is no scorer with that -<em>key</em> or anything raised in <a class="reference internal" href="#promod3.scoring.BackboneScorer.CalculateScore" title="promod3.scoring.BackboneScorer.CalculateScore"><code class="xref py py-meth docutils literal notranslate"><span class="pre">BackboneScorer.CalculateScore()</span></code></a>.</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if there is no scorer with that +<em>key</em> or anything raised in <a class="reference internal" href="#promod3.scoring.BackboneScorer.CalculateScore" title="promod3.scoring.BackboneScorer.CalculateScore"><code class="xref py py-meth docutils literal"><span class="pre">BackboneScorer.CalculateScore()</span></code></a>.</p> </td> </tr> </tbody> @@ -138,15 +151,15 @@ amino acids given the current scoring environment.</p> <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>linear_weights</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a> (keys: <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>, -values: <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>)) – Weights for each desired scorer. You can add a +<li><strong>linear_weights</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#dict" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">dict</span></code></a> (keys: <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>, +values: <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>)) – Weights for each desired scorer. You can add a constant value to each score by defining a weight -with key “intercept”.</li> -<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Res. number defining the position in the SEQRES -(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a> for indexing)</li> -<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of residues in the stretch(es) to score</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of chain the stretch(es) belongs to -(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a> for indexing)</li> +with key “intercept”.</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Res. number defining the position in the SEQRES +(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a> for indexing)</li> +<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of residues in the stretch(es) to score</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of chain the stretch(es) belongs to +(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a> for indexing)</li> </ul> </td> </tr> @@ -154,12 +167,12 @@ with key “intercept”.</li> scorers for the given stretch(es)</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>linear_weights</em> has a <em>key</em> for +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>linear_weights</em> has a <em>key</em> for which no scorer exists or anything raised in -<a class="reference internal" href="#promod3.scoring.BackboneScorer.CalculateScore" title="promod3.scoring.BackboneScorer.CalculateScore"><code class="xref py py-meth docutils literal notranslate"><span class="pre">BackboneScorer.CalculateScore()</span></code></a> for any of the used scorers.</p> +<a class="reference internal" href="#promod3.scoring.BackboneScorer.CalculateScore" title="promod3.scoring.BackboneScorer.CalculateScore"><code class="xref py py-meth docutils literal"><span class="pre">BackboneScorer.CalculateScore()</span></code></a> for any of the used scorers.</p> </td> </tr> </tbody> @@ -176,7 +189,7 @@ which no scorer exists or anything raised in <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>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Key for desired scorer.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Key for desired scorer.</td> </tr> </tbody> </table> @@ -193,9 +206,9 @@ which no scorer exists or anything raised in <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Loads or creates the default scorers accessible through following keys: -“cb_packing”, “cbeta”, “reduced”, “clash”, “hbond”, “ss_agreement”,”torsion”, “pairwise”</td> +“cb_packing”, “cbeta”, “reduced”, “clash”, “hbond”, “ss_agreement”,”torsion”, “pairwise”</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.BackboneOverallScorer" title="promod3.scoring.BackboneOverallScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneOverallScorer</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.BackboneOverallScorer" title="promod3.scoring.BackboneOverallScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneOverallScorer</span></code></a></td> </tr> </tbody> </table> @@ -215,7 +228,7 @@ following keys: <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 internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a>) – Link scorer to this score environment.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>env</strong> (<a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a>) – Link scorer to this score environment.</td> </tr> </tbody> </table> @@ -226,27 +239,27 @@ following keys: <code class="descname">CalculateScore</code><span class="sig-paren">(</span><em>start_resnum</em>, <em>num_residues</em>, <em>chain_idx=0</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.BackboneScorer.CalculateScore" title="Permalink to this definition">¶</a></dt> <dd><p>Calculates score for one or several stretches given the structural information in the attached environment. Unless otherwise noted in the -scorer, a lower “score” is better!</p> +scorer, a lower “score” is better!</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>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Res. number defining the position in the SEQRES -(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a> for indexing)</li> -<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of residues in the stretch(es) to score</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of chain the stretch(es) belongs to -(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a> for indexing)</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Res. number defining the position in the SEQRES +(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a> for indexing)</li> +<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of residues in the stretch(es) to score</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of chain the stretch(es) belongs to +(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a> for indexing)</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Score for the given stretch(es).</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last">(for most scorers) <code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if scorer was +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last">(for most scorers) <code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if scorer was never attached to a score environment, if scorer has never been properly initialized or if <em>start_resnum</em> / <em>num_residues</em> / <em>chain_idx</em> lead to invalid positions.</p> @@ -266,22 +279,22 @@ structural information in the attached environment.</p> <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>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Res. number defining the position in the SEQRES -(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a> for indexing)</li> -<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of residues in the stretch(es) to score</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of chain the stretch(es) belongs to -(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScoreEnv</span></code></a> for indexing)</li> +<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Res. number defining the position in the SEQRES +(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a> for indexing)</li> +<li><strong>num_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of residues in the stretch(es) to score</li> +<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of chain the stretch(es) belongs to +(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv" title="promod3.scoring.BackboneScoreEnv"><code class="xref py py-class docutils literal"><span class="pre">BackboneScoreEnv</span></code></a> for indexing)</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Scores for the given stretch(es), one for each residue.</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a> or <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> -of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a> or <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> +of <a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last">same <code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> as <a class="reference internal" href="#promod3.scoring.BackboneScorer.CalculateScore" title="promod3.scoring.BackboneScorer.CalculateScore"><code class="xref py py-meth docutils literal notranslate"><span class="pre">CalculateScore()</span></code></a>.</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last">same <code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> as <a class="reference internal" href="#promod3.scoring.BackboneScorer.CalculateScore" title="promod3.scoring.BackboneScorer.CalculateScore"><code class="xref py py-meth docutils literal"><span class="pre">CalculateScore()</span></code></a>.</p> </td> </tr> </tbody> @@ -296,24 +309,24 @@ of <a class="reference external" href="https://docs.python.org/3.6/library/funct <dl class="class"> <dt id="promod3.scoring.CBPackingScorer"> <em class="property">class </em><code class="descclassname">promod3.scoring.</code><code class="descname">CBPackingScorer</code><span class="sig-paren">(</span><em>cutoff</em>, <em>max_count</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.CBPackingScorer" title="Permalink to this definition">¶</a></dt> -<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScorer</span></code></a>. Evaluates pseudo +<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneScorer</span></code></a>. Evaluates pseudo energies by counting the number of other CB positions within a certain <em>cutoff</em> radius of the CB position of the residue to be evaluated.</p> <p>The scorer needs to be initialized either by loading a predefined scorer (e.g. -<a class="reference internal" href="#promod3.scoring.LoadCBPackingScorer" title="promod3.scoring.LoadCBPackingScorer"><code class="xref py py-func docutils literal notranslate"><span class="pre">LoadCBPackingScorer()</span></code></a>) or by setting all energies (see -<a class="reference internal" href="#promod3.scoring.CBPackingScorer.SetEnergy" title="promod3.scoring.CBPackingScorer.SetEnergy"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetEnergy()</span></code></a>).</p> +<a class="reference internal" href="#promod3.scoring.LoadCBPackingScorer" title="promod3.scoring.LoadCBPackingScorer"><code class="xref py py-func docutils literal"><span class="pre">LoadCBPackingScorer()</span></code></a>) or by setting all energies (see +<a class="reference internal" href="#promod3.scoring.CBPackingScorer.SetEnergy" title="promod3.scoring.CBPackingScorer.SetEnergy"><code class="xref py py-meth docutils literal"><span class="pre">SetEnergy()</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>cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Radius in which other cbeta atoms are counted.</li> -<li><strong>max_count</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – If number of other cbeta atoms exceeds <em>max_count</em>, it will +<li><strong>cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Radius in which other cbeta atoms are counted.</li> +<li><strong>max_count</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – If number of other cbeta atoms exceeds <em>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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>cutoff</em> < 0 or <em>max_count</em> < 1.</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>cutoff</em> < 0 or <em>max_count</em> < 1.</p> </td> </tr> </tbody> @@ -323,20 +336,20 @@ be set to this number.</li> <em class="property">static </em><code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.CBPackingScorer.Load" title="Permalink to this definition">¶</a></dt> <dt id="promod3.scoring.CBPackingScorer.LoadPortable"> <em class="property">static </em><code class="descname">LoadPortable</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.CBPackingScorer.LoadPortable" title="Permalink to this definition">¶</a></dt> -<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.scoring.CBPackingScorer.Save" title="promod3.scoring.CBPackingScorer.Save"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Save()</span></code></a> (optimized for fast -reading) / portable file generated with <a class="reference internal" href="#promod3.scoring.CBPackingScorer.SavePortable" title="promod3.scoring.CBPackingScorer.SavePortable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SavePortable()</span></code></a> (slower but +<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.scoring.CBPackingScorer.Save" title="promod3.scoring.CBPackingScorer.Save"><code class="xref py py-meth docutils literal"><span class="pre">Save()</span></code></a> (optimized for fast +reading) / portable file generated with <a class="reference internal" href="#promod3.scoring.CBPackingScorer.SavePortable" title="promod3.scoring.CBPackingScorer.SavePortable"><code class="xref py py-meth docutils literal"><span class="pre">SavePortable()</span></code></a> (slower but less machine-dependent).</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The loaded scorer</td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.CBPackingScorer" title="promod3.scoring.CBPackingScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">CBPackingScorer</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.CBPackingScorer" title="promod3.scoring.CBPackingScorer"><code class="xref py py-class docutils literal"><span class="pre">CBPackingScorer</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened or if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened or if file cannot be parsed (see <a class="reference internal" href="../portableIO.html#portableio"><span class="std std-ref">here</span></a> for details).</td> </tr> </tbody> @@ -355,9 +368,9 @@ for details.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file where it will be saved.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file where it 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> </tr> </tbody> </table> @@ -373,13 +386,13 @@ called for every type of amino acids and for every <em>count</em> <= <em>max_ <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>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – Amino acid for which to set energy.</li> -<li><strong>count</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of surrounding CB positions for which to set energy.</li> -<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</li> +<li><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – Amino acid for which to set energy.</li> +<li><strong>count</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of surrounding CB positions for which to set energy.</li> +<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if inputs are invalid</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if inputs are invalid</p> </td> </tr> </tbody> @@ -393,7 +406,7 @@ called for every type of amino acids and for every <em>count</em> <= <em>max_ <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number of residues to be scored. True by default.</td> </tr> </tbody> @@ -411,7 +424,7 @@ of residues to be scored. True by default.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The default predefined CBPackingScorer (loaded from disk)</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.CBPackingScorer" title="promod3.scoring.CBPackingScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">CBPackingScorer</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.CBPackingScorer" title="promod3.scoring.CBPackingScorer"><code class="xref py py-class docutils literal"><span class="pre">CBPackingScorer</span></code></a></td> </tr> </tbody> </table> @@ -423,27 +436,27 @@ of residues to be scored. True by default.</td> <dl class="class"> <dt id="promod3.scoring.CBetaScorer"> <em class="property">class </em><code class="descclassname">promod3.scoring.</code><code class="descname">CBetaScorer</code><span class="sig-paren">(</span><em>cutoff</em>, <em>bins</em>, <em>seq_sep</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.CBetaScorer" title="Permalink to this definition">¶</a></dt> -<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScorer</span></code></a>. Evaluates a pairwise +<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneScorer</span></code></a>. Evaluates a pairwise pseudo interaction energy between CB atoms which are located within a <em>cutoff</em> and which are at least <em>seq_sep</em> residues apart. An energy is assigned to each distance using equally sized bins and distinguishing all possible pairs of amino acids.</p> <p>The scorer needs to be initialized either by loading a predefined scorer (e.g. -<a class="reference internal" href="#promod3.scoring.LoadCBetaScorer" title="promod3.scoring.LoadCBetaScorer"><code class="xref py py-func docutils literal notranslate"><span class="pre">LoadCBetaScorer()</span></code></a>) or by setting all energies (see <a class="reference internal" href="#promod3.scoring.CBetaScorer.SetEnergy" title="promod3.scoring.CBetaScorer.SetEnergy"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetEnergy()</span></code></a>).</p> +<a class="reference internal" href="#promod3.scoring.LoadCBetaScorer" title="promod3.scoring.LoadCBetaScorer"><code class="xref py py-func docutils literal"><span class="pre">LoadCBetaScorer()</span></code></a>) or by setting all energies (see <a class="reference internal" href="#promod3.scoring.CBetaScorer.SetEnergy" title="promod3.scoring.CBetaScorer.SetEnergy"><code class="xref py py-meth docutils literal"><span class="pre">SetEnergy()</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>cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Radius in which other cbeta atoms are considered.</li> -<li><strong>bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize distances (range +<li><strong>cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Radius in which other cbeta atoms are considered.</li> +<li><strong>bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize distances (range of [0, <em>cutoff</em>]).</li> -<li><strong>seq_sep</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Minimal separation in sequence two cbeta atoms must have to +<li><strong>seq_sep</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>cutoff</em> < 0, <em>bins</em> < 1 or +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>cutoff</em> < 0, <em>bins</em> < 1 or <em>seq_sep</em> < 1.</p> </td> </tr> @@ -454,20 +467,20 @@ be considered.</li> <em class="property">static </em><code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.CBetaScorer.Load" title="Permalink to this definition">¶</a></dt> <dt id="promod3.scoring.CBetaScorer.LoadPortable"> <em class="property">static </em><code class="descname">LoadPortable</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.CBetaScorer.LoadPortable" title="Permalink to this definition">¶</a></dt> -<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.scoring.CBetaScorer.Save" title="promod3.scoring.CBetaScorer.Save"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Save()</span></code></a> (optimized for fast -reading) / portable file generated with <a class="reference internal" href="#promod3.scoring.CBetaScorer.SavePortable" title="promod3.scoring.CBetaScorer.SavePortable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SavePortable()</span></code></a> (slower but +<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.scoring.CBetaScorer.Save" title="promod3.scoring.CBetaScorer.Save"><code class="xref py py-meth docutils literal"><span class="pre">Save()</span></code></a> (optimized for fast +reading) / portable file generated with <a class="reference internal" href="#promod3.scoring.CBetaScorer.SavePortable" title="promod3.scoring.CBetaScorer.SavePortable"><code class="xref py py-meth docutils literal"><span class="pre">SavePortable()</span></code></a> (slower but less machine-dependent).</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The loaded scorer</td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.CBetaScorer" title="promod3.scoring.CBetaScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">CBetaScorer</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.CBetaScorer" title="promod3.scoring.CBetaScorer"><code class="xref py py-class docutils literal"><span class="pre">CBetaScorer</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened or if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened or if file cannot be parsed (see <a class="reference internal" href="../portableIO.html#portableio"><span class="std std-ref">here</span></a> for details).</td> </tr> </tbody> @@ -486,9 +499,9 @@ for details.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file where it will be saved.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file where it 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> </tr> </tbody> </table> @@ -507,14 +520,14 @@ SetEnergy(aa2, aa1, bin, energy).</p> <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>aa1</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – Amino acid for first interaction partner.</li> -<li><strong>aa2</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – Amino acid for second interaction partner.</li> -<li><strong>bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Discrete bin describing the interaction distance.</li> -<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</li> +<li><strong>aa1</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – Amino acid for first interaction partner.</li> +<li><strong>aa2</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – Amino acid for second interaction partner.</li> +<li><strong>bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the interaction distance.</li> +<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if inputs are invalid</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if inputs are invalid</p> </td> </tr> </tbody> @@ -528,7 +541,7 @@ SetEnergy(aa2, aa1, bin, energy).</p> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions between +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions between the scored residues. True by default.</td> </tr> </tbody> @@ -542,7 +555,7 @@ the scored residues. True by default.</td> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions of the scored +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions of the scored residues towards the surrounding environment. True by default.</td> </tr> @@ -557,7 +570,7 @@ True by default.</td> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number of residues to be scored. True by default.</td> </tr> </tbody> @@ -575,7 +588,7 @@ of residues to be scored. True by default.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The default predefined CBetaScorer (loaded from disk)</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.CBetaScorer" title="promod3.scoring.CBetaScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">CBetaScorer</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.CBetaScorer" title="promod3.scoring.CBetaScorer"><code class="xref py py-class docutils literal"><span class="pre">CBetaScorer</span></code></a></td> </tr> </tbody> </table> @@ -587,10 +600,10 @@ of residues to be scored. True by default.</td> <dl class="class"> <dt id="promod3.scoring.ReducedScorer"> <em class="property">class </em><code class="descclassname">promod3.scoring.</code><code class="descname">ReducedScorer</code><span class="sig-paren">(</span><em>cutoff</em>, <em>dist_bins</em>, <em>angle_bins</em>, <em>dihedral_bins</em>, <em>seq_sep</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.ReducedScorer" title="Permalink to this definition">¶</a></dt> -<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScorer</span></code></a>. Evaluates a pairwise +<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneScorer</span></code></a>. Evaluates a pairwise pseudo interaction energy between the reduced representation of residues. Every residue gets represented by its CA position p and a directional -component <code class="docutils literal notranslate"><span class="pre">v</span> <span class="pre">=</span> <span class="pre">norm(p-n_pos)</span> <span class="pre">+</span> <span class="pre">norm(p-c_pos)</span></code>. Residues with CA +component <code class="docutils literal"><span class="pre">v</span> <span class="pre">=</span> <span class="pre">norm(p-n_pos)</span> <span class="pre">+</span> <span class="pre">norm(p-c_pos)</span></code>. Residues with CA distance < <em>cutoff</em> and which are at least <em>seq_sep</em> residues apart are considered to be interacting. For interacting residues r1 and r2, we can define a line l between p1 and p2. The potential then considers:</p> @@ -601,25 +614,25 @@ define a line l between p1 and p2. The potential then considers:</p> <li>gamma => dihedral between (p1+v1,p1,p2,p2+v2)</li> </ul> <p>The scorer needs to be initialized either by loading a predefined scorer (e.g. -<a class="reference internal" href="#promod3.scoring.LoadReducedScorer" title="promod3.scoring.LoadReducedScorer"><code class="xref py py-func docutils literal notranslate"><span class="pre">LoadReducedScorer()</span></code></a>) or by setting all energies (see <a class="reference internal" href="#promod3.scoring.ReducedScorer.SetEnergy" title="promod3.scoring.ReducedScorer.SetEnergy"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetEnergy()</span></code></a>).</p> +<a class="reference internal" href="#promod3.scoring.LoadReducedScorer" title="promod3.scoring.LoadReducedScorer"><code class="xref py py-func docutils literal"><span class="pre">LoadReducedScorer()</span></code></a>) or by setting all energies (see <a class="reference internal" href="#promod3.scoring.ReducedScorer.SetEnergy" title="promod3.scoring.ReducedScorer.SetEnergy"><code class="xref py py-meth docutils literal"><span class="pre">SetEnergy()</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>cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Radius in which other CA atoms are searched.</li> -<li><strong>dist_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize distances (range +<li><strong>cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Radius in which other CA atoms are searched.</li> +<li><strong>dist_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize distances (range of [0, <em>cutoff</em>]).</li> -<li><strong>angle_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize angles (range +<li><strong>angle_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize angles (range of [0, pi]).</li> -<li><strong>dihedral_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize dihedrals +<li><strong>dihedral_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize dihedrals (range of [-pi, pi]).</li> -<li><strong>seq_sep</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Minimal separation in sequence two residues must have to +<li><strong>seq_sep</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Minimal separation in sequence two residues 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>cutoff</em> < 0, <em>dist_bins</em> < 1, +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>cutoff</em> < 0, <em>dist_bins</em> < 1, <em>angle_bins</em> < 1, <em>dihedral_bins</em> < 1 or <em>seq_sep</em> < 1.</p> </td> </tr> @@ -630,20 +643,20 @@ be considered.</li> <em class="property">static </em><code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.ReducedScorer.Load" title="Permalink to this definition">¶</a></dt> <dt id="promod3.scoring.ReducedScorer.LoadPortable"> <em class="property">static </em><code class="descname">LoadPortable</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.ReducedScorer.LoadPortable" title="Permalink to this definition">¶</a></dt> -<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.scoring.ReducedScorer.Save" title="promod3.scoring.ReducedScorer.Save"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Save()</span></code></a> (optimized for fast -reading) / portable file generated with <a class="reference internal" href="#promod3.scoring.ReducedScorer.SavePortable" title="promod3.scoring.ReducedScorer.SavePortable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SavePortable()</span></code></a> (slower but +<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.scoring.ReducedScorer.Save" title="promod3.scoring.ReducedScorer.Save"><code class="xref py py-meth docutils literal"><span class="pre">Save()</span></code></a> (optimized for fast +reading) / portable file generated with <a class="reference internal" href="#promod3.scoring.ReducedScorer.SavePortable" title="promod3.scoring.ReducedScorer.SavePortable"><code class="xref py py-meth docutils literal"><span class="pre">SavePortable()</span></code></a> (slower but less machine-dependent).</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The loaded scorer</td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.ReducedScorer" title="promod3.scoring.ReducedScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">ReducedScorer</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.ReducedScorer" title="promod3.scoring.ReducedScorer"><code class="xref py py-class docutils literal"><span class="pre">ReducedScorer</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened or if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened or if file cannot be parsed (see <a class="reference internal" href="../portableIO.html#portableio"><span class="std std-ref">here</span></a> for details).</td> </tr> </tbody> @@ -662,9 +675,9 @@ for details.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file where it will be saved.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file where it 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> </tr> </tbody> </table> @@ -687,17 +700,17 @@ SetEnergy(aa2, aa1, dist_bin, beta_bin, alpha_bin, energy).</p> <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>aa1</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – Amino acid for first interaction partner.</li> -<li><strong>aa2</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – Amino acid for second interaction partner.</li> -<li><strong>dist_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Discrete bin describing the interaction distance.</li> -<li><strong>alpha_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Discrete bin describing the alpha angle.</li> -<li><strong>beta_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Discrete bin describing the beta angle.</li> -<li><strong>gamma_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Discrete bin describing the gamma dihedral.</li> -<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</li> +<li><strong>aa1</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – Amino acid for first interaction partner.</li> +<li><strong>aa2</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – Amino acid for second interaction partner.</li> +<li><strong>dist_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the interaction distance.</li> +<li><strong>alpha_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the alpha angle.</li> +<li><strong>beta_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the beta angle.</li> +<li><strong>gamma_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the gamma dihedral.</li> +<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if inputs are invalid</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if inputs are invalid</p> </td> </tr> </tbody> @@ -711,7 +724,7 @@ SetEnergy(aa2, aa1, dist_bin, beta_bin, alpha_bin, energy).</p> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions between +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions between the scored residues. True by default.</td> </tr> </tbody> @@ -725,7 +738,7 @@ the scored residues. True by default.</td> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions of the scored +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions of the scored residues towards the surrounding environment. True by default.</td> </tr> @@ -740,7 +753,7 @@ True by default.</td> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number of residues to be scored. True by default.</td> </tr> </tbody> @@ -758,7 +771,7 @@ of residues to be scored. True by default.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The default predefined ReducedScorer (loaded from disk)</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.ReducedScorer" title="promod3.scoring.ReducedScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">ReducedScorer</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.ReducedScorer" title="promod3.scoring.ReducedScorer"><code class="xref py py-class docutils literal"><span class="pre">ReducedScorer</span></code></a></td> </tr> </tbody> </table> @@ -770,7 +783,7 @@ of residues to be scored. True by default.</td> <dl class="class"> <dt id="promod3.scoring.ClashScorer"> <em class="property">class </em><code class="descclassname">promod3.scoring.</code><code class="descname">ClashScorer</code><a class="headerlink" href="#promod3.scoring.ClashScorer" title="Permalink to this definition">¶</a></dt> -<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScorer</span></code></a>. Calculates a simple +<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneScorer</span></code></a>. Calculates a simple clash score of a loop itself and with the set environment. There is no need to define any parameters here as all interaction energies are fixed (see Eq. (11) in <a class="reference internal" href="../references.html#canutescu2003b" id="id1">[canutescu2003b]</a>).</p> @@ -781,7 +794,7 @@ in <a class="reference internal" href="../references.html#canutescu2003b" id="id <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions between +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions between the scored residues. True by default.</td> </tr> </tbody> @@ -795,7 +808,7 @@ the scored residues. True by default.</td> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions of the scored +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions of the scored residues towards the surrounding environment. True by default.</td> </tr> @@ -810,7 +823,7 @@ True by default.</td> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number of residues to be scored. True by default.</td> </tr> </tbody> @@ -825,7 +838,7 @@ of residues to be scored. True by default.</td> <dl class="class"> <dt id="promod3.scoring.HBondScorer"> <em class="property">class </em><code class="descclassname">promod3.scoring.</code><code class="descname">HBondScorer</code><span class="sig-paren">(</span><em>min_d</em>, <em>max_d</em>, <em>min_alpha</em>, <em>max_alpha</em>, <em>min_beta</em>, <em>max_beta</em>, <em>min_gamma</em>, <em>max_gamma</em>, <em>d_bins</em>, <em>alpha_bins</em>, <em>beta_bins</em>, <em>gamma_bins</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.HBondScorer" title="Permalink to this definition">¶</a></dt> -<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScorer</span></code></a>. Evaluates pairwise +<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneScorer</span></code></a>. Evaluates pairwise HBond pseudo energies similar to the one defined in the Rosetta energy function. It considers the CA, C and O positions from backbone hbond acceptors in interaction with the N and H positions from the backbone hbond donors. 4 @@ -842,32 +855,32 @@ states. State 1 for helical residues, state 2 for extended residues and state thats the one from which the energy is extracted. In all other cases, the energy is extracted from the 0 state.</p> <p>The scorer needs to be initialized either by loading a predefined scorer (e.g. -<a class="reference internal" href="#promod3.scoring.LoadHBondScorer" title="promod3.scoring.LoadHBondScorer"><code class="xref py py-func docutils literal notranslate"><span class="pre">LoadHBondScorer()</span></code></a>) or by setting all energies (see <a class="reference internal" href="#promod3.scoring.HBondScorer.SetEnergy" title="promod3.scoring.HBondScorer.SetEnergy"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetEnergy()</span></code></a>).</p> +<a class="reference internal" href="#promod3.scoring.LoadHBondScorer" title="promod3.scoring.LoadHBondScorer"><code class="xref py py-func docutils literal"><span class="pre">LoadHBondScorer()</span></code></a>) or by setting all energies (see <a class="reference internal" href="#promod3.scoring.HBondScorer.SetEnergy" title="promod3.scoring.HBondScorer.SetEnergy"><code class="xref py py-meth docutils literal"><span class="pre">SetEnergy()</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>min_d</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Minimal H-O distance to consider interaction</li> -<li><strong>max_d</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Maximal H-O distance to consider interaction</li> -<li><strong>min_alpha</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Minimal O-H-N angle to consider interaction</li> -<li><strong>max_alpha</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Maximal O-H-N angle to consider interaction</li> -<li><strong>min_beta</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Minimal C-N-H angle to consider interaction</li> -<li><strong>max_beta</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Maximal C-N-H angle to consider interaction</li> -<li><strong>min_gamma</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Minimal CA-C-O-H dihedral to consider interaction</li> -<li><strong>max_gamma</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Maximal CA-C-O-H dihedral to consider interaction</li> -<li><strong>d_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize H-O distances +<li><strong>min_d</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Minimal H-O distance to consider interaction</li> +<li><strong>max_d</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Maximal H-O distance to consider interaction</li> +<li><strong>min_alpha</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Minimal O-H-N angle to consider interaction</li> +<li><strong>max_alpha</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Maximal O-H-N angle to consider interaction</li> +<li><strong>min_beta</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Minimal C-N-H angle to consider interaction</li> +<li><strong>max_beta</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Maximal C-N-H angle to consider interaction</li> +<li><strong>min_gamma</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Minimal CA-C-O-H dihedral to consider interaction</li> +<li><strong>max_gamma</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Maximal CA-C-O-H dihedral to consider interaction</li> +<li><strong>d_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize H-O distances (range of [<em>min_d</em>, <em>max_d</em>]).</li> -<li><strong>alpha_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize O-H-N angles +<li><strong>alpha_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize O-H-N angles (range of [<em>min_alpha</em>, <em>max_alpha</em>]).</li> -<li><strong>beta_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize C-N-H angles +<li><strong>beta_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize C-N-H angles (range of [<em>min_beta</em>, <em>max_beta</em>]).</li> -<li><strong>gamma_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize CA-C-O-H angles +<li><strong>gamma_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize CA-C-O-H angles (range of [<em>min_gamma</em>, <em>max_gamma</em>]).</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if one of the bin parameters is +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if one of the bin parameters is < 1 or a max parameter is smaller than its min counterpart.</p> </td> </tr> @@ -878,20 +891,20 @@ energy is extracted from the 0 state.</p> <em class="property">static </em><code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.HBondScorer.Load" title="Permalink to this definition">¶</a></dt> <dt id="promod3.scoring.HBondScorer.LoadPortable"> <em class="property">static </em><code class="descname">LoadPortable</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.HBondScorer.LoadPortable" title="Permalink to this definition">¶</a></dt> -<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.scoring.HBondScorer.Save" title="promod3.scoring.HBondScorer.Save"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Save()</span></code></a> (optimized for fast -reading) / portable file generated with <a class="reference internal" href="#promod3.scoring.HBondScorer.SavePortable" title="promod3.scoring.HBondScorer.SavePortable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SavePortable()</span></code></a> (slower but +<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.scoring.HBondScorer.Save" title="promod3.scoring.HBondScorer.Save"><code class="xref py py-meth docutils literal"><span class="pre">Save()</span></code></a> (optimized for fast +reading) / portable file generated with <a class="reference internal" href="#promod3.scoring.HBondScorer.SavePortable" title="promod3.scoring.HBondScorer.SavePortable"><code class="xref py py-meth docutils literal"><span class="pre">SavePortable()</span></code></a> (slower but less machine-dependent).</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The loaded scorer</td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.HBondScorer" title="promod3.scoring.HBondScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">HBondScorer</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.HBondScorer" title="promod3.scoring.HBondScorer"><code class="xref py py-class docutils literal"><span class="pre">HBondScorer</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened or if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened or if file cannot be parsed (see <a class="reference internal" href="../portableIO.html#portableio"><span class="std std-ref">here</span></a> for details).</td> </tr> </tbody> @@ -910,9 +923,9 @@ for details.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file where it will be saved.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file where it 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> </tr> </tbody> </table> @@ -930,17 +943,17 @@ called for every state ([0, 1, 2]), every <em>d_bin</em> < <em>d_bins</em>, e <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – State describing the actual secondary structure +<li><strong>state</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Discrete bin describing the H-O distance.</li> -<li><strong>alpha_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Discrete bin describing the O-H-N angle.</li> -<li><strong>beta_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Discrete bin describing the C-N-H angle.</li> -<li><strong>gamma_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Discrete bin describing the CA-C-O-H dihedral.</li> -<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</li> +<li><strong>d_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the H-O distance.</li> +<li><strong>alpha_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the O-H-N angle.</li> +<li><strong>beta_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the C-N-H angle.</li> +<li><strong>gamma_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the CA-C-O-H dihedral.</li> +<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if inputs are invalid</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if inputs are invalid</p> </td> </tr> </tbody> @@ -954,7 +967,7 @@ called for every state ([0, 1, 2]), every <em>d_bin</em> < <em>d_bins</em>, e <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions between +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions between the scored residues. True by default.</td> </tr> </tbody> @@ -968,7 +981,7 @@ the scored residues. True by default.</td> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions of the scored +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions of the scored residues towards the surrounding environment. True by default.</td> </tr> @@ -983,7 +996,7 @@ True by default.</td> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number of residues to be scored. True by default.</td> </tr> </tbody> @@ -1001,7 +1014,7 @@ of residues to be scored. True by default.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The default predefined HBondScorer (loaded from disk)</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.HBondScorer" title="promod3.scoring.HBondScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">HBondScorer</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.HBondScorer" title="promod3.scoring.HBondScorer"><code class="xref py py-class docutils literal"><span class="pre">HBondScorer</span></code></a></td> </tr> </tbody> </table> @@ -1013,7 +1026,7 @@ of residues to be scored. True by default.</td> <dl class="class"> <dt id="promod3.scoring.SSAgreementScorer"> <em class="property">class </em><code class="descclassname">promod3.scoring.</code><code class="descname">SSAgreementScorer</code><a class="headerlink" href="#promod3.scoring.SSAgreementScorer" title="Permalink to this definition">¶</a></dt> -<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScorer</span></code></a>. Evaluates a secondary +<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneScorer</span></code></a>. Evaluates a secondary structure agreement score. The scorer has a score for each combination of psipred prediction, its confidence and the actually occurring secondary structure in the model. In every score evaluation, the secondary structure of @@ -1021,32 +1034,32 @@ the loop is estimated by searching for hydrogen bonds leading to a secondary structure as defined by dssp. The hbonds are searched internally in the loop as well as in the environment.</p> <p>The scorer needs to be initialized either by loading a predefined scorer (e.g. -<a class="reference internal" href="#promod3.scoring.LoadSSAgreementScorer" title="promod3.scoring.LoadSSAgreementScorer"><code class="xref py py-func docutils literal notranslate"><span class="pre">LoadSSAgreementScorer()</span></code></a>) or by setting scores for all possible states -(see <a class="reference internal" href="#promod3.scoring.SSAgreementScorer.SetScore" title="promod3.scoring.SSAgreementScorer.SetScore"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetScore()</span></code></a>).</p> +<a class="reference internal" href="#promod3.scoring.LoadSSAgreementScorer" title="promod3.scoring.LoadSSAgreementScorer"><code class="xref py py-func docutils literal"><span class="pre">LoadSSAgreementScorer()</span></code></a>) or by setting scores for all possible states +(see <a class="reference internal" href="#promod3.scoring.SSAgreementScorer.SetScore" title="promod3.scoring.SSAgreementScorer.SetScore"><code class="xref py py-meth docutils literal"><span class="pre">SetScore()</span></code></a>).</p> <p>This scorer assumes that the attached environment has a psipred prediction -defined (see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv.SetPsipredPrediction" title="promod3.scoring.BackboneScoreEnv.SetPsipredPrediction"><code class="xref py py-meth docutils literal notranslate"><span class="pre">BackboneScoreEnv.SetPsipredPrediction()</span></code></a>) as soon as a score +defined (see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv.SetPsipredPrediction" title="promod3.scoring.BackboneScoreEnv.SetPsipredPrediction"><code class="xref py py-meth docutils literal"><span class="pre">BackboneScoreEnv.SetPsipredPrediction()</span></code></a>) as soon as a score is to be calculated.</p> -<p>Note that for this scorer a higher “score” is better! So take care when +<p>Note that for this scorer a higher “score” is better! So take care when combining this to other scores, where it is commonly the other way around.</p> <dl class="staticmethod"> <dt id="promod3.scoring.SSAgreementScorer.Load"> <em class="property">static </em><code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.SSAgreementScorer.Load" title="Permalink to this definition">¶</a></dt> <dt id="promod3.scoring.SSAgreementScorer.LoadPortable"> <em class="property">static </em><code class="descname">LoadPortable</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.SSAgreementScorer.LoadPortable" title="Permalink to this definition">¶</a></dt> -<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.scoring.SSAgreementScorer.Save" title="promod3.scoring.SSAgreementScorer.Save"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Save()</span></code></a> (optimized for fast -reading) / portable file generated with <a class="reference internal" href="#promod3.scoring.SSAgreementScorer.SavePortable" title="promod3.scoring.SSAgreementScorer.SavePortable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SavePortable()</span></code></a> (slower but +<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.scoring.SSAgreementScorer.Save" title="promod3.scoring.SSAgreementScorer.Save"><code class="xref py py-meth docutils literal"><span class="pre">Save()</span></code></a> (optimized for fast +reading) / portable file generated with <a class="reference internal" href="#promod3.scoring.SSAgreementScorer.SavePortable" title="promod3.scoring.SSAgreementScorer.SavePortable"><code class="xref py py-meth docutils literal"><span class="pre">SavePortable()</span></code></a> (slower but less machine-dependent).</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The loaded scorer</td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.SSAgreementScorer" title="promod3.scoring.SSAgreementScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">SSAgreementScorer</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.SSAgreementScorer" title="promod3.scoring.SSAgreementScorer"><code class="xref py py-class docutils literal"><span class="pre">SSAgreementScorer</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened or if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened or if file cannot be parsed (see <a class="reference internal" href="../portableIO.html#portableio"><span class="std std-ref">here</span></a> for details).</td> </tr> </tbody> @@ -1065,9 +1078,9 @@ for details.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file where it will be saved.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file where it 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> </tr> </tbody> </table> @@ -1083,14 +1096,14 @@ is loaded, this must be called for every combination of states.</p> <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>psipred_state</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – must be one of [‘H’, ‘E’, ‘C’]</li> -<li><strong>psipred_confidence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – must be in range [0, 9]</li> -<li><strong>dssp_state</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – must be one of [‘H’, ‘E’, ‘C’, ‘G’, ‘B’, ‘S’, ‘T’, ‘I’]</li> -<li><strong>score</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – score to be set</li> +<li><strong>psipred_state</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – must be one of [‘H’, ‘E’, ‘C’]</li> +<li><strong>psipred_confidence</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – must be in range [0, 9]</li> +<li><strong>dssp_state</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – must be one of [‘H’, ‘E’, ‘C’, ‘G’, ‘B’, ‘S’, ‘T’, ‘I’]</li> +<li><strong>score</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – score 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if inputs are invalid</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if inputs are invalid</p> </td> </tr> </tbody> @@ -1104,7 +1117,7 @@ is loaded, this must be called for every combination of states.</p> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number of residues to be scored. True by default.</td> </tr> </tbody> @@ -1122,7 +1135,7 @@ of residues to be scored. True by default.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The default predefined structure agreement scorer (loaded from disk)</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.SSAgreementScorer" title="promod3.scoring.SSAgreementScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">SSAgreementScorer</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.SSAgreementScorer" title="promod3.scoring.SSAgreementScorer"><code class="xref py py-class docutils literal"><span class="pre">SSAgreementScorer</span></code></a></td> </tr> </tbody> </table> @@ -1134,27 +1147,27 @@ of residues to be scored. True by default.</td> <dl class="class"> <dt id="promod3.scoring.TorsionScorer"> <em class="property">class </em><code class="descclassname">promod3.scoring.</code><code class="descname">TorsionScorer</code><span class="sig-paren">(</span><em>group_definitions</em>, <em>torsion_bins</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.TorsionScorer" title="Permalink to this definition">¶</a></dt> -<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScorer</span></code></a>. Evaluates pseudo +<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneScorer</span></code></a>. Evaluates pseudo energies based on the identity of three consecutive residues and the phi/psi dihedral angles of the central residue. The first phi and last psi angle get determined with the help of the environment if set.</p> <p>The scorer needs to be initialized either by loading a predefined scorer (e.g. -<a class="reference internal" href="#promod3.scoring.LoadTorsionScorer" title="promod3.scoring.LoadTorsionScorer"><code class="xref py py-func docutils literal notranslate"><span class="pre">LoadTorsionScorer()</span></code></a>) or by setting all energies (see <a class="reference internal" href="#promod3.scoring.TorsionScorer.SetEnergy" title="promod3.scoring.TorsionScorer.SetEnergy"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetEnergy()</span></code></a>) +<a class="reference internal" href="#promod3.scoring.LoadTorsionScorer" title="promod3.scoring.LoadTorsionScorer"><code class="xref py py-func docutils literal"><span class="pre">LoadTorsionScorer()</span></code></a>) or by setting all energies (see <a class="reference internal" href="#promod3.scoring.TorsionScorer.SetEnergy" title="promod3.scoring.TorsionScorer.SetEnergy"><code class="xref py py-meth docutils literal"><span class="pre">SetEnergy()</span></code></a>) for each group definition.</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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – List of group definitions defining amino acid +<li><strong>group_definitions</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – List of group definitions defining amino acid triplets (same style as used in the -<a class="reference internal" href="../loop/torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionSampler</span></code></a> class).</li> -<li><strong>torsion_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize the torsion +<a class="reference internal" href="../loop/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> class).</li> +<li><strong>torsion_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of equally sized bins to discretize the torsion angles (range of [0, 2*pi]).</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>torsion_bins</em> < 1 or if there is +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>torsion_bins</em> < 1 or if there is a possible combination of the 20 standard amino acids not matching any entry of <em>group_definitions</em></p> </td> @@ -1166,20 +1179,20 @@ any entry of <em>group_definitions</em></p> <em class="property">static </em><code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.TorsionScorer.Load" title="Permalink to this definition">¶</a></dt> <dt id="promod3.scoring.TorsionScorer.LoadPortable"> <em class="property">static </em><code class="descname">LoadPortable</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.scoring.TorsionScorer.LoadPortable" title="Permalink to this definition">¶</a></dt> -<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.scoring.TorsionScorer.Save" title="promod3.scoring.TorsionScorer.Save"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Save()</span></code></a> (optimized for fast -reading) / portable file generated with <a class="reference internal" href="#promod3.scoring.TorsionScorer.SavePortable" title="promod3.scoring.TorsionScorer.SavePortable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SavePortable()</span></code></a> (slower but +<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.scoring.TorsionScorer.Save" title="promod3.scoring.TorsionScorer.Save"><code class="xref py py-meth docutils literal"><span class="pre">Save()</span></code></a> (optimized for fast +reading) / portable file generated with <a class="reference internal" href="#promod3.scoring.TorsionScorer.SavePortable" title="promod3.scoring.TorsionScorer.SavePortable"><code class="xref py py-meth docutils literal"><span class="pre">SavePortable()</span></code></a> (slower but less machine-dependent).</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The loaded scorer</td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.TorsionScorer" title="promod3.scoring.TorsionScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionScorer</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.TorsionScorer" title="promod3.scoring.TorsionScorer"><code class="xref py py-class docutils literal"><span class="pre">TorsionScorer</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened or if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened or if file cannot be parsed (see <a class="reference internal" href="../portableIO.html#portableio"><span class="std std-ref">here</span></a> for details).</td> </tr> </tbody> @@ -1198,9 +1211,9 @@ for details.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file where it will be saved.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file where it 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> </tr> </tbody> </table> @@ -1217,15 +1230,15 @@ called for every <em>group_idx</em> < len(<em>group_definitions</em>), every <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_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of group definition as set in constructor with +<li><strong>group_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of group definition as set in constructor with numbering starting at 0.</li> -<li><strong>phi_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Discrete bin describing the phi angle.</li> -<li><strong>psi_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Discrete bin describing the psi angle.</li> -<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</li> +<li><strong>phi_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the phi angle.</li> +<li><strong>psi_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the psi angle.</li> +<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if inputs are invalid</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if inputs are invalid</p> </td> </tr> </tbody> @@ -1239,7 +1252,7 @@ numbering starting at 0.</li> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number of residues to be scored. True by default.</td> </tr> </tbody> @@ -1257,7 +1270,7 @@ of residues to be scored. True by default.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The default predefined TorsionScorer (loaded from disk)</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.TorsionScorer" title="promod3.scoring.TorsionScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">TorsionScorer</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.scoring.TorsionScorer" title="promod3.scoring.TorsionScorer"><code class="xref py py-class docutils literal"><span class="pre">TorsionScorer</span></code></a></td> </tr> </tbody> </table> @@ -1269,11 +1282,11 @@ of residues to be scored. True by default.</td> <dl class="class"> <dt id="promod3.scoring.PairwiseScorer"> <em class="property">class </em><code class="descclassname">promod3.scoring.</code><code class="descname">PairwiseScorer</code><a class="headerlink" href="#promod3.scoring.PairwiseScorer" title="Permalink to this definition">¶</a></dt> -<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackboneScorer</span></code></a>. Evaluates a list of -generic pairwise functions (see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.PairwiseFunction" title="promod3.scoring.PairwiseFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">PairwiseFunction</span></code></a>). +<dd><p>Inherits all functionality of <a class="reference internal" href="#promod3.scoring.BackboneScorer" title="promod3.scoring.BackboneScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneScorer</span></code></a>. Evaluates a list of +generic pairwise functions (see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.PairwiseFunction" title="promod3.scoring.PairwiseFunction"><code class="xref py py-class docutils literal"><span class="pre">PairwiseFunction</span></code></a>). That are set in the attached scoring environment -(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv.ApplyPairwiseFunction" title="promod3.scoring.BackboneScoreEnv.ApplyPairwiseFunction"><code class="xref py py-meth docutils literal notranslate"><span class="pre">BackboneScoreEnv.ApplyPairwiseFunction()</span></code></a>).</p> -<p>Note that for this scorer a higher “score” is better! So take care when +(see <a class="reference internal" href="backbone_score_env.html#promod3.scoring.BackboneScoreEnv.ApplyPairwiseFunction" title="promod3.scoring.BackboneScoreEnv.ApplyPairwiseFunction"><code class="xref py py-meth docutils literal"><span class="pre">BackboneScoreEnv.ApplyPairwiseFunction()</span></code></a>).</p> +<p>Note that for this scorer a higher “score” is better! So take care when combining this to other scores, where it is commonly the other way around.</p> <dl class="method"> <dt id="promod3.scoring.PairwiseScorer.DoInternalScores"> @@ -1282,7 +1295,7 @@ combining this to other scores, where it is commonly the other way around.</p> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions between +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to include pairwise interactions between the scored residues. True by default.</td> </tr> </tbody> @@ -1296,7 +1309,7 @@ the scored residues. True by default.</td> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>, true by default.) – Whether to include pairwise interactions of the scored +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>, true by default.) – Whether to include pairwise interactions of the scored residues towards the surrounding environment. True by default.</td> </tr> @@ -1311,7 +1324,7 @@ True by default.</td> <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>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>do_it</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether to normalize the calculated scores by the number of residues to be scored. True by default.</td> </tr> </tbody> @@ -1330,45 +1343,28 @@ of residues to be scored. True by default.</td> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Backbone Scorers</a><ul> +<li><a class="reference internal" href="#backboneoverallscorer-class">BackboneOverallScorer class</a></li> +<li><a class="reference internal" href="#backbonescorer-base-class">BackboneScorer base class</a></li> +<li><a class="reference internal" href="#cbpackingscorer-class">CBPackingScorer class</a></li> +<li><a class="reference internal" href="#cbetascorer-class">CBetaScorer class</a></li> +<li><a class="reference internal" href="#reducedscorer-class">ReducedScorer class</a></li> +<li><a class="reference internal" href="#clashscorer-class">ClashScorer class</a></li> +<li><a class="reference internal" href="#hbondscorer-class">HBondScorer class</a></li> +<li><a class="reference internal" href="#ssagreementscorer-class">SSAgreementScorer class</a></li> +<li><a class="reference internal" href="#torsionscorer-class">TorsionScorer class</a></li> +<li><a class="reference internal" href="#pairwisescorer-class">PairwiseScorer class</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">scoring</span></code> - Loop Scoring</a><ul> <li>Previous: <a href="backbone_score_env.html" title="previous chapter">Backbone Score Environment</a></li> <li>Next: <a href="all_atom_scorers.html" title="next chapter">All Atom Scorers</a></li> </ul></li> @@ -1376,26 +1372,23 @@ of residues to be scored. True by default.</td> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/scoring/backbone_scorers.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -1404,11 +1397,11 @@ of residues to be scored. True by default.</td> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/scoring/backbone_scorers.rst.txt" + <a href="../_sources/scoring/backbone_scorers.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/scoring/index.html b/doc/html/scoring/index.html index 4b03019ce400a0d8cbbb6a1eafcae797d5448717..54a2836841bc5c07da3ca4897e400396a4395720 100644 --- a/doc/html/scoring/index.html +++ b/doc/html/scoring/index.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>scoring - Loop Scoring — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="Documentation For Users" href="../users.html" /> <link rel="next" title="Backbone Score Environment" href="backbone_score_env.html" /> <link rel="prev" title="Subrotamer Optimization" href="../sidechain/subrotamer_optimizer.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -35,7 +48,7 @@ <div class="body" role="main"> <div class="section" id="module-promod3.scoring"> -<span id="scoring-loop-scoring"></span><h1><a class="reference internal" href="#module-promod3.scoring" title="promod3.scoring: Loop Scoring"><code class="xref py py-mod docutils literal notranslate"><span class="pre">scoring</span></code></a> - Loop Scoring<a class="headerlink" href="#module-promod3.scoring" title="Permalink to this headline">¶</a></h1> +<span id="scoring-loop-scoring"></span><h1><a class="reference internal" href="#module-promod3.scoring" title="promod3.scoring: Loop Scoring"><code class="xref py py-mod docutils literal"><span class="pre">scoring</span></code></a> - Loop Scoring<a class="headerlink" href="#module-promod3.scoring" title="Permalink to this headline">¶</a></h1> <p>Tools and algorithms to score loops. The scoring system is split between an environment and scorers. Several scorers can be attached to the same environment containing the @@ -44,8 +57,8 @@ The environment is updated as the modelling proceeds and manages efficient spatial lookups to be used by the attached scorers.</p> <p>In this example, we load a structure, setup a score environment, link a few scorers to it and finally score some loops:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">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</span> <span class="k">import</span> <span class="n">loop</span><span class="p">,</span> <span class="n">scoring</span> +<div class="highlight-default"><div class="highlight"><pre><span></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</span> <span class="kn">import</span> <span class="n">loop</span><span class="p">,</span> <span class="n">scoring</span> <span class="c1"># load data</span> <span class="n">ent</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="s2">"data/1CRN.pdb"</span><span class="p">)</span> @@ -112,41 +125,7 @@ scorers to it and finally score some loops:</p> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> @@ -157,26 +136,23 @@ scorers to it and finally score some loops:</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/scoring/index.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -185,11 +161,11 @@ scorers to it and finally score some loops:</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/scoring/index.rst.txt" + <a href="../_sources/scoring/index.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/scoring/other_scoring_functions.html b/doc/html/scoring/other_scoring_functions.html index 6fd0d56f118a02981dda69f849799570edb7c3c3..0370e146230fb469e69c7d0bca26510749e89f65 100644 --- a/doc/html/scoring/other_scoring_functions.html +++ b/doc/html/scoring/other_scoring_functions.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Other Scoring Functions — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="scoring - Loop Scoring" href="index.html" /> <link rel="next" title="loop - Loop Handling" href="../loop/index.html" /> <link rel="prev" title="All Atom Scorers" href="all_atom_scorers.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -48,8 +61,8 @@ <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>d</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Distance between the two interacting particles</li> -<li><strong>Rij</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – <p>Summed hard-sphere radii of the interacting particles. +<li><strong>d</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Distance between the two interacting particles</li> +<li><strong>Rij</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – <p>Summed hard-sphere radii of the interacting particles. Suggestions from the paper:</p> <ul> <li>carbon: 1.6</li> @@ -64,7 +77,7 @@ Suggestions from the paper:</p> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The score</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 external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </td> </tr> </tbody> @@ -81,19 +94,19 @@ construction algorithm <a class="reference internal" href="../references.html#ca <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>ca_pos_one</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geoom.Vec3</span></code>) – CA carbon position of first amino acid</li> -<li><strong>cb_pos_one</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geoom.Vec3</span></code>) – CB carbon position of first amino acid</li> -<li><strong>sg_pos_one</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geoom.Vec3</span></code>) – SG sulfur position of first amino acid</li> -<li><strong>ca_pos_two</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geoom.Vec3</span></code>) – CA carbon position of second amino acid</li> -<li><strong>cb_pos_two</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geoom.Vec3</span></code>) – CB carbon position of second amino acid</li> -<li><strong>sg_pos_two</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geoom.Vec3</span></code>) – SG sulfur position of second amino acid</li> +<li><strong>ca_pos_one</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geoom.Vec3</span></code>) – CA carbon position of first amino acid</li> +<li><strong>cb_pos_one</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geoom.Vec3</span></code>) – CB carbon position of first amino acid</li> +<li><strong>sg_pos_one</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geoom.Vec3</span></code>) – SG sulfur position of first amino acid</li> +<li><strong>ca_pos_two</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geoom.Vec3</span></code>) – CA carbon position of second amino acid</li> +<li><strong>cb_pos_two</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geoom.Vec3</span></code>) – CB carbon position of second amino acid</li> +<li><strong>sg_pos_two</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geoom.Vec3</span></code>) – SG sulfur position of second amino acid</li> </ul> </td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The score</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 external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></p> </td> </tr> </tbody> @@ -110,72 +123,43 @@ construction algorithm <a class="reference internal" href="../references.html#ca </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Other Scoring Functions</a><ul> +<li><a class="reference internal" href="#scoring-functions-from-scwrl3">Scoring Functions from SCWRL3</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">scoring</span></code> - Loop Scoring</a><ul> <li>Previous: <a href="all_atom_scorers.html" title="previous chapter">All Atom Scorers</a></li> - <li>Next: <a href="../loop/index.html" title="next chapter"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> + <li>Next: <a href="../loop/index.html" title="next chapter"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Handling</a></li> </ul></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/scoring/other_scoring_functions.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -184,11 +168,11 @@ construction algorithm <a class="reference internal" href="../references.html#ca ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/scoring/other_scoring_functions.rst.txt" + <a href="../_sources/scoring/other_scoring_functions.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/search.html b/doc/html/search.html index 470a4f7e2cd2f8cf05ff95d2a2f34f8dce8ac240..8af83fdc1f802d41c7adf0e556ff370cd7899faf 100644 --- a/doc/html/search.html +++ b/doc/html/search.html @@ -1,23 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Search — ProMod3 3.0.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" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <script type="text/javascript" src="_static/searchtools.js"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="#" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="index.html" /> <script type="text/javascript"> jQuery(function() { Search.loadIndex("searchindex.js"); }); </script> @@ -31,7 +41,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -70,42 +81,13 @@ </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul> -<li class="toctree-l1"><a class="reference internal" href="users.html">Users</a></li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="index.html">Documentation overview</a><ul> </ul></li> </ul> </div> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -114,7 +96,7 @@ ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> </div> diff --git a/doc/html/searchindex.js b/doc/html/searchindex.js index 427e01fd29dec04f51ee064c4bad60265c3e5c68..16e4229f705f4a34c033614ac204054082876d32 100644 --- a/doc/html/searchindex.js +++ b/doc/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["actions/index","actions/index_dev","buildsystem","changelog","cmake/index","container/docker","container/index","container/singularity","contributing","core/geometry","core/graph_minimizer","core/helper","core/index","core/pm3argparse","core/runtime_profiling","core/setcompoundschemlib","dev_setup","developers","gettingstarted","index","license","loop/all_atom","loop/backbone","loop/index","loop/load_loop_objects","loop/mm_system_creation","loop/structure_db","loop/torsion_sampler","modelling/algorithms","modelling/gap_handling","modelling/index","modelling/loop_candidates","modelling/loop_closing","modelling/model_checking","modelling/monte_carlo","modelling/pipeline","modelling/sidechain_reconstruction","portableIO","references","scoring/all_atom_scorers","scoring/backbone_score_env","scoring/backbone_scorers","scoring/index","scoring/other_scoring_functions","sidechain/disulfid","sidechain/frame","sidechain/graph","sidechain/index","sidechain/loading","sidechain/rotamer","sidechain/rotamer_constructor","sidechain/rotamer_lib","sidechain/subrotamer_optimizer","user_contributions","users"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":1,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":1,sphinx:55},filenames:["actions/index.rst","actions/index_dev.rst","buildsystem.rst","changelog.rst","cmake/index.rst","container/docker.rst","container/index.rst","container/singularity.rst","contributing.rst","core/geometry.rst","core/graph_minimizer.rst","core/helper.rst","core/index.rst","core/pm3argparse.rst","core/runtime_profiling.rst","core/setcompoundschemlib.rst","dev_setup.rst","developers.rst","gettingstarted.rst","index.rst","license.rst","loop/all_atom.rst","loop/backbone.rst","loop/index.rst","loop/load_loop_objects.rst","loop/mm_system_creation.rst","loop/structure_db.rst","loop/torsion_sampler.rst","modelling/algorithms.rst","modelling/gap_handling.rst","modelling/index.rst","modelling/loop_candidates.rst","modelling/loop_closing.rst","modelling/model_checking.rst","modelling/monte_carlo.rst","modelling/pipeline.rst","modelling/sidechain_reconstruction.rst","portableIO.rst","references.rst","scoring/all_atom_scorers.rst","scoring/backbone_score_env.rst","scoring/backbone_scorers.rst","scoring/index.rst","scoring/other_scoring_functions.rst","sidechain/disulfid.rst","sidechain/frame.rst","sidechain/graph.rst","sidechain/index.rst","sidechain/loading.rst","sidechain/rotamer.rst","sidechain/rotamer_constructor.rst","sidechain/rotamer_lib.rst","sidechain/subrotamer_optimizer.rst","user_contributions.rst","users.rst"],objects:{"":{"--backbone-independent":[0,7,1,"cmdoption-i"],"--energy_function":[0,7,1,"cmdoption-f"],"--keep-sidechains":[0,7,1,"cmdoption-k"],"--no-disulfids":[0,7,1,"cmdoption-n"],"--no-subrotamer-optimization":[0,7,1,"cmdoption-s"],"--rigid-rotamers":[0,7,1,"cmdoption-r"],"-f":[0,7,1,"cmdoption-f"],"-i":[0,7,1,"cmdoption-i"],"-k":[0,7,1,"cmdoption-k"],"-n":[0,7,1,"cmdoption-n"],"-r":[0,7,1,"cmdoption-r"],"-s":[0,7,1,"cmdoption-s"],"command:add_doc_dependency":[4,0,1,""],"command:add_doc_source":[4,0,1,""],"command:convert_module_data":[4,0,1,""],"command:module":[4,0,1,""],"command:pm_action":[4,0,1,""],"command:promod3_unittest":[4,0,1,""],"command:pymod":[4,0,1,""],test_actions:[1,2,0,"-"]},"promod3.core":{ConstructAtomPos:[9,1,1,""],ConstructCBetaPos:[9,1,1,""],ConstructCTerminalOxygens:[9,1,1,""],EvaluateGromacsPosRule:[9,1,1,""],GraphMinimizer:[10,3,1,""],RotationAroundLine:[9,1,1,""],StaticRuntimeProfiler:[14,3,1,""],StemCoords:[9,3,1,""],StemPairOrientation:[9,3,1,""],helper:[11,2,0,"-"],pm3argparse:[13,2,0,"-"]},"promod3.core.GraphMinimizer":{AStarSolve:[10,4,1,""],AddEdge:[10,4,1,""],AddNode:[10,4,1,""],ApplyDEE:[10,4,1,""],ApplyEdgeDecomposition:[10,4,1,""],MCSolve:[10,4,1,""],NaiveSolve:[10,4,1,""],Prune:[10,4,1,""],Reset:[10,4,1,""],TreeSolve:[10,4,1,""]},"promod3.core.StaticRuntimeProfiler":{Clear:[14,5,1,""],IsEnabled:[14,5,1,""],PrintSummary:[14,5,1,""],Start:[14,5,1,""],StartScoped:[14,5,1,""],Stop:[14,5,1,""]},"promod3.core.StemCoords":{c_coord:[9,6,1,""],ca_coord:[9,6,1,""],n_coord:[9,6,1,""]},"promod3.core.StemPairOrientation":{angle_four:[9,6,1,""],angle_one:[9,6,1,""],angle_three:[9,6,1,""],angle_two:[9,6,1,""],distance:[9,6,1,""]},"promod3.core.helper":{FileExists:[11,1,1,""],FileExtension:[11,1,1,""],FileGzip:[11,1,1,""],MsgErrorAndExit:[11,1,1,""]},"promod3.core.pm3argparse":{PM3ArgumentParser:[13,3,1,""]},"promod3.core.pm3argparse.PM3ArgumentParser":{AddAlignment:[13,4,1,""],AddFragments:[13,4,1,""],AddProfile:[13,4,1,""],AddStructure:[13,4,1,""],AssembleParser:[13,4,1,""],Parse:[13,4,1,""],__init__:[13,4,1,""],action:[13,6,1,""]},"promod3.loop":{AllAtomEnv:[21,3,1,""],AllAtomEnvPositions:[21,3,1,""],AllAtomPositions:[21,3,1,""],AminoAcidAtom:[21,3,1,""],AminoAcidHydrogen:[21,3,1,""],AminoAcidLookup:[21,3,1,""],BackboneList:[22,3,1,""],CoordInfo:[26,3,1,""],ForcefieldAminoAcid:[25,3,1,""],ForcefieldBondInfo:[25,3,1,""],ForcefieldConnectivity:[25,3,1,""],ForcefieldHarmonicAngleInfo:[25,3,1,""],ForcefieldHarmonicImproperInfo:[25,3,1,""],ForcefieldLJPairInfo:[25,3,1,""],ForcefieldLookup:[25,3,1,""],ForcefieldPeriodicDihedralInfo:[25,3,1,""],ForcefieldUreyBradleyAngleInfo:[25,3,1,""],FragDB:[26,3,1,""],Fragger:[26,3,1,""],FraggerMap:[26,3,1,""],FragmentInfo:[26,3,1,""],LoadFragDB:[24,4,1,""],LoadStructureDB:[24,4,1,""],LoadTorsionSampler:[24,4,1,""],LoadTorsionSamplerCoil:[24,4,1,""],LoadTorsionSamplerExtended:[24,4,1,""],LoadTorsionSamplerHelical:[24,4,1,""],MmSystemCreator:[25,3,1,""],PsipredPrediction:[26,3,1,""],StructureDB:[26,3,1,""],StructureDBDataType:[26,3,1,""],TorsionSampler:[27,3,1,""]},"promod3.loop.AllAtomEnv":{ClearEnvironment:[21,4,1,""],GetAllAtomPositions:[21,4,1,""],GetEnvironment:[21,4,1,""],GetSeqres:[21,4,1,""],SetEnvironment:[21,4,1,""],SetInitialEnvironment:[21,4,1,""]},"promod3.loop.AllAtomEnvPositions":{all_pos:[21,6,1,""],res_indices:[21,6,1,""]},"promod3.loop.AllAtomPositions":{AllAtomPositions:[21,4,1,""],ClearPos:[21,4,1,""],ClearResidue:[21,4,1,""],Copy:[21,4,1,""],Extract:[21,4,1,""],ExtractBackbone:[21,4,1,""],GetAA:[21,4,1,""],GetFirstIndex:[21,4,1,""],GetIndex:[21,4,1,""],GetLastIndex:[21,4,1,""],GetNumAtoms:[21,4,1,""],GetNumResidues:[21,4,1,""],GetOmegaTorsion:[21,4,1,""],GetPhiTorsion:[21,4,1,""],GetPos:[21,4,1,""],GetPsiTorsion:[21,4,1,""],GetSequence:[21,4,1,""],InsertInto:[21,4,1,""],IsAllSet:[21,4,1,""],IsAnySet:[21,4,1,""],IsSet:[21,4,1,""],SetPos:[21,4,1,""],SetResidue:[21,4,1,""],ToEntity:[21,4,1,""]},"promod3.loop.AminoAcidLookup":{GetAA:[21,5,1,""],GetAAA:[21,5,1,""],GetAAH:[21,5,1,""],GetAnchorAtomIndex:[21,5,1,""],GetAtomName:[21,5,1,""],GetAtomNameAmber:[21,5,1,""],GetAtomNameCharmm:[21,5,1,""],GetElement:[21,5,1,""],GetH1Index:[21,5,1,""],GetH2Index:[21,5,1,""],GetH3Index:[21,5,1,""],GetHNIndex:[21,5,1,""],GetHydrogenIndex:[21,5,1,""],GetIndex:[21,5,1,""],GetMaxNumAtoms:[21,5,1,""],GetMaxNumHydrogens:[21,5,1,""],GetNumAtoms:[21,5,1,""],GetNumHydrogens:[21,5,1,""],GetOLC:[21,5,1,""]},"promod3.loop.BackboneList":{ApplyTransform:[22,4,1,""],BackboneList:[22,4,1,""],CARMSD:[22,4,1,""],Copy:[22,4,1,""],Extract:[22,4,1,""],GetAA:[22,4,1,""],GetBounds:[22,4,1,""],GetC:[22,4,1,""],GetCA:[22,4,1,""],GetCB:[22,4,1,""],GetN:[22,4,1,""],GetO:[22,4,1,""],GetOLC:[22,4,1,""],GetOmegaTorsion:[22,4,1,""],GetPhiTorsion:[22,4,1,""],GetPsiTorsion:[22,4,1,""],GetSequence:[22,4,1,""],GetTransform:[22,4,1,""],InsertInto:[22,4,1,""],MinCADistance:[22,4,1,""],RMSD:[22,4,1,""],ReconstructCBetaPositions:[22,4,1,""],ReconstructCStemOxygen:[22,4,1,""],ReconstructOxygenPositions:[22,4,1,""],ReplaceFragment:[22,4,1,""],RotateAroundOmegaTorsion:[22,4,1,""],RotateAroundPhiPsiTorsion:[22,4,1,""],RotateAroundPhiTorsion:[22,4,1,""],RotateAroundPsiTorsion:[22,4,1,""],Set:[22,4,1,""],SetAA:[22,4,1,""],SetAroundOmegaTorsion:[22,4,1,""],SetAroundPhiPsiTorsion:[22,4,1,""],SetAroundPhiTorsion:[22,4,1,""],SetAroundPsiTorsion:[22,4,1,""],SetBackrub:[22,4,1,""],SetC:[22,4,1,""],SetCA:[22,4,1,""],SetCB:[22,4,1,""],SetN:[22,4,1,""],SetO:[22,4,1,""],SetOLC:[22,4,1,""],SetSequence:[22,4,1,""],SuperposeOnto:[22,4,1,""],ToDensity:[22,4,1,""],ToEntity:[22,4,1,""],TransOmegaTorsions:[22,4,1,""],__len__:[22,4,1,""],append:[22,4,1,""],clear:[22,4,1,""],empty:[22,4,1,""],resize:[22,4,1,""]},"promod3.loop.CoordInfo":{chain_name:[26,6,1,""],id:[26,6,1,""],offset:[26,6,1,""],shift:[26,6,1,""],size:[26,6,1,""],start_resnum:[26,6,1,""]},"promod3.loop.ForcefieldBondInfo":{bond_length:[25,6,1,""],force_constant:[25,6,1,""],index_one:[25,6,1,""],index_two:[25,6,1,""]},"promod3.loop.ForcefieldConnectivity":{harmonic_angles:[25,6,1,""],harmonic_bonds:[25,6,1,""],harmonic_impropers:[25,6,1,""],lj_pairs:[25,6,1,""],periodic_dihedrals:[25,6,1,""],periodic_impropers:[25,6,1,""],urey_bradley_angles:[25,6,1,""]},"promod3.loop.ForcefieldHarmonicAngleInfo":{angle:[25,6,1,""],force_constant:[25,6,1,""],index_one:[25,6,1,""],index_three:[25,6,1,""],index_two:[25,6,1,""]},"promod3.loop.ForcefieldHarmonicImproperInfo":{angle:[25,6,1,""],force_constant:[25,6,1,""],index_four:[25,6,1,""],index_one:[25,6,1,""],index_three:[25,6,1,""],index_two:[25,6,1,""]},"promod3.loop.ForcefieldLJPairInfo":{epsilon:[25,6,1,""],index_one:[25,6,1,""],index_two:[25,6,1,""],sigma:[25,6,1,""]},"promod3.loop.ForcefieldLookup":{GetAA:[25,4,1,""],GetCharges:[25,4,1,""],GetDefault:[25,5,1,""],GetDisulfidConnectivity:[25,4,1,""],GetEpsilons:[25,4,1,""],GetFudgeLJ:[25,4,1,""],GetFudgeQQ:[25,4,1,""],GetHeavyIndex:[25,4,1,""],GetHydrogenIndex:[25,4,1,""],GetInternalConnectivity:[25,4,1,""],GetMasses:[25,4,1,""],GetNumAtoms:[25,4,1,""],GetOXTIndex:[25,4,1,""],GetPeptideBoundConnectivity:[25,4,1,""],GetSigmas:[25,4,1,""],Load:[25,5,1,""],LoadCHARMM:[25,5,1,""],LoadPortable:[25,5,1,""],Save:[25,4,1,""],SavePortable:[25,4,1,""],SetCharges:[25,4,1,""],SetDefault:[25,5,1,""],SetDisulfidConnectivity:[25,4,1,""],SetEpsilons:[25,4,1,""],SetFudgeLJ:[25,4,1,""],SetFudgeQQ:[25,4,1,""],SetInternalConnectivity:[25,4,1,""],SetMasses:[25,4,1,""],SetPeptideBoundConnectivity:[25,4,1,""],SetSigmas:[25,4,1,""]},"promod3.loop.ForcefieldPeriodicDihedralInfo":{force_constant:[25,6,1,""],index_four:[25,6,1,""],index_one:[25,6,1,""],index_three:[25,6,1,""],index_two:[25,6,1,""],multiplicity:[25,6,1,""],phase:[25,6,1,""]},"promod3.loop.ForcefieldUreyBradleyAngleInfo":{angle:[25,6,1,""],angle_force_constant:[25,6,1,""],bond_force_constant:[25,6,1,""],bond_length:[25,6,1,""],index_one:[25,6,1,""],index_three:[25,6,1,""],index_two:[25,6,1,""]},"promod3.loop.FragDB":{AddFragments:[26,4,1,""],GetAngularBinSize:[26,4,1,""],GetDistBinSize:[26,4,1,""],GetNumFragments:[26,4,1,""],GetNumStemPairs:[26,4,1,""],HasFragLength:[26,4,1,""],Load:[26,5,1,""],LoadPortable:[26,5,1,""],MaxFragLength:[26,4,1,""],PrintStatistics:[26,4,1,""],Save:[26,4,1,""],SavePortable:[26,4,1,""],SearchDB:[26,4,1,""]},"promod3.loop.Fragger":{AddSSAgreeParameters:[26,4,1,""],AddSeqIDParameters:[26,4,1,""],AddSeqSimParameters:[26,4,1,""],AddSequenceProfileParameters:[26,4,1,""],AddStructureProfileParameters:[26,4,1,""],AddTorsionProbabilityParameters:[26,4,1,""],Fill:[26,4,1,""],GetFragmentInfo:[26,4,1,""],GetScore:[26,4,1,""],__getitem__:[26,4,1,""],__len__:[26,4,1,""]},"promod3.loop.FraggerMap":{Contains:[26,4,1,""],Load:[26,4,1,""],LoadBB:[26,4,1,""],Save:[26,4,1,""],SaveBB:[26,4,1,""],__getitem__:[26,4,1,""],__setitem__:[26,4,1,""]},"promod3.loop.FragmentInfo":{chain_index:[26,6,1,""],length:[26,6,1,""],offset:[26,6,1,""]},"promod3.loop.MmSystemCreator":{ExtractLoopPositions:[25,4,1,""],GetCpuPlatformSupport:[25,4,1,""],GetDisulfidBridges:[25,4,1,""],GetForcefieldAminoAcids:[25,4,1,""],GetIndexing:[25,4,1,""],GetLoopLengths:[25,4,1,""],GetLoopStartIndices:[25,4,1,""],GetNumLoopResidues:[25,4,1,""],GetNumResidues:[25,4,1,""],GetSimulation:[25,4,1,""],SetCpuPlatformSupport:[25,4,1,""],SetupSystem:[25,4,1,""],UpdatePositions:[25,4,1,""]},"promod3.loop.PsipredPrediction":{Add:[26,4,1,""],Extract:[26,4,1,""],FromHHM:[26,4,1,""],FromHoriz:[26,4,1,""],GetConfidence:[26,4,1,""],GetConfidences:[26,4,1,""],GetPrediction:[26,4,1,""],GetPredictions:[26,4,1,""],PsipredPrediction:[26,4,1,""],__len__:[26,4,1,""]},"promod3.loop.StructureDB":{AddCoordinates:[26,4,1,""],GenerateStructureProfile:[26,4,1,""],GetBackboneList:[26,4,1,""],GetCoordIdx:[26,4,1,""],GetCoordInfo:[26,4,1,""],GetDSSPStates:[26,4,1,""],GetDihedralAngles:[26,4,1,""],GetNumCoords:[26,4,1,""],GetResidueDepths:[26,4,1,""],GetSequence:[26,4,1,""],GetSequenceProfile:[26,4,1,""],GetSolventAccessibilitites:[26,4,1,""],GetStructureProfile:[26,4,1,""],GetSubDB:[26,4,1,""],HasData:[26,4,1,""],Load:[26,5,1,""],LoadPortable:[26,5,1,""],PrintStatistics:[26,4,1,""],RemoveCoordinates:[26,4,1,""],Save:[26,4,1,""],SavePortable:[26,4,1,""],SetStructureProfile:[26,4,1,""]},"promod3.loop.TorsionSampler":{Draw:[27,4,1,""],DrawPhiGivenPsi:[27,4,1,""],DrawPsiGivenPhi:[27,4,1,""],ExtractStatistics:[27,4,1,""],GetBinSize:[27,4,1,""],GetBinsPerDimension:[27,4,1,""],GetHistogramIndex:[27,4,1,""],GetHistogramIndices:[27,4,1,""],GetPhiProbabilityGivenPsi:[27,4,1,""],GetProbability:[27,4,1,""],GetPsiProbabilityGivenPhi:[27,4,1,""],Load:[27,5,1,""],LoadPortable:[27,5,1,""],Save:[27,4,1,""],SavePortable:[27,4,1,""],UpdateDistributions:[27,4,1,""]},"promod3.modelling":{AddModellingIssue:[35,1,1,""],AllAtomRelaxer:[32,3,1,""],BackboneRelaxer:[32,3,1,""],BuildFromRawModel:[35,1,1,""],BuildRawModel:[35,1,1,""],BuildSidechains:[35,1,1,""],CCD:[32,3,1,""],CCDCloser:[34,3,1,""],CTerminalCloser:[34,3,1,""],CheckFinalModel:[35,1,1,""],ClearGaps:[29,1,1,""],CloseGaps:[35,1,1,""],CloseLargeDeletions:[35,1,1,""],CloseSmallDeletions:[35,1,1,""],CloserBase:[34,3,1,""],CoolerBase:[34,3,1,""],CountEnclosedGaps:[29,1,1,""],CountEnclosedInsertions:[29,1,1,""],DeNovoCloser:[34,3,1,""],DirtyCCDCloser:[34,3,1,""],ExponentialCooler:[34,3,1,""],FillLoopsByDatabase:[35,1,1,""],FillLoopsByMonteCarlo:[35,1,1,""],FilterCandidates:[33,1,1,""],FilterCandidatesWithSC:[33,1,1,""],FindMotifs:[28,4,1,""],FraggerHandle:[28,3,1,""],FragmentSampler:[34,3,1,""],FullGapExtender:[29,3,1,""],GapExtender:[29,3,1,""],GenerateDeNovoTrajectories:[28,1,1,""],GetRingPunches:[33,1,1,""],GetRings:[33,1,1,""],HasRingPunches:[33,1,1,""],InsertLoop:[35,1,1,""],InsertLoopClearGaps:[29,1,1,""],IsAllAtomScoringSetUp:[35,1,1,""],IsBackboneScoringSetUp:[35,1,1,""],KIC:[32,3,1,""],KICCloser:[34,3,1,""],LinearScorer:[34,3,1,""],LoopCandidates:[31,3,1,""],MergeGaps:[29,1,1,""],MergeGapsByDistance:[35,1,1,""],MergeMHandle:[35,1,1,""],MinimizeModelEnergy:[35,1,1,""],ModelTermini:[35,1,1,""],ModellingHandle:[35,3,1,""],ModellingIssue:[35,3,1,""],MotifMatch:[28,3,1,""],MotifQuery:[28,3,1,""],NTerminalCloser:[34,3,1,""],PhiPsiSampler:[34,3,1,""],ReconstructSidechains:[36,1,1,""],RemoveTerminalGaps:[35,1,1,""],ReorderGaps:[35,1,1,""],ReportMolProbityScores:[33,1,1,""],RigidBlocks:[28,4,1,""],RunMolProbity:[33,1,1,""],RunMolProbityEntity:[33,1,1,""],SampleMonteCarlo:[34,1,1,""],SamplerBase:[34,3,1,""],ScoreContainer:[31,3,1,""],ScorerBase:[34,3,1,""],ScoringGapExtender:[29,3,1,""],ScoringWeights:[31,3,1,""],SetFraggerHandles:[35,1,1,""],SetPsipredPredictions:[35,1,1,""],SetSequenceProfiles:[35,1,1,""],SetupDefaultAllAtomScoring:[35,1,1,""],SetupDefaultBackboneScoring:[35,1,1,""],ShiftExtension:[29,3,1,""],SidechainReconstructionData:[36,3,1,""],SidechainReconstructor:[36,3,1,""],SoftSampler:[34,3,1,""],StructuralGap:[29,3,1,""],StructuralGapList:[29,3,1,""]},"promod3.modelling.AllAtomRelaxer":{GetSystemCreator:[32,4,1,""],Run:[32,4,1,""],UpdatePositions:[32,4,1,""]},"promod3.modelling.BackboneRelaxer":{AddCARestraint:[32,4,1,""],AddCBRestraint:[32,4,1,""],AddCRestraint:[32,4,1,""],AddNRestraint:[32,4,1,""],AddORestraint:[32,4,1,""],GetNonBondedCutoff:[32,4,1,""],Run:[32,4,1,""],SetNonBondedCutoff:[32,4,1,""]},"promod3.modelling.CCD":{CCD:[32,4,1,""],Close:[32,4,1,""]},"promod3.modelling.CCDCloser":{Close:[34,4,1,""]},"promod3.modelling.CTerminalCloser":{Close:[34,4,1,""]},"promod3.modelling.CloserBase":{Close:[34,4,1,""]},"promod3.modelling.CoolerBase":{GetTemperature:[34,4,1,""],Reset:[34,4,1,""]},"promod3.modelling.DeNovoCloser":{Close:[34,4,1,""]},"promod3.modelling.DirtyCCDCloser":{Close:[34,4,1,""]},"promod3.modelling.ExponentialCooler":{GetTemperature:[34,4,1,""],Reset:[34,4,1,""]},"promod3.modelling.FraggerHandle":{Get:[28,4,1,""],GetList:[28,4,1,""],LoadCached:[28,4,1,""],SaveCached:[28,4,1,""]},"promod3.modelling.FragmentSampler":{Initialize:[34,4,1,""],ProposeStep:[34,4,1,""]},"promod3.modelling.FullGapExtender":{Extend:[29,4,1,""]},"promod3.modelling.GapExtender":{Extend:[29,4,1,""]},"promod3.modelling.KIC":{Close:[32,4,1,""],KIC:[32,4,1,""]},"promod3.modelling.KICCloser":{Close:[34,4,1,""]},"promod3.modelling.LinearScorer":{GetScore:[34,4,1,""]},"promod3.modelling.LoopCandidates":{Add:[31,4,1,""],AddFragmentInfo:[31,4,1,""],ApplyCCD:[31,4,1,""],ApplyKIC:[31,4,1,""],CalculateAllAtomScores:[31,4,1,""],CalculateBackboneScores:[31,4,1,""],CalculateSequenceProfileScores:[31,4,1,""],CalculateStemRMSDs:[31,4,1,""],CalculateStructureProfileScores:[31,4,1,""],Extract:[31,4,1,""],FillFromDatabase:[31,5,1,""],FillFromMonteCarloSampler:[31,5,1,""],GetClusteredCandidates:[31,4,1,""],GetClusters:[31,4,1,""],GetFragmentInfo:[31,4,1,""],GetLargestCluster:[31,4,1,""],GetSequence:[31,4,1,""],HasFragmentInfos:[31,4,1,""],Remove:[31,4,1,""]},"promod3.modelling.ModellingHandle":{Copy:[35,4,1,""],all_atom_scorer:[35,6,1,""],all_atom_scorer_env:[35,6,1,""],all_atom_sidechain_env:[35,6,1,""],backbone_scorer:[35,6,1,""],backbone_scorer_env:[35,6,1,""],fragger_handles:[35,6,1,""],gaps:[35,6,1,""],model:[35,6,1,""],modelling_issues:[35,6,1,""],profiles:[35,6,1,""],psipred_predictions:[35,6,1,""],seqres:[35,6,1,""],sidechain_reconstructor:[35,6,1,""]},"promod3.modelling.ModellingIssue":{Severity:[35,3,1,""],is_major:[35,4,1,""],residue_list:[35,6,1,""],severity:[35,6,1,""],text:[35,6,1,""]},"promod3.modelling.ModellingIssue.Severity":{MAJOR:[35,6,1,""],MINOR:[35,6,1,""]},"promod3.modelling.MotifMatch":{alignment:[28,6,1,""],mat:[28,6,1,""],query_idx:[28,6,1,""]},"promod3.modelling.MotifQuery":{GetIdentifiers:[28,4,1,""],GetN:[28,4,1,""],GetPositions:[28,4,1,""],Load:[28,5,1,""],Save:[28,4,1,""]},"promod3.modelling.NTerminalCloser":{Close:[34,4,1,""]},"promod3.modelling.PhiPsiSampler":{Initialize:[34,4,1,""],ProposeStep:[34,4,1,""]},"promod3.modelling.SamplerBase":{Initialize:[34,4,1,""],ProposeStep:[34,4,1,""]},"promod3.modelling.ScoreContainer":{Contains:[31,4,1,""],Copy:[31,4,1,""],Extend:[31,4,1,""],Extract:[31,4,1,""],Get:[31,4,1,""],GetNumCandidates:[31,4,1,""],IsEmpty:[31,4,1,""],LinearCombine:[31,4,1,""],Set:[31,4,1,""]},"promod3.modelling.ScorerBase":{GetScore:[34,4,1,""]},"promod3.modelling.ScoringGapExtender":{Extend:[29,4,1,""]},"promod3.modelling.ScoringWeights":{GetAllAtomScoringKeys:[31,5,1,""],GetAllAtomWeights:[31,5,1,""],GetBackboneScoringKeys:[31,5,1,""],GetBackboneWeights:[31,5,1,""],GetSequenceProfileScoresKey:[31,5,1,""],GetStemRMSDsKey:[31,5,1,""],GetStructureProfileScoresKey:[31,5,1,""],GetWeights:[31,5,1,""],SetAllAtomScoringKeys:[31,5,1,""],SetBackboneScoringKeys:[31,5,1,""],SetSequenceProfileScoresKey:[31,5,1,""],SetStemRMSDsKey:[31,5,1,""],SetStructureProfileScoresKey:[31,5,1,""],SetWeights:[31,5,1,""]},"promod3.modelling.ShiftExtension":{Extend:[29,4,1,""]},"promod3.modelling.SidechainReconstructionData":{disulfid_bridges:[36,6,1,""],env_pos:[36,6,1,""],is_c_ter:[36,6,1,""],is_n_ter:[36,6,1,""],loop_lengths:[36,6,1,""],loop_start_indices:[36,6,1,""],rotamer_res_indices:[36,6,1,""]},"promod3.modelling.SidechainReconstructor":{AttachEnvironment:[36,4,1,""],Reconstruct:[36,4,1,""]},"promod3.modelling.SoftSampler":{Initialize:[34,4,1,""],ProposeStep:[34,4,1,""]},"promod3.modelling.StructuralGap":{Copy:[29,4,1,""],ExtendAtCTerm:[29,4,1,""],ExtendAtNTerm:[29,4,1,""],GetChain:[29,4,1,""],GetChainIndex:[29,4,1,""],GetChainName:[29,4,1,""],GetLength:[29,4,1,""],IsCTerminal:[29,4,1,""],IsNTerminal:[29,4,1,""],IsTerminal:[29,4,1,""],ShiftCTerminal:[29,4,1,""],after:[29,6,1,""],before:[29,6,1,""],full_seq:[29,6,1,""],length:[29,6,1,""],seq:[29,6,1,""]},"promod3.scoring":{AllAtomClashScorer:[39,3,1,""],AllAtomInteractionScorer:[39,3,1,""],AllAtomOverallScorer:[39,3,1,""],AllAtomPackingScorer:[39,3,1,""],AllAtomScorer:[39,3,1,""],BackboneOverallScorer:[41,3,1,""],BackboneScoreEnv:[40,3,1,""],BackboneScorer:[41,3,1,""],CBPackingScorer:[41,3,1,""],CBetaScorer:[41,3,1,""],ClashScorer:[41,3,1,""],ConstraintFunction:[40,3,1,""],ContactFunction:[40,3,1,""],DiscoContainer:[40,3,1,""],HBondScorer:[41,3,1,""],LoadAllAtomInteractionScorer:[39,1,1,""],LoadAllAtomPackingScorer:[39,1,1,""],LoadCBPackingScorer:[41,1,1,""],LoadCBetaScorer:[41,1,1,""],LoadDefaultAllAtomOverallScorer:[39,1,1,""],LoadDefaultBackboneOverallScorer:[41,1,1,""],LoadHBondScorer:[41,1,1,""],LoadReducedScorer:[41,1,1,""],LoadSSAgreementScorer:[41,1,1,""],LoadTorsionScorer:[41,1,1,""],PairwiseFunction:[40,3,1,""],PairwiseFunctionType:[40,3,1,""],PairwiseScorer:[41,3,1,""],ReducedScorer:[41,3,1,""],SCWRL3DisulfidScore:[43,4,1,""],SCWRL3PairwiseScore:[43,4,1,""],SSAgreementScorer:[41,3,1,""],TorsionScorer:[41,3,1,""]},"promod3.scoring.AllAtomClashScorer":{DoExternalScores:[39,4,1,""],DoInternalScores:[39,4,1,""],DoNormalize:[39,4,1,""]},"promod3.scoring.AllAtomInteractionScorer":{DoExternalScores:[39,4,1,""],DoInternalScores:[39,4,1,""],DoNormalize:[39,4,1,""],Load:[39,5,1,""],LoadPortable:[39,5,1,""],Save:[39,4,1,""],SavePortable:[39,4,1,""],SetEnergy:[39,4,1,""]},"promod3.scoring.AllAtomOverallScorer":{AttachEnvironment:[39,4,1,""],CalculateLinearCombination:[39,4,1,""],Contains:[39,4,1,""],Get:[39,4,1,""],__getitem__:[39,4,1,""],__setitem__:[39,4,1,""]},"promod3.scoring.AllAtomPackingScorer":{DoNormalize:[39,4,1,""],Load:[39,5,1,""],LoadPortable:[39,5,1,""],Save:[39,4,1,""],SavePortable:[39,4,1,""],SetEnergy:[39,4,1,""]},"promod3.scoring.AllAtomScorer":{AttachEnvironment:[39,4,1,""],CalculateScore:[39,4,1,""],CalculateScoreProfile:[39,4,1,""]},"promod3.scoring.BackboneOverallScorer":{AttachEnvironment:[41,4,1,""],Calculate:[41,4,1,""],CalculateLinearCombination:[41,4,1,""],Contains:[41,4,1,""],Get:[41,4,1,""],__getitem__:[41,4,1,""],__setitem__:[41,4,1,""]},"promod3.scoring.BackboneScoreEnv":{AddPairwiseFunction:[40,4,1,""],ApplyPairwiseFunction:[40,4,1,""],ClearEnvironment:[40,4,1,""],Copy:[40,4,1,""],GetSeqres:[40,4,1,""],Pop:[40,4,1,""],SetEnvironment:[40,4,1,""],SetInitialEnvironment:[40,4,1,""],SetPsipredPrediction:[40,4,1,""],Stash:[40,4,1,""]},"promod3.scoring.BackboneScorer":{AttachEnvironment:[41,4,1,""],CalculateScore:[41,4,1,""],CalculateScoreProfile:[41,4,1,""]},"promod3.scoring.CBPackingScorer":{DoNormalize:[41,4,1,""],Load:[41,5,1,""],LoadPortable:[41,5,1,""],Save:[41,4,1,""],SavePortable:[41,4,1,""],SetEnergy:[41,4,1,""]},"promod3.scoring.CBetaScorer":{DoExternalScores:[41,4,1,""],DoInternalScores:[41,4,1,""],DoNormalize:[41,4,1,""],Load:[41,5,1,""],LoadPortable:[41,5,1,""],Save:[41,4,1,""],SavePortable:[41,4,1,""],SetEnergy:[41,4,1,""]},"promod3.scoring.ClashScorer":{DoExternalScores:[41,4,1,""],DoInternalScores:[41,4,1,""],DoNormalize:[41,4,1,""]},"promod3.scoring.DiscoContainer":{AddStructuralInfo:[40,1,1,""],AttachConstraints:[40,1,1,""]},"promod3.scoring.HBondScorer":{DoExternalScores:[41,4,1,""],DoInternalScores:[41,4,1,""],DoNormalize:[41,4,1,""],Load:[41,5,1,""],LoadPortable:[41,5,1,""],Save:[41,4,1,""],SavePortable:[41,4,1,""],SetEnergy:[41,4,1,""]},"promod3.scoring.PairwiseFunction":{Score:[40,4,1,""]},"promod3.scoring.PairwiseScorer":{DoExternalScores:[41,4,1,""],DoInternalScores:[41,4,1,""],DoNormalize:[41,4,1,""]},"promod3.scoring.ReducedScorer":{DoExternalScores:[41,4,1,""],DoInternalScores:[41,4,1,""],DoNormalize:[41,4,1,""],Load:[41,5,1,""],LoadPortable:[41,5,1,""],Save:[41,4,1,""],SavePortable:[41,4,1,""],SetEnergy:[41,4,1,""]},"promod3.scoring.SSAgreementScorer":{DoNormalize:[41,4,1,""],Load:[41,5,1,""],LoadPortable:[41,5,1,""],Save:[41,4,1,""],SavePortable:[41,4,1,""],SetScore:[41,4,1,""]},"promod3.scoring.TorsionScorer":{DoNormalize:[41,4,1,""],Load:[41,5,1,""],LoadPortable:[41,5,1,""],Save:[41,4,1,""],SavePortable:[41,4,1,""],SetEnergy:[41,4,1,""]},"promod3.sidechain":{AAToRotID:[49,4,1,""],BBDepRotamerLib:[51,3,1,""],CreateSCWRL3Particle:[49,4,1,""],CreateSCWRL4Particle:[49,4,1,""],CreateVINAParticle:[49,4,1,""],DihedralConfiguration:[51,3,1,""],DisulfidScore:[44,4,1,""],FRMRotamer:[49,3,1,""],FRMRotamerGroup:[49,3,1,""],Frame:[45,3,1,""],FrameResidue:[45,3,1,""],GetDihedralConfiguration:[51,4,1,""],GetRotamericConfiguration:[51,4,1,""],LoadBBDepLib:[48,4,1,""],LoadLib:[48,4,1,""],PScoringFunction:[49,3,1,""],Particle:[49,3,1,""],RRMRotamer:[49,3,1,""],RRMRotamerGroup:[49,3,1,""],ReadDunbrackFile:[48,4,1,""],ResolveCysteins:[44,4,1,""],RotamerConstructor:[50,3,1,""],RotamerGraph:[46,3,1,""],RotamerID:[49,3,1,""],RotamerLib:[51,3,1,""],RotamerLibEntry:[51,3,1,""],SCWRL3RotamerConstructor:[50,3,1,""],SCWRL4ParticleType:[49,3,1,""],SCWRL4RotamerConstructor:[50,3,1,""],SubrotamerOptimizer:[52,4,1,""],TLCToRotID:[49,4,1,""],VINAParticleType:[49,3,1,""],VINARotamerConstructor:[50,3,1,""]},"promod3.sidechain.BBDepRotamerLib":{AddRotamer:[51,4,1,""],Load:[51,5,1,""],LoadPortable:[51,5,1,""],MakeStatic:[51,4,1,""],QueryLib:[51,4,1,""],Save:[51,4,1,""],SavePortable:[51,4,1,""],SetInterpolate:[51,4,1,""]},"promod3.sidechain.FRMRotamer":{AddFrameEnergy:[49,4,1,""],AddSubrotamerDefinition:[49,4,1,""],ApplyOnResidue:[49,4,1,""],GetActiveSubrotamer:[49,4,1,""],GetFrameEnergy:[49,4,1,""],GetInternalEnergy:[49,4,1,""],GetInternalEnergyPrefactor:[49,4,1,""],GetNumSubrotamers:[49,4,1,""],GetProbability:[49,4,1,""],GetSelfEnergy:[49,4,1,""],GetSubrotamerDefinition:[49,4,1,""],GetTemperature:[49,4,1,""],SetActiveSubrotamer:[49,4,1,""],SetFrameEnergy:[49,4,1,""],SetInternalEnergy:[49,4,1,""],SetInternalEnergyPrefactor:[49,4,1,""],SetProbability:[49,4,1,""],SetTemperature:[49,4,1,""],ToFrameResidue:[49,4,1,""],ToRRMRotamer:[49,4,1,""],__getitem__:[49,4,1,""],__len__:[49,4,1,""]},"promod3.sidechain.FRMRotamerGroup":{AddFrameEnergy:[49,4,1,""],ApplyOnResidue:[49,4,1,""],ApplySelfEnergyThresh:[49,4,1,""],Merge:[49,4,1,""],SetFrameEnergy:[49,4,1,""],__getitem__:[49,4,1,""],__len__:[49,4,1,""]},"promod3.sidechain.FrameResidue":{__getitem__:[45,4,1,""],__len__:[45,4,1,""]},"promod3.sidechain.Particle":{GetCollisionDistance:[49,4,1,""],GetName:[49,4,1,""],GetPos:[49,4,1,""],GetScoringFunction:[49,4,1,""],PairwiseScore:[49,4,1,""]},"promod3.sidechain.RRMRotamer":{AddFrameEnergy:[49,4,1,""],ApplyOnResidue:[49,4,1,""],GetFrameEnergy:[49,4,1,""],GetInternalEnergy:[49,4,1,""],GetInternalEnergyPrefactor:[49,4,1,""],GetProbability:[49,4,1,""],GetSelfEnergy:[49,4,1,""],SetFrameEnergy:[49,4,1,""],SetInternalEnergy:[49,4,1,""],SetInternalEnergyPrefactor:[49,4,1,""],SetProbability:[49,4,1,""],ToFrameResidue:[49,4,1,""],__getitem__:[49,4,1,""],__len__:[49,4,1,""]},"promod3.sidechain.RRMRotamerGroup":{AddFrameEnergy:[49,4,1,""],ApplyOnResidue:[49,4,1,""],ApplySelfEnergyThresh:[49,4,1,""],Merge:[49,4,1,""],SetFrameEnergy:[49,4,1,""],__getitem__:[49,4,1,""],__len__:[49,4,1,""]},"promod3.sidechain.RotamerConstructor":{AssignInternalEnergies:[50,4,1,""],ConstructBackboneFrameResidue:[50,4,1,""],ConstructRRMRotamerGroup:[50,4,1,""],ConstructSidechainFrameResidue:[50,4,1,""]},"promod3.sidechain.RotamerGraph":{CreateFromFRMList:[46,5,1,""],CreateFromRRMList:[46,5,1,""]},"promod3.sidechain.RotamerLib":{AddRotamer:[51,4,1,""],Load:[51,5,1,""],LoadPortable:[51,5,1,""],MakeStatic:[51,4,1,""],QueryLib:[51,4,1,""],Save:[51,4,1,""],SavePortable:[51,4,1,""]},"promod3.sidechain.RotamerLibEntry":{FromResidue:[51,5,1,""],IsSimilar:[51,4,1,""],SimilarDihedral:[51,4,1,""],chi1:[51,6,1,""],chi2:[51,6,1,""],chi3:[51,6,1,""],chi4:[51,6,1,""],probability:[51,6,1,""],sig1:[51,6,1,""],sig2:[51,6,1,""],sig3:[51,6,1,""],sig4:[51,6,1,""]},"promod3.sidechain.SCWRL3RotamerConstructor":{AssignInternalEnergies:[50,4,1,""]},"promod3.sidechain.SCWRL4RotamerConstructor":{AssignInternalEnergies:[50,4,1,""],ConstructFrameResidue:[50,4,1,""],ConstructFrameResidueHeuristic:[50,4,1,""]},"promod3.sidechain.VINARotamerConstructor":{AssignInternalEnergies:[50,4,1,""],ConstructFRMRotamerHeuristic:[50,4,1,""],ConstructFrameResidueHeuristic:[50,4,1,""],ConstructRRMRotamerHeuristic:[50,4,1,""]},"test_actions.ActionTestCase":{RunAction:[1,4,1,""],RunExitStatusTest:[1,4,1,""],pm_action:[1,6,1,""],pm_bin:[1,6,1,""],testPMExists:[1,4,1,""]},promod3:{SetCompoundsChemlib:[15,1,1,""],core:[12,2,0,"-"],loop:[23,2,0,"-"],modelling:[30,2,0,"-"],scoring:[42,2,0,"-"],sidechain:[47,2,0,"-"]},test_actions:{ActionTestCase:[1,3,1,""]}},objnames:{"0":["cmake","command","CMake command"],"1":["py","function","Python function"],"2":["py","module","Python module"],"3":["py","class","Python class"],"4":["py","method","Python method"],"5":["py","staticmethod","Python static method"],"6":["py","attribute","Python attribute"],"7":["std","cmdoption","program option"]},objtypes:{"0":"cmake:command","1":"py:function","2":"py:module","3":"py:class","4":"py:method","5":"py:staticmethod","6":"py:attribute","7":"std:cmdoption"},terms:{"10a":36,"1ake":28,"1aki":26,"1crn":[21,23,25,26,30,31,32,34,35,36,42,47],"1crn_cut":[30,31,35],"1crna":[26,31],"1e2q":28,"1ey":8,"1eye_rec":8,"1ko5":28,"20a":36,"2iyw":28,"2jlp":0,"30a":36,"3x3":9,"655a":26,"abstract":[34,50],"boolean":[11,13,35],"break":[3,4,8,16],"byte":[10,37],"case":[0,1,5,8,13,16,22,26,27,28,29,32,34,35,36,37,41,44,47,49,50,51],"catch":26,"char":[22,37],"class":[0,1,3,5,8,9,10,12,13,14,17,20,23,25,28,30,32,34,35,37,42,45,46,49,50,51],"const":37,"default":[0,1,2,3,4,5,8,10,13,14,15,18,21,22,25,26,27,28,30,31,32,34,36,39,41,47,49,50],"enum":[26,49],"export":[8,21],"final":[8,18,26,28,30,31,35,40,42,44,46,47,49],"float":[9,10,21,22,25,26,27,28,29,31,32,33,34,35,36,37,39,40,41,43,44,49,50,51,52],"function":[0,1,3,8,10,13,14,15,16,17,19,21,22,25,26,28,30,31,32,33,34,35,37,38,39,41,42,44,46,47,51,54],"import":[0,1,5,8,11,13,16,18,20,21,22,23,25,26,27,28,30,31,32,34,35,36,42,47,49,50],"int":[1,9,10,11,14,21,22,24,25,26,27,28,29,31,32,33,34,35,36,37,39,40,41,45,49,50,51,52],"long":35,"new":[1,3,7,8,13,16,17,21,22,25,26,29,31,32,34,35,36,37,38,47,49],"null":26,"public":[8,37,49],"return":[1,8,9,10,11,13,14,15,21,22,24,25,26,27,28,29,31,32,33,34,35,36,37,39,40,41,43,44,45,48,49,50,51],"s\u00f6ding":38,"short":[8,16,37],"static":[8,14,21,25,26,27,28,31,36,37,39,41,46,48,51],"super":47,"switch":[8,16,40],"throw":[1,37,47,48],"true":[1,11,13,14,21,22,23,25,26,28,29,31,32,33,34,35,36,37,39,41,44,47,50],"try":[1,8,18,29,35,37,51],"void":37,"while":[1,4,8,14,20,21,25,35,37,49],AND:[20,39,41,50],Added:3,Adding:[3,4],And:26,But:[1,4,8,16,35,50],CYS:[25,36,49,51],FOR:20,For:[1,2,5,8,12,13,16,18,20,21,25,26,28,31,34,35,36,37,40,41,44,49,50,51],HIS:[21,25,49,51],Has:4,IDs:49,ILE:[27,49],Into:[30,54],Its:[4,16,19],LYS:49,NOT:5,Not:20,One:[16,21,22,26,28,35,40,44,49,52],RMS:33,Res:[21,31,34,35,39,40,41],That:[0,1,4,8,11,13,16,26,28,41],Thats:52,The:[0,2,3,4,8,10,11,13,14,17,18,19,20,23,24,25,28,29,30,32,33,34,37,38,39,40,41,42,43,44,46,47,48,52,54],Then:[4,8,11,35],There:[1,4,5,8,10,13,16,25,26,27,34,39,41,48,49],These:[1,2,4,26,28,29,34,35],USE:20,Use:[0,4,25,26,27,35,39,41,51],Used:[31,35],Useful:[21,25,36],Uses:[31,35],Using:[4,17,25,54],Will:35,With:[8,30,35,51],__doc__:[11,13],__getitem__:[26,39,41,45,49],__init__:[1,8,13,16],__len__:[22,26,45,49],__main__:[1,8],__name__:[1,8],__setitem__:[26,39,41],_data:37,_name:4,_run:[1,4],_xml:4,a3m:[0,13],a3mtoprofil:[0,13],aa1:41,aa2:41,aa_aft:26,aa_befor:26,aa_clash:[35,39],aa_interact:[35,39],aa_pack:[35,39],aa_packing_scor:37,aa_relax_test:32,aa_res_idx:50,aa_scor:37,aa_with_rotam:47,aaa1:39,aaa2:39,aaa:[21,39],aaaaaaaa:22,aaaaggggggggggggggggggggaaaaaa:35,aafrequ:26,aafrequenciesstruct:26,aah:21,aatorotid:49,abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz:35,abil:16,abl:[2,8],abort:[8,10,32,35],about:[1,4,8,10,26,28,35],abov:[0,1,5,8,13,16,20,22,29,31,35,37,49,51],absolut:[4,5,34],academ:8,accept:[10,13,20,31,32,34,35,36,37],acceptor:[41,49,50],access:[4,5,8,21,22,26,27,31,35,39,40,41,49],accessor:26,accord:[0,5,10,16,21,22,25,26,27,28,29,31,34,35,36,39,44,47,49,50,51],accordingli:[26,40],account:[8,53],accumul:28,accur:28,accuraci:[0,28,35,38],achiev:[10,16],acid:[22,23,24,26,32,35,36,41,43,46,47,49,51],acknowledg:8,across:[1,51],act:[20,32],acta:38,action:[3,7,13,16,17,18,19,32,54],action_nam:16,action_unit_test:1,actiontest:1,actiontestcas:8,activ:[13,14,16,35,44,49,52],active_internal_energi:52,actual:[3,8,13,16,22,26,28,34,35,36,40,41,42,50,51],actual_posit:34,actual_step:34,adapt:[8,25,26,32,34,35,38],add:[1,2,4,6,8,10,13,18,20,21,26,27,28,31,32,35,36,39,40,41,44,47,49,50,53],add_argu:11,add_custom_target:8,add_doc_depend:4,add_doc_sourc:[4,8],add_flag:28,add_subdirectori:8,addalign:13,addcarestraint:32,addcbrestraint:32,addcoordin:26,addcrestraint:32,added:[0,4,8,10,13,21,22,26,28,29,31,33,35,36,39,40,41,49,50,51],addedg:10,addendum:20,addfrag:[13,26],addfragmentinfo:31,addframeenergi:49,addharmonicangl:25,addharmonicbond:25,addharmonicimprop:25,adding:[0,2,4,8,13,14,16,26,45],addit:[3,4,11,13,14,16,20,22,23,25,26,33,35,37],addition:[1,4,16,21,25,26,28],addljpair:25,addmodellingissu:35,addnod:10,addnrestraint:32,addorestraint:32,addpairwisefunct:40,addperiodicdihedr:25,addperiodicimprop:25,addprofil:13,addresidu:28,address:37,addrotam:51,addseqidparamet:26,addseqsimparamet:[23,26],addsequenceprofileparamet:26,addssagreeparamet:26,addstructur:13,addstructuralinfo:40,addstructureprofileparamet:26,addsubrotamerdefinit:49,addtorsionprobabilityparamet:26,addureybradleyangl:25,admir:8,advanc:28,advantag:25,advic:[8,16],advis:20,affect:[8,22,35,49,50],after:[1,2,4,5,8,10,13,16,21,22,25,26,27,29,31,32,34,35,37,40,51],after_c_stem:22,afterward:[8,26,35],again:[2,3,8,26,28,50],against:[20,28,39],agg:27,agglom:31,ago:1,agre:20,agreement:[13,20,26,28,41],agress:[2,10],aim:19,ala:[22,27,32,47,49,50,51],ala_cb:21,ala_h1:21,ala_h:21,alanin:[3,49],alg:[23,26,35],algorithm:[3,10,19,22,23,26,30,31,32,34,35,38,42,43,46,47,49,54],alia:29,align:[0,13,18,26,28,30,35,38,40],alignedcuboid:22,alignmenthandl:[28,35,40],alignmentlist:[0,13,35],all:[0,1,2,3,4,7,8,10,13,14,16,18,19,20,22,23,25,26,27,28,29,30,31,33,34,35,36,37,40,41,42,44,45,47,48,49,50,51,52,54],all_atom:[21,22,25,49],all_atom_env:21,all_atom_po:[21,50],all_atom_scor:35,all_atom_scorer_env:35,all_atom_sidechain_env:35,all_po:[21,25,32],all_scor:31,allatom:[32,35,36],allatomclashscor:[35,42],allatomenv:[23,32,35,36,39],allatomenvposit:[23,36],allatominteractionscor:[35,37,42],allatomoverallscor:[31,35,42],allatompackingscor:[35,37,42],allatomposit:[23,25,49,50],allatomrelax:[25,32],allatomscor:42,alleg:20,alloc:26,allow:[0,2,3,5,8,11,16,22,26,27,28,31,34,35,37,39,41,46,51],allow_multitempl:13,allow_prepro_ci:22,almost:[4,32,35],aln:[0,28,30,31,35,40],aln_sourc:13,alon:[11,20],along:[1,8,20],alongsid:20,alot:8,alpha:[9,22,41,47],alpha_bin:41,alreadi:[1,4,8,10,16,22,25,26,28,31,35,36,39,40,41,49,50,51,52],also:[1,2,4,8,11,16,20,26,27,28,31,32,33,34,35,36,44,45,46,50,51],alter:[31,34],altern:[4,5,8,31,34,35,48,50],alwai:[0,1,8,16,29,34,35,37],amber:[21,35],ambig:51,ambigu:[0,13,51],amino:[22,23,24,26,32,35,36,41,43,46,47,49,51],aminoacid:[21,22,25,27,41,49,51],aminoacidatom:[21,39],aminoacidhydrogen:21,aminoacidlookup:[21,25],among:31,amount:[3,18,28,51],analog:28,analysi:[32,33,38],analyt:[31,51],anchor:[9,21],ancient:15,angl:[0,9,21,22,23,25,26,31,32,33,34,35,41,47,50,51,54],angle_bin:41,angle_bin_s:26,angle_force_const:25,angle_four:9,angle_on:9,angle_thre:9,angle_two:9,angstrom:[26,32],ani:[0,1,4,5,8,10,13,14,15,18,20,21,22,25,26,27,28,29,31,33,34,35,36,37,39,40,41,45,47,49,50],anneal:[10,31,34],annot:20,announc:[1,8],anoth:[4,14,22,29,32,35,36,44],anymor:[3,10,28],anyon:[8,16],anyth:[0,2,5,8,13,14,15,28,31,32,36,39,41],anywai:8,anywher:16,apach:[3,20],apart:[1,31,35,36,39,41],api:[8,17],appear:20,append:[0,13,22,26,27,28,35,47],appendix:20,appli:[3,7,10,11,15,16,20,22,26,28,29,31,32,34,35,36,38,40,44,47,49,51],applic:[1,20,32,50],applyccd:31,applyde:10,applyedgedecomposit:10,applyk:31,applyonresidu:[47,49],applypairwisefunct:[40,41],applysd:25,applyselfenergythresh:[47,49],applytransform:[22,28],approach:[0,2,10,26,28,35,37,44,47,50],appropri:[10,20,27,35,37,50],approx:35,approxim:25,arbitrari:[3,21,26,44],arbitrarili:34,archiv:20,arendal:38,arg:[1,4,13,49],arg_ca:21,arg_hd3:21,arg_sorted_scor:31,arginin:49,argpars:13,argument:[0,1,2,4,11,12,34,40],argumentpars:13,argv:13,aris:20,around:[1,4,8,9,16,22,31,32,35,39,40,41,51],arrai:[0,8,37],arrang:28,artifici:26,ascend:29,ask:8,asn:[49,51],asn_c:21,asn_hb2:21,asp:[21,49,51],asp_ha:21,asp_o:21,asparagin:49,aspart:[49,51],ass:34,assembl:13,assemblepars:13,assert:20,assertequ:8,assess:[39,40],assign:[3,10,22,26,31,34,39,41,50,52],assigninternalenergi:50,assignsecstruct:35,associ:[20,26,29,45],assum:[1,4,5,8,20,25,26,32,35,37,40,41,44,50],assur:44,astar:3,astarsolv:10,atom:[3,8,9,22,23,25,26,28,30,31,33,35,36,40,41,42,44,45,49,50,51,54],atom_idx:[21,25],atom_nam:[21,25],atomhandl:50,atp:28,atp_at:28,atp_idx:28,atp_list:28,atp_r:28,atp_sel:28,atp_view:28,attach:[0,4,8,13,20,21,25,28,29,31,35,36,39,40,41,42],attach_view:13,attachconstraint:40,attachenviron:[31,32,34,36,39,41,42],attachview:[30,31,35],attent:[1,16],attribut:[8,13,20,26,35,36,51],author:20,authorship:20,autodock:[38,49],autom:[2,4],automat:[1,8,10,11,14,16,26,30,31,37,50,51],automatis:8,avaibl:50,avail:[1,2,3,5,8,15,16,18,20,25,26,31,34,35,40,47,49],availab:20,availabl:8,averag:[31,40,44],avg:26,avg_sampling_per_posit:28,avoid:[0,3,6,11,13,15,26,28,32,34],awai:[16,36],awar:[0,3,8,35,50],awesom:[1,8],axi:[9,22],back:[1,16,25,34],backbon:[0,3,9,18,21,22,26,27,28,29,30,31,34,35,36,38,42,45,47,48,49,50,54],backbone_scor:35,backbone_scorer_env:35,backbonelist:[18,21,23,26,28,29,31,32,34,35,40],backboneoverallscor:[28,31,34,35,42],backbonerelax:[32,35],backbonescor:[8,42],backbonescoreenv:[8,28,31,34,35,41,42],backbonescoreenvlisten:8,background:[2,36],backrub:[22,38],backward:[2,37],bad:[25,35],bare:26,base:[0,3,4,5,9,11,13,19,20,22,23,27,28,31,32,34,35,37,38,40,42,47,49,50,51],base_target:4,baseclass:47,basel:[8,53],bashrc:8,basi:[4,8,16,20,28,32,34,48],basic:[1,2,8,11,16,27,34,35,47,51],bb_dep_lib:37,bb_list:[18,21,22,23,26,29,31,32,34,35,40],bb_list_on:28,bb_list_two:28,bb_score:31,bbdeprotamerlib:[35,36,37,48,50,51],becaus:[8,16,21,28,35,40],becom:[10,51],been:[2,3,10,16,20,24,26,31,32,35,39,41,44,51],befor:[0,1,4,7,8,13,16,22,25,26,27,29,31,32,34,35,36,37,50],begin:[1,8,21,22,28,34,40],behalf:20,behav:[1,51],behaviour:[0,13,39,40,49,50,51],behind:8,being:[3,5,8,10,21,26,28,31,34,35,44,51],believ:53,bell:8,belong:[3,4,16,21,22,26,29,31,34,35,36,39,40,41,45,49,50],belov:26,below:[0,8,20,21,25,26,28,31,32,36,37,39,41,44,49],below_thre:26,benefici:20,besid:[2,4,10,13,26],best:[4,31,35,44],best_candid:31,beta:[9,22,33,41],beta_bin:41,better:[25,31,34,35,39,41],between:[1,3,10,13,22,25,26,28,29,31,32,34,35,36,37,39,40,41,42,43,44,45,49,50,51],beyond:13,biasini2013:[19,38],biasini:38,bienert:38,big:[25,37],bilinearli:51,bin:[1,8,16,18,26,27,28,39,41,51],bin_siz:[28,51],binari:[1,4,8,16,17,25,26,27,39,41,51],bind:[0,3,13,20,28],bins_per_dimens:27,bioinformat:38,biol:38,biolog:38,biologi:[19,38],biophi:38,biopolym:38,bit:[1,8,16,31,35],bitwis:26,blank:8,block:[3,30,45,47],blosum62:[13,23,26,28,40],boilerpl:20,bond:[0,3,9,22,25,26,32,33,35,36,38,41,47,49,50,51,54],bond_force_const:25,bond_length:[9,25],bool:[1,8,10,11,13,14,21,22,25,26,29,31,32,33,34,35,36,37,39,41,44,49,50,51],boost:[2,8,37],boost_librari:4,boost_root:2,bootstrap:[6,7],bore:34,both:[3,21,26,29,35,44,47,51],bound:[21,25,28,31,49,50],boundari:28,br_vinaparticl:49,bracket:20,bradlei:25,branch:[4,8,17],branchnam:16,brew:4,bridg:[24,25,32,35,36],briefli:16,bring:8,broken:1,bromin:49,broyden:35,bsd:20,bug:[3,8,16],build:[1,3,4,6,7,8,16,18,19,25,28,30,34,44,45,47,48,50,54],build_disulfid:36,builder:2,buildfromrawmodel:[30,35],buildrawmodel:[0,30,31,35],buildsidechain:35,buildup:[47,49],built:[4,5,25,26,40,45],bunch:[1,13,16],bundl:20,bytecod:1,c_coord:9,c_num:29,c_p_vinaparticl:[49,50],c_po:[9,22,41],c_stem:[9,23,26,29,31,32,34],c_stem_psi:34,c_str:37,c_ter:[32,50],c_vinaparticl:[49,50],ca_coord:9,ca_pairwise_funct:40,ca_po:[9,22],ca_pos_on:[43,44],ca_pos_two:[43,44],ca_posit:[28,44],ca_rmsd:[23,26],cach:[2,26,28],calcul:[8,22,26,27,28,31,32,34,39,40,41,42,44,45,46,47,49,50],calculateallatomscor:31,calculatebackbonescor:31,calculatelinearcombin:[31,34,39,41],calculatescor:[39,41,42],calculatescoreprofil:[39,41],calculatesequenceprofilescor:31,calculatestemrmsd:31,calculatestructureprofilescor:31,call:[1,2,4,8,11,13,14,15,16,21,25,26,27,29,31,34,35,36,37,39,40,41,49,50,51],callabl:[13,16],calpha:35,calul:27,came:8,can:[0,1,2,3,4,5,7,8,9,10,11,13,14,15,16,18,19,21,22,23,25,26,27,28,29,30,31,32,34,35,36,37,39,40,41,42,44,45,46,47,48,50,51,52,53],cand:35,candid:[3,30,33,34,35,54],cannot:[0,8,13,20,25,26,27,29,35,37,39,41,48,49,50,51],canutescu2003:[32,38,49],canutescu2003b:[38,39,41,43,44],canutescu:38,cap:10,capabl:[24,30,34],captur:1,carbon:[9,22,43,49,50],carbonyl:[49,50],care:[0,8,10,31,32,35,37,41],carlo:[0,3,10,28,31,34,35,46],carmsd:[22,23,26],carri:[8,11,20],cast:37,categori:4,caus:[16,20,33],caution:21,caviti:26,cb_in_sidechain:50,cb_pack:[28,35,41],cb_packing_scor:37,cb_pairwise_funct:40,cb_po:22,cb_pos_on:[43,44],cb_pos_two:[43,44],cb_posit:44,cbeta:[28,31,34,35,41,42],cbeta_scor:[37,42],cbetaenvlisten:8,cbetascor:[8,35,37,42],cbpackingscor:[8,35,37,42],ccd:[3,30,31,34],ccdcloser:34,center:[33,49],central:[22,27,41],centroid:31,certain:[1,2,4,8,10,16,26,27,28,29,35,37,39,40,41],certainli:1,ch1particl:49,ch2particl:49,ch3particl:49,ch_name:26,chain:[0,8,13,21,22,23,24,28,29,31,34,35,36,38,39,40,41],chain_idx:[8,21,31,34,35,36,39,40,41],chain_idx_list:36,chain_idx_on:40,chain_idx_two:40,chain_index:[26,34,39],chain_indic:40,chain_nam:[26,35],chainhandl:[21,22,29],chainid:0,chakravarti:38,chakravarty1999:[26,38],chanact:35,chanc:[8,10,35],chang:[1,3,4,5,8,10,16,20,21,27,28,29,32,34,35,36,39],change_frequ:[10,34],changelog:[8,19],chapter:[29,33],charact:[13,20,26],charg:[8,20,21,25,32,49,50],charmm:[21,25,35],check:[0,1,2,3,5,8,11,13,14,16,22,25,26,30,32,34,35,37,50,51,54],check_dupl:28,check_io:37,check_xml:8,checkbasetyp:37,checker:7,checkfinalmodel:35,checkmagicnumb:37,checkout:[8,16],checktypes:37,chem:38,chemdict_tool:5,chemdicttool:7,chemic:[5,15,21,35,39],chemistri:[35,38],chemlib:[5,7],chi1:51,chi2:51,chi3:51,chi4:51,chi:51,child:13,childclass:1,chlorin:49,chmod:8,choos:[20,31,34],chose:5,chosen:[0,13,34,35],cif:[0,5,7,13],ciiipgatcpgdyan:35,circumv:50,cis:[22,49,51],cl_vinaparticl:49,claim:20,clash:[3,28,31,32,34,35,39,41,42,44,47],clash_scor:42,clash_thresh:35,clashscor:[31,33,34,35,42],classic:48,claus:20,clean:[2,8,16],cleanli:37,clear:[14,21,22,31,35,40],clearenviron:[21,40],cleargap:29,clearpo:21,clearresidu:21,clip:13,clone:[8,18],close:[16,18,22,26,28,31,32,34,35,36,44],close_at:28,closed_posit:34,closegap:35,closelargedelet:35,closer:[3,26,30,31],closerbas:34,closesmalldelet:[32,35],closest:28,closur:[32,35,38],clustal:[0,13],cluster:[3,31,37,40],cluster_thresh:[28,40],clutter:[1,8,26],cmake:[8,14,15,17,18,20,54],cmake_support:[4,8,16,20],cmakecach:2,cmakelist:[1,2,4,8,16],coars:8,code:[0,1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,26,27,33,35,47,49,53],codetest:[4,8],coil:[24,28],collect:[11,14,21,28,40],collis:49,column:[26,28],combin:[20,25,26,27,28,31,34,35,38,39,41,44,49,51],come:[1,3,4,8,11,13,35,36,42,46,51],command:[0,1,7,8,11,12,16,18,54],commandlin:13,comment:[16,20],commerci:[8,20],commit:[8,16],common:[8,13,20,28],commonli:[8,18,30,31,41],commun:20,comp_lib:50,compar:[3,8,22,23,26,31,32,51],comparison:[35,38,51],compat:[2,3,16,25,37],compensatori:22,compil:[1,2,3,4,8,14,16,18,20,37,54],complain:1,complaint:16,complet:[14,16,22,25,32,34,35,36,51],complex:[8,16,36,44,49,52],compli:20,complianc:20,complib_dir_contain:[5,7],complib_dir_localhost:[5,7],compon:[5,7,10,15,26,33,41,50],compound:[3,15,50],compoundlib:[5,50],compress:[11,26],comput:[3,8,19,20,31,33,38,39,41],concaten:21,concept:8,concern:8,condit:[8,20,27],conf:[2,8],confid:[26,41],config:[4,8],config_head:4,configur:[2,8,10,16,20,31,47],conflict:16,conform:[26,32,34,38,46,51],connect:[4,5,10,16,21,25,26,31],connectivi:5,conop:[5,21,22,25,27,41,49,50],conquer:8,consecut:[26,27,41],consequenti:20,conserv:[18,29],consid:[0,4,8,10,13,14,16,21,22,26,27,28,31,32,34,35,36,39,40,41,44,47,49,50,51,53],consider_all_nod:10,consider_hydrogen:49,consider_ligand:36,consist:[3,8,20,21,25,28,29,31,32,34,35,36,37,40,44,49,51],conspicu:20,constant:[3,25,32,39,41,52],constitut:20,constraint:[13,26,32,34,40],constraintfunct:40,constru:20,construct:[0,3,9,21,22,26,28,29,34,37,42,43,45,49,50,51],constructatompo:9,constructbackboneframeresidu:[47,50],constructcbetapo:9,constructcterminaloxygen:9,constructetd:10,constructframeresidu:50,constructframeresidueheurist:50,constructfrmrotamergroup:[47,50],constructfrmrotamerheurist:50,constructor:[21,25,28,29,32,34,37,40,41,47,49,54],constructrrmrotamergroup:50,constructrrmrotamerheurist:50,constructsidechainframeresidu:50,contact:[40,53],contactfunct:40,contain:[0,1,2,3,4,5,7,8,9,11,13,16,19,20,21,22,24,25,26,27,28,31,34,35,36,39,40,41,42,44,45,47,49,50,51,54],content:[8,12,17,20,23,26,42,47,54],contigu:[25,36,37],continu:[1,21,29,32,47],contract:20,contrast:45,contribut:[4,10,16,17,19,20,54],contributor:20,contributori:20,control:[0,3,8,10,20,31,34,36,40,49,50,51,52],conveni:[1,8,18,28,31,34,35,42,49,50,51],convent:[1,49],converg:[28,31,32,34],convers:[20,37],convert:[4,5,22,25,26,27,35,37,39,41,51,52],convert_module_data:4,convertbasetyp:37,cooler:[3,30,31],coolerbas:34,cooling_factor:[10,34],coord:[26,31],coord_idx:26,coordin:[3,9,26,28,31,32,34,35,38,39,47],coordinfo:26,cope:16,copi:[2,3,4,8,16,18,20,21,22,28,29,31,34,35,40],copyright:20,copyright_cmak:20,core:[0,8,9,10,11,13,14,19,35,37,46,53,54],correct:[5,25,50],correctli:35,correspond:[0,10,16,21,22,25,26,27,28,31,37,49,50,51],corrupt:[21,40],could:[1,4,5,8,13,16,25,26,35],couldn:35,count:[14,28,29,34,35,39,41],countenclosedgap:29,countenclosedinsert:29,counter:[28,34],counterclaim:20,counterpart:[31,41,50],coupl:[1,8,16,35],cours:8,coutsia:38,coutsias2005:[32,38],coval:49,cover:[0,1,8,12,13,14,21,25,28,30,34,35],coverag:[0,3,35],cparticl:49,cpp:4,cpr:[49,51],cpu:[18,25,35],cpu_platform_support:25,crambin:[26,31,34],crash:47,creat:[2,4,5,7,8,9,10,13,16,17,21,22,23,26,27,28,30,34,35,39,41,47,48,49,50,51],createalign:[31,35],createemptyview:28,createentityfromview:[28,36,47],createfromfrmlist:[46,47],createfromrrmlist:46,createfullview:[30,31,35],createscwrl3particl:49,createscwrl4particl:49,createsequ:[26,31,35],createvinaparticl:49,creation:[25,32,49],creator:[25,32],criteria:36,criterion:[10,34],criterium:31,croak:16,cross:[20,28],crucial:8,crude:[0,35],cryst:38,cterminalclos:34,cumul:50,current:[2,4,5,8,10,14,16,21,22,25,26,31,34,35,37,40,41,42,49,50,52],custom:[8,26,34,35,36,37,48,49],customari:20,cutoff:[24,25,31,32,36,39,41],cycl:29,cyclic:[31,32,38],cyd:[49,51],cyh:[49,51],cys_hb3:21,cys_sg:21,cystein:[25,36,44,47,49],d_bin:41,dai:11,damag:20,dampen:25,danc:38,dare:4,dat:[26,37],data1:4,data2:4,data:[0,1,3,4,8,16,17,21,23,24,25,28,29,30,31,32,34,35,36,40,42,47,49,54],data_:37,data_gener:[3,37,48],data_to_stor:26,data_typ:26,databas:[0,9,23,24,28,31,35],databs:26,datatyp:26,date:[5,7,16,20],davi:38,davis2006:[22,38],dbg:8,dcmake_install_prefix:2,deactiv:10,dead:[10,38],deal:[35,36],debug:[8,10,21],decent:15,decid:[3,8,32,50],decis:27,declar:[4,8,16],decod:13,decompos:[3,10],decomposit:[10,28,46],decreas:34,dedic:[4,8,16],dee:10,deep:[22,35],def:[1,8,21,35],def_angl:21,defend:20,defin:[1,4,8,9,13,14,15,20,21,22,23,24,25,28,29,31,32,34,35,36,37,39,40,41,44,49,50,51],definem:8,definit:[8,20,26,27,31,41,49],degre:[22,26,27],delet:[0,2,8,22,35,49],deliber:20,deliv:[1,26,34,35],delta_scor:34,demand:35,demonstr:26,denovoclos:34,densiti:[22,32,38],dep1:4,dep2:4,dep:4,depend:[0,3,4,8,10,13,18,22,25,26,27,28,31,35,36,37,38,39,40,41,47,48,49,54],dependency1:4,dependency2:4,depends_on:4,depth:[26,38],deriv:[1,20,26,38,43,44],descend:35,descent:[31,32,38],describ:[0,4,7,8,10,11,17,20,21,22,26,28,29,30,32,33,37,39,41,44,47,48,49,50,51,54],descript:[0,5,13,16,20,34,35,51],descriptor:[26,28],descsrib:10,design:[1,3,19,20],desir:[9,18,25,26,31,32,34,35,39,40,41],despit:3,detail:[0,9,13,16,20,25,26,27,31,33,34,35,39,41,48,49,51],detect:[0,11,28,30,38,44],determin:[8,11,20,25,26,31,34,40,41],determinist:28,deuterium:[35,50],develop:[1,3,8,16,19,53],deviat:[22,33,34,51],devot:12,dict:[4,28,31,33,34,39,41],dictionari:[4,5,13,15,33,38],did:[8,26,31,35],didn:[7,28],didnt:5,diff:10,differ:[1,2,4,7,8,10,15,16,20,21,26,28,29,31,35,39,41,47,49,51],differenti:49,dihedr:[9,18,22,23,25,26,32,34,35,41,50,51,54],dihedral_angl:22,dihedral_bin:41,dihedral_idx:51,dihedral_pair:27,dihedralconfigur:51,dill:38,dimens:27,dimension:38,dir:[4,8,18],direct:[8,20,22,24,26,41,49,50],directli:[8,10,18,26,31,35,36,40,44,49,51,53],directori:[1,2,4,5,7,8,17,26,48],dirti:1,dirtyccdclos:34,disabl:[1,16],disable_doctest:2,disable_document:2,disable_linkcheck:2,discard:26,disclaim:20,discocontain:40,disconnect:3,discret:[28,39,41],discuss:[20,26],disk:[8,25,28,39,41,51],displai:[11,13,14,20],displaystyl:10,dissimilar:28,dist:41,dist_bin:41,dist_bin_s:26,distanc:[7,9,22,26,28,31,35,36,39,40,41,43,49],distance_thresh:28,distant:40,distinct:[21,28,36,51],distinguish:[3,23,25,37,39,41,51],distribut:[1,8,20,25,26,27,34,37,39,41,48,51],disulfid:[0,25,32,36,43,47,49,51,54],disulfid_bridg:[25,36],disulfid_score_thresh:36,disulfidscor:[36,44],dive:[16,35],diverg:8,divers:[26,28],dng:18,do_it:[39,41],doc:[2,4,8,16,20],dock:38,docker:[3,6,7,54],dockerfil:[5,7],docstr:13,doctest:[2,8,16],document:[1,2,7,16,20,26,53],doe:[1,3,4,8,9,10,11,13,15,16,20,22,26,30,31,34,35,37,40,48],doesn:[8,16,29,32,34,35,51],doesnt:51,doexternalscor:[39,41],doing:[1,5,16,28],dointernalscor:[39,41],domain:28,domin:10,don:[2,10,20,31,35,50],done:[1,8,11,13,16,23,25,27,31,34,35,37],donor:[41,49,50],donorm:[39,41],dont:[0,34],dont_write_bytecod:1,dost_root:2,doubl:28,doubt:13,down:[13,22,26,28,34],download:5,dpm3_runtime_profiling_level:14,draw:[22,27,34],drawback:8,drawn:[27,34],drawphigivenpsi:27,drawpsigivenphi:27,drop:[3,8],dssp:[3,26,41],dssp_state:41,due:[0,26,31,32,35,44],dump:[28,51],dunbrack:[3,38,48],duplic:6,dure:[1,3,21,32,35,37,45,51],dynam:51,dynamicspatialorgan:3,e_cut:10,e_thresh:[10,35],e_tresh:10,each:[0,7,8,10,13,14,20,21,22,25,26,27,28,29,31,32,33,34,35,36,37,39,41],earli:3,earlier:2,easi:8,easier:[1,8,20],easili:[4,16,35],echo:8,edg:[10,28],edge_idx:10,editor:1,editori:20,editxc:28,educ:8,effect:[4,8,10,25,36,44],effici:[21,28,34,38,42],egg:26,eigen3_include_dir:2,eigen:[2,3],either:[0,8,13,16,20,21,22,27,29,31,32,34,35,36,37,39,40,41,45,49,51],elabor:[8,20],electron:20,electrostat:[25,32],element:[1,10,21,22,26,28,31,33,37,40,44,50],elimin:[10,38],els:[8,16,36,37],emerg:1,empir:[43,44],emploi:16,empti:[8,11,13,22,26,28,31,35,49],enabl:[1,2,3,11,13,15,25,26],enable_mm:2,enable_ss:2,enclos:[20,29,35],encod:0,encount:[29,34],end:[0,1,2,4,8,10,11,13,16,20,21,22,26,28,29,31,35,38],end_resnum:35,end_transl:4,endian:37,energi:[0,3,8,10,18,25,32,34,35,36,39,41,44,45,46,47,49,50,52],energy_funct:[0,36],enforc:[0,3,21,31,34,35,36,39,40,41],engin:19,enough:[8,16,25,26,35,37],ensur:[2,8,18,31,35,37],ent:[0,13,21,25,26,33,36,42],ent_seq:42,enter:[35,45],entiti:[8,13,14,20,21,22,26,28,33,35,42,47],entityhandl:[13,21,22,26,33,35,36,40],entityview:[26,27,28,33,35],entri:[0,3,8,14,25,26,31,32,33,36,41,47,50],entrypoint:5,enumer:[8,10,21,25,26,28,31,35,40,47,49,50,51],env:[8,18,21,25,28,32,33,35,36,39,40,41,42],env_po:[32,36],env_structur:[21,40],environ:[1,3,8,21,28,29,31,32,34,35,36,37,39,41,42,54],epsilon:[10,25,36,52],equal:[28,34,39,41,44,50],equidist:51,equip:5,equival:[28,35,39,41],error:[0,11,13,14,26,32,35,37],especi:28,estim:[10,28,33,34,38,41,44,49,50,51],etc:[1,3,8,16,22,26,31,40],evalu:[4,8,32,35,39,40,41,46,47,49,51,54],evaluategromacsposrul:9,even:[2,8,10,20,22,25,29,35],event:[20,28],eventu:13,ever:[16,34],everi:[0,1,8,10,13,21,22,26,27,28,31,32,34,35,36,39,40,41,44,46,49,50,51,52],everyth:[1,2,3,7,8,12,13,16,32,35,36,37,39,54],evolut:38,evolv:42,exact:[0,7,10,13,37],exactli:[2,10,26,28,31,35,40,44,49],exampl:[0,1,2,3,8,11,13,16,17,18,20,21,23,25,26,27,28,30,32,34,35,36,42,47,48,49],example_reconstruct:47,exce:[39,41],exceed:[26,29],except:[0,3,13,20,26,29,34,35],exclud:[8,20,26],exclus:[1,8,20,25],execut:[0,2,3,4,7,8,16,18,20,26,33,35],exercis:20,exisit:17,exist:[0,1,2,4,8,10,11,13,14,16,21,22,26,31,32,33,34,35,37,39,40,41,48,49,51],exit:[0,1,11,13],exit_cod:1,exit_statu:11,exot:8,exp:[10,34],expect:[1,3,7,21,25,26,35,36,40,44,50,52],expens:26,experiment:35,explain:[1,8],explan:8,explicit:2,explicitli:20,explor:[5,38],exponenti:34,exponentialcool:34,expos:26,express:[20,44],ext:11,extend:[1,4,8,16,17,24,26,28,30,31,35,41,46],extendatcterm:29,extendatnterm:29,extended_search:[31,35],extens:[0,3,11,13,29,35],extension_penalti:29,extent:26,extern:[3,4,5,8,34],external_script:[3,8],extra:[2,3,8,16,22,37,48],extra_bin:26,extra_force_field:35,extract:[8,9,21,22,23,25,26,27,28,30,31,32,34,35,36,39,40,41,44,50],extractbackbon:21,extractloopposit:25,extractstatist:27,extrem:[22,28],eye:1,f_i:26,f_idx:40,f_vinaparticl:49,facilit:28,factor:[10,25,34,49],fail:[0,1,8,11,14,22,31,32,35],failur:[0,8,11,13,20,35,51],fall:32,fallback:51,fals:[1,8,10,11,13,22,25,26,29,31,34,35,36,44,47,49,50],fantast:8,far:[31,35],fast:[0,9,18,19,21,25,26,27,37,39,40,41,51],fasta:[0,13,30,35],faster:[10,25,26,32,33,40],fastest:[32,35],favor:33,favourit:1,featur:[16,17,23,28,31,35,37,38,53],fed:[4,16],fedora:8,fee:20,feed:[4,21,31],feel:[8,16],fellow:8,fetch:[13,16,18,28],few:[2,8,16,25,37,42],ff_aa:25,ff_aa_on:25,ff_aa_two:25,ff_ala:25,ff_arg:25,ff_asn:25,ff_asp:25,ff_cy:25,ff_cys2:25,ff_gln:25,ff_glu:25,ff_gly:25,ff_hisd:25,ff_hise:25,ff_ile:25,ff_leu:25,ff_lookup:[25,32,35],ff_lookup_charmm:37,ff_ly:25,ff_met:25,ff_phe:25,ff_pro:25,ff_ser:25,ff_thr:25,ff_trp:25,ff_tyr:25,ff_val:25,ff_xxx:25,field:[20,35,37,51],fifti:20,figur:16,file:[0,1,2,3,4,5,8,12,13,15,16,17,18,20,25,26,27,28,33,39,41,48,51],filecheck:16,fileexist:11,fileextens:11,filegzip:11,filenam:[0,8,11,13,25,26,27,28,37,39,41,48,51],filenotfound:33,fill:[4,8,13,16,23,26,29,30,31,33,35],fillfromdatabas:[31,35],fillfrommontecarlosampl:[31,35],fillloopsbydatabas:35,fillloopsbymontecarlo:35,filo:40,filtercandid:33,filtercandidateswithsc:33,final_model:[30,35],find:[3,4,7,8,10,16,21,23,28,31,32,35,44,46,48,51,53],findatom:28,findchain:42,findeigen3:20,finder:30,findmotif:28,findwithin:[8,28],fine:8,finish:52,fire:1,first:[0,1,3,8,10,13,16,18,21,22,25,26,27,28,29,31,32,34,35,36,39,40,41,43,44,47,49,50,51],fit:[16,20,22,26,30,31,34,54],fix:[3,8,11,16,25,32,36,37,39,41],fix_cterm:32,fix_nterm:32,fix_surrounding_hydrogen:25,flag1:4,flag2:4,flag:[0,2,4,8,10,11,13,22,26,28,35,36,49,50],flanking_rot_angle_on:22,flanking_rot_angle_two:22,fletch:[26,47],fletcher:35,flexibl:[0,19,36,44,47,49,50,52],flip:51,flood:26,fluorin:49,flush:[1,16],fold:38,folder:[2,4,8,16,18,37],follow:[0,1,2,4,5,7,8,10,11,16,18,20,22,23,25,26,28,29,30,31,35,36,37,39,41,47,49,50,51],fontsiz:27,forbidden:8,forc:[25,32,35],force_const:[25,32],forcefield:[23,32,35],forcefieldaminoacid:25,forcefieldbondinfo:25,forcefieldconnect:25,forcefieldharmonicangleinfo:25,forcefieldharmonicimproperinfo:25,forcefieldljpairinfo:25,forcefieldlookup:[25,32,35,37],forcefieldperiodicdihedralinfo:25,forcefieldureybradleyangleinfo:25,forg:16,forget:[1,8],form:[14,20,24,25,26,30,35,40,51],formal:[31,32,49,51],format:[0,5,13,20,26,48],formula:33,forward:16,found:[1,3,4,8,11,13,16,19,21,23,26,28,31,32,33,34,35,36,44,46,49,51],foundat:1,four:[9,34],frac:10,fraction:[26,28,32,34],frag_db:[23,26,31,37],frag_length:[23,26,28],frag_map:26,frag_po:[23,26,28],frag_residu:[23,26],frag_seq:[23,26],frag_siz:26,fragdb:[23,24,26,31,35,37],fragger:[13,23,26,28,34,35],fragger_handl:[13,35],fragger_map:26,fraggerhandl:[0,13,26,28,35],fraggermap:[26,28],fragment:[0,3,9,13,22,23,24,28,31,32,34,35,38,47],fragment_db:35,fragment_handl:28,fragment_info:26,fragment_length:[26,28],fragmentinfo:[26,31],fragments_per_posit:28,fragmentsampl:34,frame:[3,16,35,36,46,47,49,50,52,54],frame_energi:49,frame_residu:[45,47],frameresidu:[45,49,50],framework:[8,19,38],free:[0,8,20,35,49,51],frequenc:[26,34],frm:36,frmrotam:[44,49,50,52],frmrotamergroup:[44,46,49,50],from:[0,1,2,3,4,5,6,7,8,9,10,11,13,16,18,20,21,22,23,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,44,46,47,49,50,51],fromhhm:26,fromhoriz:26,fromresidu:51,front:[1,11,16],fstream:37,fudg:25,fulfil:[26,51],full:[0,1,3,8,10,21,25,26,28,29,30,31,34,35,36,47,49,50],full_queri:28,full_seq:[29,31],fullgapextend:[29,35],fulli:[8,16,21,22,26,29,30,36],function_typ:40,functions_specific_to_your_act:8,fundament:37,funni:[2,8],further:[10,28,29,35,36,37,50],furthermor:[37,50],futur:[3,25,26],gamma:[40,41,44],gamma_bin:41,gap:[0,3,9,18,24,25,30,31,33,35,36,54],gapextend:[29,35],gapfre:26,gapless:[0,13],gather:[4,12,16,26,28,47,49,51],gauc:51,gauch:51,gauche_minu:51,gauche_plu:51,gaussian1:49,gaussian2:49,gciiipgatcpgdyan:[31,35],gener:[0,1,2,3,5,8,10,13,14,16,18,19,20,23,24,26,27,28,30,31,32,33,35,36,37,39,40,41,48,49,50,51,54],generatedenovotrajectori:28,generatestructureprofil:26,geom:[21,22,25,26,28,32,35,44,49],geometr:[3,9,23,28,31,38,44],geometri:[12,23,26,31,54],geoom:43,get:[0,1,2,8,16,19,21,22,23,25,26,28,30,31,32,33,34,35,36,37,39,40,41,44,47,48,51,52,54],getaa:[21,22,25],getaaa:21,getaah:21,getactivesubrotam:49,getallatomposit:[21,32,36],getallatomscoringkei:31,getallatomweight:31,getanchoratomindex:21,getangl:47,getangularbins:26,getatomcount:8,getatomnam:21,getatomnameamb:21,getatomnamecharmm:21,getaveragescor:31,getbackbonelist:[23,26],getbackbonescoringkei:31,getbackboneweight:31,getbins:27,getbinsperdimens:27,getbound:22,getc:22,getca:22,getcb:22,getchain:29,getchainindex:29,getchainnam:29,getchains:8,getcharg:25,getclust:31,getclusteredcandid:31,getcollisiondist:49,getconfid:26,getcoordidx:26,getcoordinfo:26,getcpuplatformsupport:25,getcreationd:5,getdefault:[25,32,35],getdefaultlib:5,getdihedralangl:26,getdihedralconfigur:51,getdistbins:26,getdisulfidbridg:25,getdisulfidconnect:25,getdsspstat:26,getel:21,getenviron:21,getenvsetdata:8,getepsilon:25,getfirstindex:21,getforcefieldaminoacid:25,getfragmentinfo:[26,31],getframeenergi:49,getfudgelj:25,getfudgeqq:25,geth1index:21,geth2index:21,geth3index:21,getheavyindex:25,gethistogramindex:[22,27],gethistogramindic:27,gethnindex:21,gethydrogenindex:[21,25],getidentifi:28,getindex:[21,25],getinternalconnect:25,getinternalenergi:49,getinternalenergyprefactor:49,getlargestclust:31,getlastindex:21,getlength:29,getlist:28,getlooplength:25,getloopstartindic:25,getmass:25,getmaxnumatom:21,getmaxnumhydrogen:21,getn:[22,28],getnam:[47,49],getnonbondedcutoff:32,getnum:31,getnumatom:[21,25],getnumb:31,getnumcandid:31,getnumchain:8,getnumcoord:26,getnumfrag:26,getnumhydrogen:21,getnumloopresidu:25,getnumresidu:[8,21,25],getnumstempair:26,getnumsubrotam:49,geto:22,getolc:[21,22],getomegators:[21,22],getoxtindex:25,getpeptideboundconnect:25,getphiprobabilitygivenpsi:27,getphitors:[21,22,47],getpo:[21,28,49],getposit:28,getpotentialenergi:25,getpredict:26,getprob:[27,49],getpsiprobabilitygivenphi:27,getpsitors:[21,22,47],getr:33,getresidu:28,getresiduedepth:26,getringpunch:33,getrotamericconfigur:51,getscor:[26,34],getscoringfunct:49,getselfenergi:49,getseqr:[21,40],getsequ:[21,22,26,31],getsequenceprofil:26,getsequenceprofilescoreskei:31,getsigma:25,getsimul:25,getsolventaccessibilitit:26,getstemrmsdskei:31,getstructureprofil:26,getstructureprofilescoreskei:31,getsubdb:26,getsubrotamerdefinit:49,getsystemcr:32,gettemperatur:[34,49],gettransform:22,getversionnumb:37,getweight:[28,31],ggg:35,gggaggg:35,gggggggggggggggggggg:35,git:[1,4,8,17,18,19,53],gitignor:8,gitlab:[5,53],give:[4,8,16,20,23,28,31,34,35,49],given:[0,1,3,4,8,9,10,11,13,14,21,22,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,44,47,49,50,51],glass:38,gln:[49,51],gln_ne2:21,global:[15,26,31,35,37],glu:[21,49,51],glu_oe1:21,glutam:49,glutamin:49,gly:[35,36,47,49,50],gly_n:21,glycin:[3,22,26,32,36,49],goal:[1,10,28,30],goe:[2,8,14,16,35,51],going:[8,9],goldfarb:35,goldstein1994:[10,38],goldstein:[10,38],good:[4,8,18,25,26,35],goodwil:20,got:2,govern:20,grain:8,grant:20,graph:[3,12,38,47,54],graph_initial_epsilon:36,graph_intial_epsilon:36,graph_max_complex:36,graphminim:[10,46],greatest:5,grep:2,grid:26,gromac:9,grossli:20,group:[4,14,24,26,27,28,41,44,45,46,47,50,52],group_definit:[27,41],group_idx:41,guarante:[26,28,31,34,36,37],gui:[8,27],guid:32,guidelin:[8,37],gzip:[0,5,11,13],haa:38,hand:[0,2,4,13],handl:[3,8,9,13,19,22,28,30,36,40,44,54],handler:28,happen:[1,8,25,28,29,34,35,49],hard:[43,49],hardwar:18,harmless:20,harmon:[25,32],harmonic_angl:25,harmonic_bond:25,harmonic_improp:25,has:[0,1,2,3,4,5,8,10,11,13,16,20,21,22,23,24,25,26,29,31,32,34,35,36,39,40,41,44,46,49,50,52],hasattr:35,hasdata:26,hasfraglength:26,hasfragmentinfo:31,hash:[3,26,28],hash_thresh:28,hash_tresh:28,hasringpunch:33,have:[0,2,4,5,7,8,10,13,14,16,18,20,21,22,25,26,28,29,31,33,34,35,36,37,39,40,41,44,46,47,50,51,52],hbond:[28,35,41,49,50],hbond_scor:37,hbondscor:[35,37,42],headach:8,header1:4,header2:4,header3:4,header4:4,header:[0,2,4,16,17],header_output_dir:4,headlin:8,heavi:[21,25,36,39,49,50],heavili:[26,47],helic:[22,24,25,28,35,41],helix:[18,22,34,47],hell:28,hello:37,hello_world:8,hellyeah:18,help:[0,1,2,4,7,8,13,16,18,25,41],helpactiontest:1,helper:[4,12,16,17,21,25,31,36,37,54],hen:26,henc:[8,14,21,26,37],here:[0,1,2,4,8,11,13,14,16,18,19,21,22,25,26,27,28,30,31,32,34,35,37,39,41,44,48,51],herebi:20,herein:20,het:35,heurist:[3,35,50],heuristicprocessor:21,hg_po:49,hgfhvhefgdntngcmssgphfnpygkehgapvdenrhlg:0,hhblit:[0,13],hhm:[0,13,26,31],hhsearch:26,hide:[8,16],hierarch:[31,40],hierarchi:15,high:[3,8,16,28,30,35],high_resolut:22,higher:[31,40,41],highest:15,highli:[2,8],hint:13,histidin:[25,49],histogram:[27,34],histori:16,hit:[1,10,16,27,32],hmm:38,hold:[20,28],home:[4,5],homo:[0,13],homolog:[0,12,18,19,35,38],homologu:26,honor:35,honour:35,hook:[8,17],horiz:26,horribl:50,host:[4,7,8,16],hotfix:16,how:[1,16,17,20,26,31,34,35,38,40,48,54],howev:[5,20,26],hparticl:49,hpp:37,hsd:[49,51],hse:[49,51],html:[2,8,16],http:[8,18,19,20,53],hybrid:51,hydrogen:[3,21,22,25,35,38,41,49,50],hydrophob:49,hyphen:1,i_loop:[25,36],i_vinaparticl:49,id_:37,idea:[1,8,21,23,25,26,35,40,49,52],ideal:[22,32,52],ident:[3,26,27,28,41,51],identif:20,identifi:[0,3,13,14,20,26,28,31,35,36,39,41,49,50,51],ids:47,idx:[10,21,22,25,26,28,32,40,49],idx_ca_res_37:21,idxhandl:8,iff:[26,29,33],ifstream:37,ignor:[0,25,28,32,35],iii:20,illustr:26,imag:7,image_nam:5,imagehandl:22,imagin:8,imaginari:1,img:[7,22],immedi:[1,8,15,16],impact:[0,25,26],implement:[3,16,19,26,28,29,32,34,35,37,43,44,46,47,49,50,53],impli:20,implicit:2,improp:25,improv:[3,20,25,35,38,44],in_dir:4,in_fil:8,in_path:4,in_stream:37,in_stream_:37,inabl:20,inaccur:25,inaccurate_pot_energi:25,inact:52,inactive_internal_energi:52,incident:20,incl:[25,26,35],includ:[2,3,7,8,11,16,18,20,21,25,26,28,29,31,33,35,37,39,41,47],include_atom:28,include_ligand:35,inclus:[20,35],incompat:[31,32],incomplet:[35,48],inconsist:[10,13,21,22,25,26,29,31,32,36,40,49],inconveni:16,incorpor:20,increas:[0,10,28,31,32,35,50],increment:28,incur:20,indemn:20,indemnifi:20,independ:[0,3,25,36,48],index:[8,10,21,22,25,26,27,28,29,31,32,33,34,35,39,40,41,45,49,50,51],index_four:25,index_on:25,index_thre:25,index_two:25,indic:[8,10,11,13,20,21,22,25,26,27,28,29,31,32,35,36,40,44,47,49],indirect:20,individu:[7,20,39,41],inf:[10,32,35],infin:32,infinit:32,influenc:[13,28,40,50],info:[26,31,35,40],inform:[0,5,7,8,13,16,20,22,23,26,28,29,31,34,35,38,40,41,42,53],infring:20,inherit:[1,39,40,41,46],init:16,init_bb_list:34,init_frag:34,initi:[3,10,21,22,26,28,31,32,34,35,36,39,40,41,46,49,50,51],initial_bb:31,initial_epsilon:[10,52],initialis:1,inlin:37,inner:14,input:[0,1,3,13,16,18,25,26,27,28,32,34,35,36,39,40,41,44,48,52],insert:[21,22,29,31,34,35,52],insertinto:[21,22,31],insertloop:[29,35],insertloopcleargap:[29,31,35],insid:[1,4],insight:16,instal:[8,16,37,54],instanc:[3,8,13,24,25,37,53],instead:[0,1,2,3,4,8,11,26,28,29,31,34,35,50],institut:20,instruct:2,int16_t:37,int32_t:37,int_32_t:37,integ:[8,13,21,40],integr:[4,8,38],intend:[1,8,34,49],intent:26,intention:20,interact:[3,8,25,32,39,40,41,43,44,45,49],intercept:[39,41],interest:[1,10,25,26,34,37,49,51],interfac:[0,3,4,8,20,50],intermedi:8,intern:[0,1,3,4,5,8,16,21,24,25,26,27,28,31,32,34,35,36,37,38,39,40,41,46,49,50,52],internal_e_prefac:50,internal_e_prefactor:49,internal_energi:49,internet:8,interpl:51,interpol:[40,51],interpret:[8,11],intervent:8,intrins:2,introduc:[1,3,4,8,16,32,35],introduct:[12,17],invalid:[8,21,25,26,29,32,35,36,39,40,41,45,49,51],invalid_vinaparticl:49,invok:[2,4,8,15,16],involv:[16,30,44,49],iodin:49,ios:37,iostream:37,ipython:7,irrevoc:20,is_c_ter:[25,36],is_cter:25,is_hbond_acceptor:50,is_hbond_donor:50,is_major:35,is_n_ter:[25,36],is_nter:25,isallatomscoringsetup:[31,35],isallset:21,isanyset:21,isbackbonescoringsetup:35,isctermin:29,isempti:31,isen:14,isntermin:29,isoleucin:49,isset:21,issimilar:51,issourc:37,issu:[3,12,16,17,20,32,35,37],istermin:29,isvalid:47,item:[1,8,16,21,22,25,26,35,40],iter:[10,26,27,28,31,32,34,35,49],its:[0,1,2,4,5,8,11,16,20,25,26,30,31,33,34,35,41,48,49,50,51],itself:[3,4,8,16,26,34,36,37,39,41],januari:20,job:[8,26,34,35],johner:38,join:[8,21,23,26,31,32,34,36],jone:[38,49],jones1999:[26,38],journal:38,json:[0,13],jupyt:7,just:[1,2,8,13,15,16,23,25,26,28,29,31,35,50],kabsch1983:[26,38],kabsch:38,keep:[0,1,2,4,5,8,13,16,28,30,35,47],keep_non_converg:31,keep_sidechain:[8,36],kei:[0,13,26,28,31,34,35,39,40,41],kept:[8,16,25,31,32,36,45,49],kernel:38,keyword:27,kic:[30,31,34],kicclos:34,kick:13,kill_electrostat:25,kind:[1,8,20],kinemat:32,know:[2,51],knowledg:51,known:[4,11,21,40,50],krivov2009:[10,38,47,49],krivov:38,kwarg:1,l_e:49,lab:48,label:[16,25],lack:35,languag:[4,20],larg:[5,27,32,35],larger:[10,14,22,26,28,35,50],largest:[28,31,44],last:[1,2,3,4,21,22,25,29,31,32,34,35,40,41,48],last_psi:22,later:[1,8,10,21,28,47],latest:[2,5,8],latter:[0,5,16,35],launcher:[4,8],law:20,lawsuit:20,layer:44,layout:[26,37],lbfg:35,lddt:7,leach1998:[10,38],leach:38,lead:[0,8,9,11,22,25,31,32,36,39,41,48],learn:28,least:[0,2,4,8,10,16,20,22,25,26,35,39,41,44],leav:1,left:[10,11,32],legal:[8,20],lemon:38,len:[22,23,25,26,28,31,35,36,41,47],length:[0,9,10,21,24,25,26,27,28,29,31,32,34,35,36,37,39,40,44],length_dep_weight:35,length_depend:31,lennard:49,less:[0,10,16,22,25,26,27,31,35,39,41,50,51],let:[1,8,22,26,28,31,47],letter:[3,5,21,22,26,27,34,49],leu:49,leu_h:21,leucin:49,level:[2,3,8,14,15,16,30,35],lexicograph:35,liabil:20,liabl:20,lib64:8,lib:[5,7,37],libexec:[4,8],libpromod3_nam:4,librari:[0,3,4,8,15,36,38,47,50,54],library1:4,library2:4,licenc:48,licens:[3,17,19],licensor:20,lies:26,life:16,ligand:[3,35,36,49,50],like:[0,1,4,8,16,35,37,48],limit:[0,3,20,26,32,35],line:[0,1,7,8,9,12,16,27,41,54],linear:[26,28,31,34,39,40,41],linear_weight:[31,34,39,41],linearcombin:31,linearscor:34,link:[0,2,4,8,16,20,21,25,26,28,34,36,39,40,41,42],link_cmd:4,linkcheck:[2,8,16],linker:[4,35],linker_length:35,list:[0,1,2,3,4,7,8,9,10,11,13,20,21,22,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,44,45,46,47,49,50,51,52],listen:8,literalinclud:8,litig:20,littl:[4,8,16,37],live:[4,8],lj_pair:25,load:[1,8,13,15,21,23,25,26,27,28,31,32,35,36,37,39,41,42,47,51,54],loadalign:[30,35],loadallatominteractionscor:39,loadallatompackingscor:39,loadamberforcefield:35,loadbb:26,loadbbdeplib:[0,36,47,48],loadcach:28,loadcbetascor:[31,34,41,42],loadcbpackingscor:41,loadcharmm:25,loadcharmmforcefield:35,loaddefaultallatomoverallscor:39,loaddefaultbackboneoverallscor:41,loadent:[0,13],loadfragdb:[23,24,31,35],loadhbondscor:41,loadlib:[0,36,48],loadpdb:[8,21,23,25,26,28,30,31,32,34,35,36,42,47],loadport:[25,26,27,37,39,41,51],loadreducedscor:41,loadsequenceprofil:[13,26,31],loadssagreementscor:41,loadstructuredb:[23,24,26,31,35],loadtorsionsampl:[22,24,27,34],loadtorsionsamplercoil:[24,31,35],loadtorsionsamplerextend:24,loadtorsionsamplerhel:24,loadtorsionscor:41,local:[2,5,7,25,26,27,39,41,51],localhost:7,locat:[2,3,4,5,10,22,24,26,28,29,37,39,41,49],log:[11,16,33,35,49,50],logic:0,loginfo:33,lone:49,lone_pair:49,longest:26,look:[5,8,11,16,22,26,36,40,50],lookup:[9,21,23,28,42],looooooong:10,loop:[0,3,8,13,18,19,21,24,26,27,28,29,30,33,35,36,37,38,39,40,41,50,54],loop_candid:31,loop_length:[25,26,31,36],loop_main:8,loop_po:25,loop_seq:31,loop_start_indic:[25,36],loopcandid:[28,30,33],loss:[16,20],lossi:26,lost:[1,16],lot:[1,8,13,16],low:[1,8,10,50],lower:[31,34,35,39,41],lowest:[31,34,49],lowest_energy_conform:34,lying:40,lysin:49,m_idx:28,m_vinaparticl:[49,50],machin:[25,26,27,37,39,41,51],macro:[4,8],macromolecul:38,made:[4,5,20,51],magic:[8,37],mai:[0,1,2,4,8,11,13,16,20,21,25,29,32,35],mail:20,main:[8,35,37,51],mainli:[21,34,49],maintain:[8,16],mainten:17,maintin:34,major:[16,35],make:[3,4,7,8,11,13,16,18,20,21,22,26,37,40,48,54],makefil:[2,8],makestat:51,malfunct:20,malici:16,man:[2,8],manag:[4,8,20,42],mani:[11,13,26,28,32,33,35,50],manipul:22,manner:[8,10,34],manual:[1,2,5,8,9,16,26,31,34,35,37,49],map:[0,13,21,22,26,28,33,36],mariani:38,mark:[4,20,50],mass:25,massiv:28,master:[8,16],mat3:9,mat4:[9,22,28,35],mat:28,match:[0,4,13,22,25,26,27,28,31,32,34,35,40,41],materi:[1,8],math:33,mathemat:[31,32],matplotlib:27,matric:38,matrix:[9,26,28],matter:[4,7,28,53],max:[9,10,21,29,33,35,36,41,51,52],max_alpha:41,max_beta:41,max_complex:[10,52],max_count:[39,41],max_d:41,max_dev:34,max_dist:[31,40],max_extens:35,max_gamma:41,max_iter:[28,31,35],max_iter_lbfg:35,max_iter_sd:35,max_length:29,max_loops_to_search:35,max_n:10,max_num_all_atom:35,max_p:50,max_prob:49,max_res_extens:35,max_step:32,max_to_show:14,max_triangle_edge_length:28,max_visited_nod:10,maxfraglength:26,maxim:[10,26,28,31,32,34,35,38,40,41],maximum:[10,26,31,32,34,49,50],mc_closer:34,mc_cooler:34,mc_num_loop:35,mc_sampler:34,mc_scorer:34,mc_step:[10,35],mcsolv:10,mean:[4,8,13,16,20,21,25,28,32,35,36],meaning:[26,31],meant:[18,21,26,33,35,50],measur:28,mechan:[18,20,31,32,34,35,40],meddl:[7,35],media:20,medium:20,meet:20,member:[8,13,31,35],memori:[10,26,35,37],mention:[1,2],merchant:20,mere:20,merg:[16,25,28,29,31,35,36,40,49],merge_dist:35,mergegap:29,mergegapsbydist:35,mergemhandl:35,mess:[8,16,40],messag:[12,13,37],messi:16,met:49,metal:49,methionin:[35,49],method:[0,1,10,13,21,25,26,27,32,35,36,37,50],metric:40,metropoli:[10,31,34],mhandl:[29,30,31,35],middl:16,might:[10,25,26,28,31,32,34,40,50,52],min:[31,41],min_alpha:41,min_beta:41,min_candid:31,min_d:41,min_dist:40,min_gamma:41,min_loops_requir:35,min_scor:31,min_triangle_edge_length:28,mincadist:22,mind:[1,8],minim:[3,12,18,22,25,26,31,32,35,39,40,41,46,47,54],minimizemodelenergi:35,minimum:[22,26,28,44],minor:[3,25,35],mirror:37,miser:14,mismatch:[21,35,40],miss:[0,11,13,25,35],mix:[0,4],mkdir:[2,8],mm_sy:[25,32],mm_sys_output:25,mm_system_cr:32,mmcif:[5,11],mmsystemcr:[25,32],mod:8,mode:[1,51],model:[1,3,7,8,12,13,14,19,21,25,26,29,32,34,36,40,41,42,45,46,49,50,52,53,54],model_termini:35,modelling_issu:35,modellinghandl:[3,29,31,35],modellingissu:35,modeltermini:35,modif:[20,35],modifi:[8,16,20,22,31,35],modified_crambin:31,modul:[1,3,11,12,15,16,17,18,23,24,30,37,44,47,49],modular:19,module_data:4,mol:[8,9,18,21,22,23,26,27,28,29,31,32,34,35,36,38,40,47,49,50,51,54],molck:7,molecular:[7,18,32,35],molprob:30,molprobity_bin:33,molprobity_execut:33,moment:8,monitor:1,monolith:8,mont:[0,3,10,28,31,34,35,46],montecarlo:3,mood:8,more:[1,2,4,7,8,10,13,14,16,20,28,35,44,49,53],most:[0,3,4,5,8,22,25,26,27,28,31,32,35,39,41,48,50],mostli:[4,16],motif:[3,30,38],motiffind:28,motifmatch:28,motifqueri:28,motion:[22,38],mount:[5,7],movabl:25,move:[2,3,8,16,25,31,32,34,35,37],movement:28,mpscore:33,msg:11,msgerrorandexit:11,msm:3,msse4:2,much:[10,26,35],multi:18,multipl:[0,2,3,4,8,13,14,18,25,28,31,35,36,39,41],multipli:[10,34],multitempl:13,multithread:38,must:[0,2,4,8,10,13,14,16,20,22,25,26,28,29,31,32,33,34,35,36,37,39,40,41,44,51],mutlipl:13,my_db_on:26,my_db_two:26,my_script:7,myclass:37,myclassptr:37,mytrg:0,n_a_vinaparticl:49,n_ad_vinaparticl:49,n_coord:9,n_d_vinaparticl:49,n_i:10,n_j:10,n_num:29,n_po:[9,22,41],n_stem:[9,23,26,29,31,32,34],n_stem_phi:34,n_ter:[32,50],n_vinaparticl:49,naivesolv:10,name:[0,1,3,4,5,7,8,11,13,14,20,21,25,26,27,29,31,33,35,44,48,49,51],name_pymod:4,namespac:[13,37],nan:[32,35,51],nativ:37,necessari:[8,22,34,40],necessarili:[20,52],need:[1,2,3,4,5,8,11,13,15,16,22,25,26,27,28,31,32,35,36,37,39,40,41,47,50],need_config_head:4,neg:[1,10,25,32,40],negelect:[0,35],neglect:[28,32,45,49,50],neglect_size_on:31,neglig:20,neighbor:[8,21,35],neighbour:[28,35,51],network:[22,44],never:[13,16,26,31,35,36,37,39,41],nevertheless:8,new_default:25,new_env_po:21,new_po:21,new_res_nam:49,new_siz:22,newli:[5,21,34],next:[1,8,16,22,27,28,29,37],next_aa:34,nglview:7,nice:8,nitrogen:[9,22,32,43,49,50],nobodi:1,node:10,node_idx:10,node_idx_on:10,node_idx_two:10,non:[0,4,10,13,16,20,24,25,27,28,29,31,32,35,37,47,48,50],non_rotamer:51,nonbonded_cutoff:[25,32],none:[13,26,28,33,34,35,36,49],nonredund:26,nonzero:51,norm:[28,41],normal:[20,39,41],normalis:40,notabl:26,note:[0,2,8,13,14,21,22,25,26,28,31,32,34,35,36,37,39,40,41,47,49,50],notebook:7,noth:[0,4,8,13,14,20,28,34,49],notic:[1,4,16,20],notwithstand:20,novel:[19,38],novo:[3,30,54],now:[3,8,14,16,18,22,26],nparticl:49,nterminalclos:34,null_model:31,num:[23,28,31,32,36],num_frag:[26,35],num_gap_extens:29,num_loop:31,num_residu:[21,25,34,36,39,40,41],num_residues_list:36,num_trajectori:28,number:[0,1,8,9,10,13,14,18,21,22,24,25,26,27,28,29,31,32,34,35,36,37,39,40,41,42,44,45,49,51],numer:35,numpi:[27,34],nussinov1991:[28,38],nussinov:[28,38],o_a_vinaparticl:[49,50],o_ad_vinaparticl:49,o_d_vinaparticl:49,o_po:22,o_vinaparticl:49,object:[0,3,8,13,14,20,21,22,23,25,26,27,28,30,31,32,35,36,37,39,41,44,46,47,49,50,54],oblig:20,observ:[10,26,28,32,50,52],obtain:[10,18,20,23,28,35],obviou:16,occupi:[45,50],occur:[21,28,35,40,41],ocparticl:49,odd:26,off:[1,8,14,35],offend:33,offer:[6,20,24,30,49,51],offset:[0,3,13,26,31,35],ofstream:37,often:[8,11,13,32],og_po:49,olc:22,old:[33,35],oligom:[0,13,30],oligomer:3,olson:38,omega:[21,22],onc:[1,3,8,16,25,28,31,32,34,46,51,52],one:[0,1,2,4,5,6,8,9,10,13,14,15,16,20,21,22,25,26,28,29,31,32,34,35,36,39,40,41,44,49,50,51,52],one_letter_cod:[21,23,26,31,32,34,36],ones:[22,28,31,34,50,51],onli:[0,1,2,4,8,10,11,13,14,15,16,20,21,22,25,26,28,29,31,33,34,35,36,37,39,41,44,47,48,49,50],only_longest_stretch:26,onto:[1,22,26,28],oparticl:49,open:[13,25,26,27,37,39,41,51,53],openmm:[2,18,25,32],openstructur:[2,3,5,7,19,38],oper:[3,10,16,18,21,26,40],opt:[11,13,16],optim:[0,2,3,10,13,25,26,27,31,35,38,39,41,44,47,48,51,54],optimis:8,optimize_subrotam:[36,44],option:[0,2,3,5,13,26,31,32,35,51],order:[0,5,13,21,25,26,29,31,35,37,40],org:20,organ:[8,26,51],orient:[9,32,41],orig_indic:[31,33],origin:[5,7,9,13,16,20,22,26,31,34,35,40,52],orthogon:28,ost:[0,1,2,3,4,5,7,8,9,11,13,15,18,21,22,23,26,27,28,29,30,31,32,33,34,35,36,37,40,41,42,43,44,47,49,50,51,54],ost_double_precis:2,ost_ent:33,ost_librari:4,ost_root:[2,8],other:[0,1,2,3,4,8,10,14,16,20,21,22,31,32,35,36,39,41,42,49,50,51,52,53,54],other_index:22,other_particl:49,other_res_index:21,otherwis:[1,4,8,10,14,16,20,21,22,25,26,28,29,31,32,34,39,40,41,49,51],our:[4,5,8,16,26,28,31],out:[0,1,2,4,8,14,16,20,21,25,26,27,28,29,31,34,47,51],out_path:4,out_po:25,out_stream:37,out_stream_:37,outdat:[5,7],outer:[14,26],outlier:33,output:[0,5,8,11,13,25,27,28,32],output_dir:4,outsid:[8,40],outstand:20,over:[2,4,13,16,26,28,32,34,35,49],overal:[10,34,40,46],overhead:25,overlap:[25,34,35,36],overli:16,overload:37,overrid:[2,5,25,50],overridden:4,overriden:5,overview:[8,16],overwrit:31,overwritten:25,own:[1,3,4,16,17,20,25,26,35,48,49,50],owner:20,ownership:20,oxt:[9,21,25],oxygen:[22,35,43,49,50],p_vinaparticl:49,pack:21,packag:[4,8,16],pad:[22,37],page:[2,8,20],pai:1,pair:[9,10,25,26,27,28,32,34,36,37,39,40,41,44,49,51],pairwis:[3,8,10,22,28,31,35,39,41,42,43,44,46,47,49,50,52],pairwise_energi:10,pairwisefunct:[40,41],pairwisefunctiontyp:40,pairwisescor:[8,35,42,49],paper:[43,44,47,49],paragraph:[1,8],parallel:26,paramet:[1,4,8,9,10,11,13,14,15,21,22,24,25,26,27,28,29,31,32,33,34,35,36,38,39,40,41,43,44,45,46,48,49,50,51,52],parameter_index:26,parametr:[3,32,35,36,49,50],parent:35,pars:[0,11,12,25,26,27,39,41,51,54],parser:12,part:[0,1,8,16,18,20,21,26,34,35,40,44,46,47,49,54],parti:[16,17,20],partial:29,particip:[36,44],particl:[3,25,26,32,41,43,44,45,47,50],particle_typ:49,particular:[8,10,20,26,31,32,34,49,51],partner:[39,40,41],pass:[13,16,21,25,26,28,29,32,34,44,45,49,50],past:[8,16,22,29],patent:20,path:[1,2,4,5,7,8,11,16,18,25,26,27,33,39,41,51],path_to_chemlib:15,path_to_dockerfile_dir:5,path_to_promod3_checkout:6,pattern:38,paus:14,pdb:[0,5,8,11,13,18,21,22,23,24,25,26,28,30,31,32,33,34,35,36,42,47],penal:[29,35],penalti:[29,35],penultim:3,peopl:16,pep:[1,16],peptid:[3,21,23,25,26,28,35,36,47],peptide_sel:28,per:[4,8,10,12,16,21,27,31,34,35,39,40,41,44],percent:20,percentag:33,perfect:8,perfectli:8,perform:[0,10,16,18,19,20,25,28,31,32,33,34,35,37,40,44],period:25,periodic_dihedr:25,periodic_improp:25,permiss:[8,20],permut:10,perpetu:20,pertain:20,phase:25,phe:[49,51],phenix:33,phenylalanin:49,phi:[21,22,26,27,32,34,41,47,50,51],phi_bin:[41,51],phi_handl:47,philippsen:38,phipsisampl:34,phosphoru:49,phosphoserin:35,phrase:8,pick:[31,34],pictur:8,piec:[8,28],pipelin:[0,3,14,19,26,28,29,30,33,34,47,53,54],pivot:[31,32,34],pivot_on:[31,32],pivot_thre:[31,32],pivot_two:[31,32],place:[1,2,4,8,11,13,16,20,26],plain:[0,13],plan:16,plane:33,platform:[18,25],playground:7,pleas:[2,8,16,28,31,32,35,53],plot:27,plt:27,plu:[8,13,15,26,44,49],pluribu:28,pm3_csc:16,pm3_openmm_cpu_thread:[18,25,35],pm3_runtime_profiling_level:14,pm3argpars:[0,11,12,54],pm3argumentpars:[0,11,13],pm_action:[1,4,8],pm_action_init:8,pm_bin:1,pna:38,png:27,pocket:28,pocket_view:28,point:[2,8,13,15,21,26,28,34,35,40,49,51],pointer:[2,8,37],polar:[49,50],polar_direct:49,polici:8,pop:[16,31,34,40],popul:[2,16],port_str_db:26,portabl:[4,17,25,26,27,39,41,51],portable_binary_seri:37,portable_fil:4,portablebinarydatasink:37,portablebinarydatasourc:37,pos:[21,22,26,32,49],pos_end:28,pos_on:28,pos_start:28,pos_two:28,posit:[3,8,9,22,23,25,26,27,28,29,31,32,34,35,36,38,39,40,41,43,44,45,46,49,50,54],possibl:[0,3,8,10,13,16,20,22,25,26,27,28,29,31,32,34,35,36,37,39,40,41,44,46,49,51],post:13,postprocess:36,pot:25,pot_:32,potenti:[10,23,25,26,28,31,32,35,36,37,38,41,49],power:[7,20],pqhpg:0,practic:[4,8,25,26],pre:[8,16],pre_commit:[8,16],preceed:36,precis:[2,31,35],precomput:[23,54],pred:40,predefin:[4,18,25,35,39,41],predict:[13,26,28,35,38,40,41],prefactor:49,prefer:[2,4,20,26,51,52],prefilt:35,prefix:[1,4,8,11],prepar:[8,20,35],present:[22,28,32,36,49,50,51],prev_aa:34,prevent:[1,8],previous:[25,26,31,36,40],primary_rot_angl:22,principl:[3,34,40],print:[1,2,5,20,22,23,25,26,31,32,33,35,42],printstatist:26,printsummari:14,prior:35,privat:[1,37],pro:[21,27,49,51],probabilist:[26,50],probability_cutoff:50,probabl:[4,8,10,13,16,26,27,28,31,32,34,49,50,51],problem:[3,7,10,13,16,26,28,31,32,34,35,40,42,44,46,48,52],problemat:[3,5,28],proce:42,procedur:[10,28,34,36,50],process:[1,3,13,16,21,25,28,32,34,35,37,40,45,49,51],processor:5,produc:[0,1,2,4,8,10,26,29,33,35],product:[1,3,16,20],prof:[0,26,31],prof_dir:26,prof_path:26,profil:[0,3,12,13,26,28,31,35,38,54],profiledb:26,profilehandl:[13,26,28,31,35],prog:13,program:[4,5,8,12],project:[3,4,5,8,16],prolin:[22,33,49],promin:[0,20],promod3:[1,3,7,9,10,11,13,14,15,17,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54],promod3_mod:4,promod3_nam:4,promod3_name_head:4,promod3_path:8,promod3_root:8,promod3_shared_data_path:[8,37],promod3_unittest:[1,4,8],promod:[5,7],promot:8,propag:[8,22],proper:[16,26,50],properli:[1,35,39,41,50],properti:[21,22,35,50,51],propos:[29,31,32,34,44],proposed_posit:34,proposestep:34,prot:[8,23,26,28,32,34,36,47],prot_rec:8,protein:[0,18,19,24,25,28,33,34,35,36,38,45,47,49,54],proteinogen:26,proton:[21,25,49,51],prototyp:19,provid:[0,1,2,3,4,5,7,8,13,16,20,21,22,23,25,26,28,29,31,32,33,34,35,36,37,40,48,49,50,51],prune:[10,52],pscoringfunct:49,pseudo:[34,35,39,41],psi:[21,22,26,27,32,34,41,47,50,51],psi_bin:[41,51],psi_handl:47,psipr:[13,26,28,40,41],psipred_confid:41,psipred_pr:28,psipred_predict:[26,28,35],psipred_st:41,psipredpredict:[23,28,35,40],pssm:[0,13],publicli:20,pull:[5,8,16,18],punch:[1,3,30,35],pure:0,purpos:[8,10,20,35,51],push:16,pushverbositylevel:13,put:[1,4,8,11,13,35],pwd:5,py_run:[1,4,8],pyc:1,pylint:16,pylintrc:16,pymod:[4,8,16],pyplot:27,pytest:8,python3:8,python:[1,2,3,4,5,7,8,11,14,15,16,18,21,22,25,32,37,49,50],python_root:2,pythonpath:8,qmeandisco:40,qualiti:35,quantum:38,queri:[26,28,51],query_idx:28,query_list:28,querylib:51,question:[3,27],quick:17,quickli:[5,8,32],quit:[8,13],rackovski:38,radian:[9,22,25,27],radii:[33,43],radiu:[8,33,39,41,49],raihvhqfgdlsqgcestgphynplavph:0,rais:[0,9,10,13,21,22,25,26,27,28,29,31,32,33,34,35,36,39,40,41,44,45,49,50,51],rama_iffi:33,ramachandran:33,random:[10,22,24,27,31,32,34],random_se:31,randomized_frag:22,randomli:[27,34],rang:[8,9,21,22,23,25,26,27,28,29,32,34,35,39,40,41,51],rank:31,rapid:38,rare:8,rather:[5,7,8,11,16,34,51],raw:[7,18,25,26,27,30,31,37,39,41,44,51],rawmodel:[3,8],reach:[0,29,32],read:[0,8,11,13,16,25,26,27,29,36,37,39,41,48,51],readabl:[0,8,13,20,51],readdunbrackfil:48,reader:[16,18],readi:[2,5,51],readm:[2,8,48],real:[8,13,37],realli:[1,2,8,11,16],reappear:16,reason:[8,16,20,32,34,52],rebas:16,rebuild:[2,8],recalcul:27,receiv:20,recent:[3,16],recip:[3,6],recipi:20,recoginz:49,recogn:[0,13],recognis:[1,8,16],recognit:38,recommend:[2,5,8,20,25,35],reconstruct:[0,3,8,18,21,22,25,30,32,35,44,47,49,52,54],reconstructcbetaposit:22,reconstructcstemoxygen:22,reconstructor:[32,35,36],reconstructoxygenposit:22,reconstructsidechain:[0,8,35,36],reconstructtest:8,record:[1,35],recreat:16,redistribut:20,redo:28,reduc:[3,25,28,35,41],reduced_scor:37,reducedscor:[35,37,42],redund:[24,31],ref_backbon:[23,26],ref_fil:8,refactor:3,refer:[1,4,8,18,19,21,22,23,25,26,34],referenc:8,refin:28,refine_thresh:28,refresh:31,regard:[20,32,44],region:[0,25,28,29,32,34,35,45,50],regist:[4,8],regress:38,regularli:5,reinterpret_cast:37,reject:[31,32,34],rel:[4,5,9,10,26,28,32,41],relat:[4,8,13,26,28,37,38,49],relax:[30,35],releas:[2,5,8,16],relev:[2,3,4,7,25,28,36,49],reli:5,remain:[20,30,34,35],rememb:[1,8,34],remodel:[31,36],remodel_cutoff:36,remov:[2,3,10,22,25,26,29,31,33,35,36,40,47,49],removecoordin:26,removeterminalgap:35,renumb:[26,35],reorder:35,reordergap:35,repeat:28,replac:[3,20,21,22,34,35],replacefrag:22,report:[1,8,35],reportmolprobityscor:33,repositori:[1,4,8,16,53],repres:[10,20,21,23,26,27,28,29,40,41,44,45,46,47,50,52,54],represent:[22,23,25,26,27,37,39,41,49,51],reproduc:[3,20,35],reproduct:20,repuls:49,request:[26,28,48,51],requir:[0,2,3,5,8,13,16,19,20,21,22,26,27,28,31,32,35,36,37,42,49,50,51],reread:26,res:[9,21,22,25,28,31,32,36,40,49,50,51],res_depth:26,res_idx:[49,50],res_index:21,res_indic:[21,25,36],res_list:[21,25,32,36],res_num:21,resembl:[16,28],reserv:11,reset:[10,21,25,32,34,40,49],resid:5,residu:[0,3,8,9,21,22,23,24,25,26,27,28,29,31,32,33,34,35,36,38,39,40,41,42,44,45,47,49,50,51],residue_depth:26,residue_index:[45,49,50],residue_list:35,residuedepth:26,residuehandl:[9,21,22,26,29,31,32,33,34,35,49,50,51],residuehandlelist:21,residueview:35,resiz:[22,37],resnum:[21,22,29,31,35,36,40],resnum_on:40,resnum_rang:35,resnum_two:40,resolut:[22,32],resolv:[16,21,32],resolvecystein:44,resort:35,respect:[9,25,28,35],respons:[8,16,20],rest:[1,8,16,36],restor:[22,31,34,40],restraint:[26,32],restrict:[8,16,29],restructuredtext:[4,8],result:[0,2,8,10,20,25,27,28,31,32,33,34,35,36,38,44,51],resum:14,retain:20,reus:[35,36],review:[16,53],revis:20,reviv:16,rewrit:1,richardson:38,ridig:36,right:[1,2,8,10,13,20],rigid:[0,3,30,32,34,36,46,47,49,51,52,54],rigid_frame_cutoff:36,rigidblock:28,rij:43,ring:[3,30,35],ring_punch_detect:35,risk:20,rmsd:[22,23,26,28,31,32],rmsd_cutoff:[26,31,32],rmsd_thresh:[26,28],rname:28,rnum:40,robot:38,role:13,root:[2,4,8,16],rosetta:41,rot:36,rot_constructor:47,rot_group:[47,50],rot_lib:50,rot_lib_entri:50,rota_out:33,rotam:[0,3,33,36,38,44,45,47,52,54],rotamer:[48,51],rotamer_group:[44,46,47],rotamer_id:47,rotamer_librari:[3,35,36,48],rotamer_model:36,rotamer_on:44,rotamer_res_indic:36,rotamer_two:44,rotamerconstructor:[3,47,49],rotamergraph:[36,46,47,52],rotamergroup:49,rotamerid:[47,50,51],rotamerlib:[35,36,37,48,50,51],rotamerlibentri:[50,51],rotat:[9,22],rotatearoundomegators:22,rotatearoundphipsitors:22,rotatearoundphitors:22,rotatearoundpsitors:22,rotationaroundlin:9,roughli:24,round:51,routin:[1,18,31],royalti:20,rrm:36,rrmrotam:[44,49,50],rrmrotamergroup:[44,46,49,50],rst1:4,rst2:4,rst:[4,8,16],rsync:8,rule:[5,8,9,16],run:[0,4,7,8,10,13,14,15,16,25,26,31,32,33,35,54],runact:1,runexitstatustest:1,runmolprob:33,runmolprobityent:33,runnabl:8,runner:1,runtest:[1,8],runtim:[0,3,10,12,35,50,54],runtimeerror:[9,10,21,22,25,26,27,29,31,32,34,35,36,39,40,41,44,45,48,49,50,51],runtimeexcept:27,s_id:26,s_vinaparticl:49,safe:[2,8],said:4,same:[0,1,2,4,7,8,10,13,14,20,21,25,26,28,31,32,34,35,36,37,39,40,41,42,45,48,49,50,51],samiti:35,sampl:[0,3,8,22,23,28,31,34,35,54],sampled_frag:34,samplemontecarlo:[3,34],sampler:[3,23,24,26,28,30,31,32,35],samplerbas:34,sampling_start_index:34,sander:38,saniti:2,sanity_check:2,satisfi:49,save:[16,22,25,26,27,28,31,34,37,39,40,41,51],savebb:26,savecach:28,savefig:27,savepdb:[18,21,22,25,26,28,30,31,32,34,35,36,47],saveport:[25,26,27,37,39,41,51],sc_data:32,sc_rec:[32,36],sc_rec_test:36,sc_result:32,scale:22,scatter:27,scheme:[1,8,13,21,26,29,34],schenk:38,schmidt:38,schwede:[5,8,18,19,38,53],sci:38,scicor:[5,8,18,19,53],scondari:35,scope:14,score:[0,3,8,13,19,23,26,28,29,30,33,34,35,36,37,38,39,41,44,47,54],score_contain:31,score_env:[31,34,42],score_threshold:44,score_vari:35,scorecontain:31,scorer:[3,17,28,30,31,35,40,42,54],scorer_env:[28,31,34],scorerbas:34,scoring_weight:28,scoringgapextend:[29,35],scoringweight:[28,31,35],scratch:[26,34],script:[2,3,4,7,11,13,16,17,18,26,28,37,48,54],scriptnam:11,scriptpath:8,scwrl3:[36,42,50],scwrl3disulfidscor:[43,44],scwrl3pairwisescor:43,scwrl3rotamerconstructor:50,scwrl4:[0,36,38,44,47,50],scwrl4particletyp:49,scwrl4rotamerconstructor:[3,47,50],scwrlrotamerconstructor:3,seamlessli:16,search:[0,2,3,8,21,26,28,31,33,35,36,41,44,49,50],searchdb:[23,26],second:[8,10,22,25,26,28,31,32,35,39,40,41,43,44],secondari:[3,13,26,28,38,41],secondli:8,section:[1,4,7,17,20,53,54],see:[0,1,7,8,9,10,11,13,16,18,20,21,25,26,27,29,31,33,34,35,37,39,40,41,51],seed:[10,24,27,31,32,34],seem:16,segment:22,select:[3,10,26,28,34,35,36,47],selenium:35,self:[1,8,10,44,47,49],self_energi:[10,49],sell:20,send:11,sensibl:35,sent:20,seok:38,separ:[1,3,8,10,20,25,27,35,39,41,44],seq:[13,21,23,26,28,29,31,35,40,42],seq_idx_on:28,seq_idx_two:28,seq_one_idx:28,seq_sep:[39,41],seq_tpl:[31,35],seq_trg:[31,35],seq_two_idx:28,seqid:[24,26],seqprof:13,seqr:[0,21,23,26,28,29,31,34,35,36,39,40,41],seqres_str:[21,32,36],seqsim:26,sequenc:[0,3,8,13,18,21,22,23,27,28,29,30,31,32,34,35,38,39,40,41],sequencefromchain:42,sequencehandl:[21,26,28,29,35,40],sequencelist:[21,35,40],sequenceprofil:26,sequenti:[22,35],ser:49,serial:[26,37],serializ:37,serin:49,serv:[1,13,26,28,31,34],servic:[16,20],set:[1,2,4,8,10,11,13,15,16,18,21,22,25,26,28,31,32,33,34,35,36,37,39,40,41,44,47,49,50,51,52],setaa:22,setactivesubrotam:49,setallatomscoringkei:31,setaroundomegators:22,setaroundphipsitors:22,setaroundphitors:22,setaroundpsitors:22,setbackbonescoringkei:31,setbackrub:22,setboolprop:50,setc:22,setca:22,setcb:22,setcharg:25,setcompoundschemlib:[19,54],setcpuplatformsupport:25,setdefault:25,setdisulfidconnect:25,setenergi:[39,41],setenviron:[21,32,36,40],setepsilon:25,setfraggerhandl:35,setframeenergi:[47,49],setfudgelj:25,setfudgeqq:25,setinitialenviron:[21,31,32,34,36,40,42],setinternalconnect:25,setinternalenergi:49,setinternalenergyprefactor:49,setinterpol:51,setmass:25,setn:22,setnonbondedcutoff:32,seto:22,setolc:22,setpeptideboundconnect:25,setphitors:22,setpo:21,setprob:49,setpsipredpredict:[35,40,41],setpsitors:22,setresidu:21,setscor:41,setsequ:22,setsequenceoffset:35,setsequenceprofil:35,setsequenceprofilescoreskei:31,setsigma:25,setstemrmsdskei:31,setstructureprofil:26,setstructureprofilescoreskei:31,settemperatur:49,setup:[0,2,5,8,13,17,25,28,31,32,34,35,37,39,40,41,42],setupdefaultallatomscor:[31,35],setupdefaultbackbonescor:[31,35],setupsystem:25,setweight:31,sever:[0,2,3,5,8,10,13,24,26,27,28,31,32,35,36,40,41,42,44,48,49,51,52],sg_pos_on:43,sg_pos_two:43,shake:34,shall:20,shanno:35,shapovalov2011:[38,48],shapovalov:38,share:[5,7,12,17,20,25,37,53,54],shared_ptr:37,shebang:8,sheet:35,shelenkov:38,shell:[1,2,7,8,11],shift:[22,26,29],shiftctermin:29,shiftextens:29,ship:[5,48],shorten:35,shorter:35,shortest:31,shortli:8,should:[1,2,4,5,7,8,10,11,13,16,18,20,22,23,26,27,28,31,32,34,35,36,37,40,45,47,49],show:[1,8,13,14,31,34,47,50],showcas:[1,21,25,27],shown:[8,14,35],shrink:22,shrug:38,side:[8,35,38],sidechain:[3,8,18,19,25,30,32,33,35,37,38,43,44,45,46,48,50,51,52,54],sidechain_pymod:8,sidechain_reconstructor:35,sidechain_rst:8,sidechain_test_data:8,sidechain_test_orig:36,sidechain_test_rec:36,sidechain_unit_test:8,sidechainparticl:50,sidechainreconstructiondata:[30,32],sidechainreconstructor:[25,30,32,35],sidenot:[26,36],sig1:51,sig2:51,sig3:51,sig4:51,sigma:25,silent:1,sim:25,similar:[1,2,13,16,23,26,28,40,41,51],similardihedr:51,similarli:[2,25,35],simpl:[0,9,22,26,34,35,39,40,41,49,51],simpler:[25,35],simplest:[5,8,30],simpli:[5,21,22,31,32,34,35,49,50,51],simplic:[23,26],simplif:13,simplifi:[3,22,25,26],simul:[10,25,31,32,34],sinc:[1,2,4,8,10,11,16,18,22,25,26,27,28,49],singl:[2,4,8,10,21,22,25,26,28,31,32,34,35,36,40,41,45,48,49,50,52],singleton:25,singular:[3,6,28,54],sink:37,sit:8,site:[3,5,8,28],size:[8,21,22,26,27,28,32,34,37,39,40,41],sizeof:37,skip:[0,1,8,16,26,28,35,50],slide:28,slight:35,slightli:35,slow:37,slower:[18,25,26,27,35,39,41,51],small:[8,26,32,35,36],smaller:[22,26,28,32,41],smallest:47,smallish:[2,8],smart:16,smng:3,smooth:38,smtl:35,soding2005:[26,38],softsampl:34,softwar:[8,20,38,49],sol:47,sole:[1,16,20],soli:38,solis2006:[24,38],solut:[8,10,28,31,32,34,35,36,46,47],solv:[10,16,47,52],solvent:26,solventaccess:26,solver:3,some:[1,2,4,5,6,7,8,13,16,21,23,26,30,33,34,35,36,37,40,42,47,50,51],somedata:37,someth:[1,8,11,16,26],sometim:16,somewher:4,soon:[10,32,41,47,51],sort:[1,4,10,14,31,34,51],sound:[16,50],sourc:[1,2,4,8,13,16,18,19,20,26,28,31,32,33,35,37,51],source1:[4,16],source2:[4,16],source3:4,source4:4,source_chain_idx:35,source_mhandl:35,sp3:51,space:[3,10,28,34,38],span:35,sparticl:49,spatial:[8,28,42],spawn:[1,8],spdbv:35,spdbv_style:35,special:[1,2,4,8,20,25,34,49,50,51],specif:[1,3,8,20,25,26,27,28,31,34,38,40,47,48,49,51],specifi:[0,2,4,5,9,10,22,26,27,28,31,32,35,36,40,49,51],specimen:11,speed:[3,25,35,38],spent:[14,18],sphere:[43,49],sphinx:[2,8],spin:38,spit:[29,34],split:42,sport:8,squar:26,src:[8,16],ss_agreement:41,ss_agreement_scor:37,ssagre:26,ssagreementscor:[37,42],sse:2,sstream:37,stabil:38,stabl:[5,16],stack:16,stage:[1,2,4,8,17,18,28,37,40,51],stai:[1,8,10,16,34],standalon:7,standard:[2,8,12,13,16,21,27,37,41,51],start:[0,1,2,4,10,14,16,17,19,21,22,25,26,28,29,31,32,34,35,36,40,41,42,54],start_idx:31,start_resnum:[21,22,26,31,34,35,36,39,40,41],start_resnum_list:36,start_rnum:40,start_temperatur:[10,34],starter:1,startscop:14,stash:[16,31,34,40],state:[1,2,8,20,21,26,31,34,40,41,44,49,51],statement:20,staticruntimeprofil:14,statist:[14,26,38],statu:[1,8],std:37,stderr:1,stdout:1,steadili:[10,34],steepest:[32,35],stem:[9,22,25,26,29,31,32,34,35,36],stemcoord:9,stempairorient:9,step:[8,10,14,16,18,19,28,29,30,31,32,34,40,44],stereo:35,stereo_chemical_problem_backbon:35,stereochem:[3,35],steric:51,still:[8,14,25,26,35,37],stop:[1,8,14,28,29,32],stop_criterion:32,stoppag:20,storabl:26,storag:[8,21,25,39,41],store:[0,1,3,8,9,16,18,21,22,25,26,27,28,29,31,32,34,35,36,37,47],stori:8,str:[1,11,13,14,15,21,22,25,26,27,28,29,31,32,33,34,35,36,37,39,40,41,49,51],str_len:37,straight:16,strategi:51,stream:37,stretch:[21,26,31,34,35,40,41],strict:16,strictli:3,string:[0,3,11,13,26,27,29,37],stringstream:37,strip:[0,35],struc:5,struct:[5,26,37],struct_db:23,structral:[21,40],structur:[0,3,8,13,17,18,19,21,22,23,24,25,27,28,29,30,31,33,34,35,36,37,38,40,41,42,47,49,50,52,54],structural_db:31,structuralgap:[29,33],structuralgaplist:[29,35],structure_db:[26,28,31,35,37],structure_db_on:26,structure_db_two:26,structure_dir:26,structure_id:26,structure_path:26,structure_sourc:13,structuredb:[3,13,24,26,28,31,35,37],structuredbdatatyp:26,structureprofil:26,studer:38,stuff:[26,39],style:[35,40,41,49],sub:[8,26],sub_frag:22,sub_res_list:26,subclass:[8,13],subdir:8,subfold:8,subject:[8,20],sublicens:20,submiss:20,submit:20,submodul:8,submodule1:16,subpart:28,subrotam:[0,3,44,47,49,50,54],subrotameroptim:[36,52],subsequ:[10,20,22,35],subset:[0,13,25,26,28,31,32,35,36],subst:26,subst_matrix:26,substitut:26,substweightmatrix:26,subtre:[4,8],succeed:29,success:[10,11,34],successfulli:5,sudo:7,suffici:26,suffix:11,sugar:6,suggest:[5,8,43],suit:[1,8,26],sulfur:[43,44,49,50],sum:[14,29,35,36,43,44,49],sum_:10,sum_i:10,sum_ie_:10,summari:[14,26],superpos:[22,26,28,31,32,34],superpose_stem:22,superposed_rmsd:[22,31],superposeonto:22,superposit:[3,28,31,34],superpost:28,supersed:20,supervis:1,support:[0,1,2,3,8,11,13,18,20,25,32,35],suppos:[16,34],sure:[2,7,8,13,16,26],surfac:26,surotam:49,surprisingli:50,surround:[25,26,32,36,39,41],symmetr:[26,40,51],symmetri:[39,41],sync:8,syntax:20,sys:[1,13,32],system:[1,2,4,8,16,20,23,26,32,42,54],t_sampler:27,tabl:26,tag:5,tail:22,tailor:[21,35],take:[8,10,21,26,27,28,31,32,34,35,37,41,44,50,52],taken:[0,21,25,32,34,35,50],talk:1,target:[0,1,2,4,8,13,18,26,28,30,31,32,34,35,40,49],target_chain_idx:35,target_mhandl:35,target_pdb:33,target_posit:28,target_sequ:26,task:[8,16,32,35,37,40],techniqu:[10,38],tell:[1,8,11,13,16,26],temperatur:[10,31,34,49],templat:[0,1,3,13,18,30,35,37,40],temporari:[26,35],temporarili:16,term:[8,20,26,49,51,52],termin:[0,1,9,11,18,20,21,22,25,29,31,32,34,35,36,50],terminal_len:34,terminal_seqr:34,termini:[0,3,29,34,35],terminu:[26,34,35],test:[2,7,12,16,17,18,25,26,33,37],test_:8,test_act:[8,17],test_action_:1,test_action_do_awesom:1,test_action_help:1,test_awesome_featur:8,test_check_io:37,test_cod:8,test_doctest:8,test_foo:4,test_portable_binari:37,test_reconstruct_sidechain:8,test_sidechain_reconstruct:8,test_submodule1:16,test_suite_:4,test_suite_your_module_run:8,test_your_modul:16,testcas:[1,8],testcasenam:8,testexit0:1,testpmexist:1,testreconstruct:8,testutil:[1,8],text:[1,13,20,35],than:[4,8,13,14,16,21,22,26,28,31,32,33,35,36,41,44,50],thats:[26,41],thei:[2,5,8,16,21,22,25,26,27,28,31,32,33,34,35,44,49,50,51,53],them:[4,8,16,22,25,26,27,28,29,31,35,36,40,45],themselv:25,theoret:34,theori:[20,38],therefor:[5,8,22,24,26,28,32,34,35,51],thereof:[20,25],thi:[0,1,2,3,4,5,7,8,10,11,12,13,14,15,16,17,18,20,21,22,23,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,44,47,49,50,51,52,54],thing:[1,2,8,16,26,28,35,51],think:10,third:[16,17,20,31,32],thoroughli:16,those:[0,1,2,4,8,10,13,16,20,25,28,31,35,36,37,39,41,47,50,51],though:[25,35,37],thr:49,thread:[18,25,35,38],three:[1,4,16,21,22,27,28,31,33,34,38,41,49,51],threonin:49,thresh:[22,49,51],threshold:[10,26,28,32,35,36,40,51],through:[1,8,9,20,22,26,29,35,39,41],throughout:[13,16,24,25],thrown:26,thu:[5,11,49],tidi:16,tightli:16,time:[1,5,8,13,14,16,18,28,35],timer:14,tini:[16,35],titl:[20,27],tlc:[21,49],tlc_an:21,tlctorotid:[47,49],tmp_buf:37,todens:22,toentiti:[18,21,22,25,26,32,34,36],toframeresidu:49,togeth:[8,16,26,44],too:[13,16,31,32,35,37],tool:[3,4,23,37,42,47],toolbox:16,top:[2,6,8,14,15,16,32,35],topic:[1,8,16],topolog:[25,32],torrmrotam:49,torsion:[0,13,21,22,23,24,26,28,31,32,34,35,41,47],torsion_angl:47,torsion_bin:41,torsion_plot:27,torsion_sampl:[22,26,31,32,34,35,37],torsion_sampler_coil:[28,37],torsion_sampler_extend:[28,37],torsion_sampler_hel:37,torsion_sampler_helix:28,torsion_sampler_list:26,torsion_scor:37,torsionprob:26,torsionsampl:[22,24,26,27,28,31,32,34,35,37,41],torsionscor:[35,37,42],tort:20,total:[10,14,26,28],touch:[1,8,25,32],toward:[0,3,8,13,26,29,32,35,39,41,47,49,50,52],tpl:[0,30,31,35],tpr:[49,51],trace:35,track:[3,11,20,30,35,47],trade:20,trademark:20,tradition:11,trail:0,train:[24,31,35],trajectori:[28,34],tran:[22,49,51],transfer:20,transform:[9,20,22,28,34,35,51],translat:[4,8,20,26,49,51],transomegators:22,treat:[3,8,25,35,36,37,51],treatment:50,tree:[1,4,8,10,16,46,47],treepack:3,treesolv:[10,36,47],trg:[0,13,31,35],tri:[10,28,29,35,44,51],triangl:28,trick:[1,7,16],trigger:[1,4,8,48],tripeptid:27,tripl:11,triplet:[23,28,34,41],trott2010:[38,49],trott:38,trp:[49,51],trustworthi:16,tryptophan:49,ttccpsivarsnfnvcrlpgtpea:[31,35],ttccpsivarsnfnvcrlpgtpeaicatgytciiipgatcpgdyan:35,ttccpsivarsnfnvcrlpgtpeaicatytgciiipgatcpgdyan:[31,35],tupl:[9,10,11,22,25,26,28,29,33,35,36,44],turn:[0,1,11,14,16,35],tutori:8,tweak:35,twice:[14,40],two:[1,7,8,10,16,21,22,25,26,28,29,31,32,35,36,37,39,40,41,43,44,47,49,51],txt:[1,2,4,8,16,20],type:[0,1,8,9,10,11,13,14,20,21,22,24,25,26,27,28,29,31,32,33,34,35,36,37,39,40,41,43,47,48,49,50,52],typedef:37,typenam:37,typic:[22,28,34,47,51],tyr:[49,51],tyrosin:49,uint32_t:37,uint:37,ultra:26,uncertain:8,uncharg:50,unclos:35,undefin:25,under:[4,8,20],undergo:[28,32,34,36],underli:[29,31,49],underscor:1,understand:16,understood:0,undo:10,unexpect:2,unfavor:[22,32],unfavour:[32,34,44],unfortun:16,unhandl:[0,13],uniba:[5,8,18,19,53],uniform:32,union:20,uniqu:[0,13,28,31,34,51],unit:[2,16,17,37],unittest:[1,8,16],univers:[8,53],unix:16,unknown:25,unless:[13,20,21,22,25,31,39,41],unlik:47,unrecognis:11,unset:[21,25,36],unsupport:[13,37],until:[8,10,28,32,35,40,50],untouch:22,untrack:1,unum:28,unus:16,upat:5,updat:[3,5,7,8,16,21,25,28,29,31,32,35,36,40,42],updatedistribut:27,updateposit:[25,32],upon:[26,32,34],upper:28,ups:3,urei:25,urey_bradley_angl:25,usabl:16,usag:[0,3,10,13,24,26,31,32,36],use:[0,2,3,4,5,8,10,13,16,18,20,21,22,23,25,26,27,28,30,31,32,34,35,36,37,47,48,49,50],use_amber_ff:35,use_bbdep_lib:36,use_frm:36,use_full_extend:35,use_scoring_extend:35,used:[0,2,3,4,8,9,10,11,13,14,15,16,18,21,24,25,26,27,28,29,31,32,33,34,35,36,37,39,40,41,42,45,47,48,49,50],useful:[1,3,8,10,11,22,26,28,30,31,32,35,50],user:[1,5,8,19,28,53],userlevel:1,uses:[5,8,10,22,25,27,28],using:[1,2,3,4,8,10,18,20,21,22,25,26,28,31,33,34,35,37,38,39,41,44,45,46,47,49,50,51,54],usr:[2,5,7,8],usual:[1,2,4,8,13,14,16,22,31,35,39],utilis:[8,16],v_size:37,val:[27,49],valid:[0,10,16,22,26,29,34,35,36,48,51],valin:49,valu:[2,10,11,13,21,22,25,26,28,31,34,35,37,39,40,41,44,47,49,50,51,52],valueerror:[28,35],vanish:40,varadarajan:38,vari:[4,37],variabl:[1,2,8,14,18,25,33,35,37],variant:[25,31],variou:[1,2,4,16,30],vec3:[9,21,22,26,32,33,43,44,49],vec3list:[28,49],vector:[25,27,28,31,37,49],verbal:20,verbos:1,veri:[1,8,11,16,25,28,35,37],verif:13,verifi:[1,11,16],version:[2,3,5,8,16,20,26,35,37,48,49],vertic:28,via:[1,5,8,13,15,25],view:[13,16,27,35,40],vina:[3,38,50],vinaparticletyp:[49,50],vinarotamerconstructor:50,virtual:8,visibl:36,vision:38,visual:18,volum:5,wai:[1,2,4,5,8,16,22,23,25,31,41,47,49],wait:8,walk:[1,8],want:[1,2,3,8,15,16,22,26,28,31,32,35,40,49,50,51,52,53],warn:[3,8,16,35],warranti:20,watch:8,web:[2,8],weight:[3,26,28,31,34,35,39,41],weird:[28,32,47],well:[0,4,16,21,27,28,29,31,35,37,41,47,50,51],went:[0,8],were:[16,26,31,35],wester:38,wether:10,what:[1,8,11,13,16,23,26,36,40],when:[1,3,4,5,8,10,13,14,21,22,25,26,27,28,29,31,34,35,36,37,38,40,41,44,47,48,49,50,51],whenev:[8,21,31,40],where:[0,1,3,4,5,8,10,11,13,14,16,20,21,22,25,26,27,31,35,37,39,40,41,48,49,50,51],wherea:26,wherev:20,whether:[3,5,8,10,11,13,20,22,25,26,31,32,34,36,39,40,41,49,50,51],which:[0,1,2,4,8,9,11,12,13,16,18,20,21,22,25,26,27,28,29,31,32,33,34,35,36,37,39,40,41,49,50,51],whistl:8,whitespac:0,who:[10,47],whole:[1,2,8,16,20,22,26,35,49],whom:20,why:[1,16],width:[10,37,47],wild:4,window:28,window_length:28,wise:4,wish:[2,17,27,35],with_aa:31,with_db:31,within:[2,3,4,8,14,16,20,21,25,28,29,33,35,36,39,41,51],without:[0,1,3,4,8,11,13,20,25,29,32,35,40,51],wolfson:[28,38],won:[0,35,36,50],word:4,work:[1,2,4,5,7,8,14,16,18,20,25,29,35,37,50],worldwid:20,worst:16,worth:53,would:[1,2,8,11,22,26,27,44,49],wrap:26,wrapper:[1,4,8,15,35],write:[0,17,20,26,27,32,37,39,41,51],writebasetyp:37,writemagicnumb:37,writetypes:37,writeversionnumb:37,written:[8,20,37],wrong:[2,13],wwpdb:5,www:20,x_1:10,x_2:10,x_i:10,x_j:10,x_n:10,xlabel:27,xlim:27,xml:8,xxx:[22,49],xxx_num_atom:21,xxx_num_hydrogen:21,year:1,yet:[26,31,35],ylabel:27,ylim:27,you:[0,1,2,3,4,5,7,8,10,11,13,14,15,16,18,20,21,22,23,25,26,27,28,30,31,32,34,35,36,37,39,40,41,47,48,49,50,51,52,53],your:[1,2,4,5,13,14,16,17,18,20,22,26,28,35,37,48],your_modul:[8,16],yourself:[2,8,10,16,35,50],yyyi:20,zero:[0,26,28,35,51],zhou2005:[26,38],zhou:38,zip:[26,47]},titles:["ProMod3 Actions","<code class=\"docutils literal notranslate\"><span class=\"pre\">test_actions</span></code> - Testing Actions","Building ProMod3","Changelog","ProMod3\u2019s Share Of CMake","Docker","ProMod3 and Containers","Singularity","Contributing","Geometry functions","Graph Minimizer","<code class=\"docutils literal notranslate\"><span class=\"pre\">helper</span></code> - Shared Functionality For the Everything","<code class=\"docutils literal notranslate\"><span class=\"pre\">core</span></code> - ProMod3 Core Functionality","<code class=\"docutils literal notranslate\"><span class=\"pre\">pm3argparse</span></code> - Parsing Command Lines","Runtime profiling","<code class=\"docutils literal notranslate\"><span class=\"pre\">SetCompoundsChemlib()</span></code>","ProMod3 Setup","Documentation For Developers","Getting Started","ProMod3","License","Handling All Atom Positions","Representing Loops","<code class=\"docutils literal notranslate\"><span class=\"pre\">loop</span></code> - Loop Handling","Loading Precomputed Objects","Generate <code class=\"docutils literal notranslate\"><span class=\"pre\">ost.mol.mm</span></code> systems","Structural Data","Sampling Dihedral Angles","Modelling Algorithms","Handling Gaps","<code class=\"docutils literal notranslate\"><span class=\"pre\">modelling</span></code> - Protein Modelling","Handling Loop Candidates","Fitting Loops Into Gaps","Model Checking","Generating Loops De Novo","Modelling Pipeline","Sidechain Reconstruction","Using Binary Files In ProMod3","References","All Atom Scorers","Backbone Score Environment","Backbone Scorers","<code class=\"docutils literal notranslate\"><span class=\"pre\">scoring</span></code> - Loop Scoring","Other Scoring Functions","Disulfid Bond Evaluation","Frame - The Rigid Part","Rotamer Graph","<code class=\"docutils literal notranslate\"><span class=\"pre\">sidechain</span></code> - Sidechain Modelling","Loading Rotamer Libraries","Representing Sidechains - Rotamers & Co.","Rotamer Constructor","Rotamer Library","Subrotamer Optimization","Contributing","Documentation For Users"],titleterms:{"class":[21,22,26,27,29,31,36,39,40,41],"default":35,"function":[4,9,11,12,29,36,40,43,49,50],For:[4,11,17,54],Into:32,The:[1,5,7,16,21,22,26,27,31,35,36,45,49,50,51],Using:[2,37],With:33,acid:[21,25,27],action:[0,1,4,5,8],actiontestcas:1,algorithm:28,all:[21,32,39],allatomclashscor:39,allatomenv:21,allatomenvposit:21,allatominteractionscor:39,allatomoverallscor:39,allatompackingscor:39,allatomposit:21,allatomscor:39,amino:[21,25,27],angl:27,api:1,app:7,argument:13,atom:[21,32,39],avail:7,backbon:[32,40,41,51],backbonelist:22,backboneoverallscor:41,backbonescor:41,backbonescoreenv:40,base:[26,39,41],baseclass:50,binari:37,block:[28,49],bond:44,branch:16,build:[0,2,5,35,49],can:49,candid:31,cbetascor:41,cbpackingscor:41,ccd:32,chain:26,changelog:3,check:33,clashscor:41,closer:34,cmake:[1,2,4,16],code:37,command:13,compound:[5,7],configur:51,construct:40,constructor:50,contain:6,contribut:[8,53],conveni:40,cooler:34,core:12,creat:[1,25],data:[26,37],databas:26,defin:[26,27],definit:4,depend:[2,51],detect:33,develop:17,dihedr:27,directori:16,distinguish:21,disulfid:44,docker:5,document:[4,8,17,19,54],entri:51,environ:40,evalu:44,everyth:11,exampl:[31,37],execut:[1,5],exisit:37,extend:29,featur:[8,26],file:[11,37],find:26,finder:28,fit:32,forcefield:25,fragment:26,frame:45,from:43,gap:[29,32],gener:[25,34],geometr:26,geometri:9,get:[18,49],git:16,graph:[10,46],group:49,handl:[21,23,29,31,35],have:1,hbondscor:41,header:37,helper:11,hook:16,how:[8,49],imag:5,instal:2,integr:1,introduct:[4,11,13],issu:8,keep:31,kic:32,librari:[5,7,48,51],licens:[8,20],line:13,load:[24,48],lookup:25,loop:[22,23,25,31,32,34,42],loopcandid:31,mainten:4,make:[1,2],messag:11,minim:10,model:[0,18,28,30,31,33,35,47],modul:[4,8],mol:25,molprob:33,motif:28,must:1,non:51,novo:[28,34],object:[24,34,45],optim:52,ost:25,other:43,output:1,own:[5,8],pairwis:40,pairwisescor:41,pars:13,parser:13,part:45,parti:8,particl:49,pipelin:[18,35],pm3argpars:13,portabl:37,posit:21,precomput:24,profil:14,promod3:[0,2,4,5,6,8,12,16,18,19,37],protein:30,psipredpredict:26,punch:33,quick:8,raw:35,reconstruct:36,reducedscor:41,refer:38,registri:5,relax:32,releas:3,repres:[22,49],rigid:[28,45],ring:33,rotam:[46,48,49,50,51],rotamerconstructor:50,rotamerid:49,run:[1,2,5,18],runtim:14,sampl:27,sampler:[27,34],score:[31,40,42,43,49,50],scorer:[8,34,39,41],script:[1,5,8],scwrl3:[43,49],scwrl4:49,sequenc:26,setcompoundschemlib:15,setup:16,share:[4,8,11],sidechain:[0,36,47,49],sidechainreconstructiondata:36,sidechainreconstructor:36,singular:7,smallest:49,specif:50,ssagreementscor:41,stage:16,start:[8,18],step:35,structur:[16,26],subclass:1,subrotam:52,system:25,test:[1,4,8,11],test_act:1,third:8,torsion:27,torsionscor:41,track:31,triplet:27,type:51,unit:[1,4,8],user:54,vina:49,write:8,your:8}}) \ No newline at end of file +Search.setIndex({envversion:50,filenames:["actions/index","actions/index_dev","buildsystem","changelog","cmake/index","container/docker","container/index","container/singularity","contributing","core/geometry","core/graph_minimizer","core/helper","core/index","core/pm3argparse","core/runtime_profiling","core/setcompoundschemlib","dev_setup","developers","gettingstarted","index","license","loop/all_atom","loop/backbone","loop/index","loop/load_loop_objects","loop/mm_system_creation","loop/structure_db","loop/torsion_sampler","modelling/algorithms","modelling/gap_handling","modelling/index","modelling/loop_candidates","modelling/loop_closing","modelling/model_checking","modelling/monte_carlo","modelling/pipeline","modelling/sidechain_reconstruction","portableIO","references","scoring/all_atom_scorers","scoring/backbone_score_env","scoring/backbone_scorers","scoring/index","scoring/other_scoring_functions","sidechain/disulfid","sidechain/frame","sidechain/graph","sidechain/index","sidechain/loading","sidechain/rotamer","sidechain/rotamer_constructor","sidechain/rotamer_lib","sidechain/subrotamer_optimizer","user_contributions","users"],objects:{"":{"--backbone-independent":[0,7,1,"cmdoption--backbone-independent"],"--energy_function":[0,7,1,"cmdoption--energy_function"],"--keep-sidechains":[0,7,1,"cmdoption--keep-sidechains"],"--no-disulfids":[0,7,1,"cmdoption--no-disulfids"],"--no-subrotamer-optimization":[0,7,1,"cmdoption--no-subrotamer-optimization"],"--rigid-rotamers":[0,7,1,"cmdoption--rigid-rotamers"],"-f":[0,7,1,"cmdoption-f"],"-i":[0,7,1,"cmdoption-i"],"-k":[0,7,1,"cmdoption-k"],"-n":[0,7,1,"cmdoption-n"],"-r":[0,7,1,"cmdoption-r"],"-s":[0,7,1,"cmdoption-s"],"command:add_doc_dependency":[4,0,1,""],"command:add_doc_source":[4,0,1,""],"command:convert_module_data":[4,0,1,""],"command:module":[4,0,1,""],"command:pm_action":[4,0,1,""],"command:promod3_unittest":[4,0,1,""],"command:pymod":[4,0,1,""],test_actions:[1,2,0,"-"]},"promod3.core":{ConstructAtomPos:[9,1,1,""],ConstructCBetaPos:[9,1,1,""],ConstructCTerminalOxygens:[9,1,1,""],EvaluateGromacsPosRule:[9,1,1,""],GraphMinimizer:[10,3,1,""],RotationAroundLine:[9,1,1,""],StaticRuntimeProfiler:[14,3,1,""],StemCoords:[9,3,1,""],StemPairOrientation:[9,3,1,""],helper:[11,2,0,"-"],pm3argparse:[13,2,0,"-"]},"promod3.core.GraphMinimizer":{AStarSolve:[10,4,1,""],AddEdge:[10,4,1,""],AddNode:[10,4,1,""],ApplyDEE:[10,4,1,""],ApplyEdgeDecomposition:[10,4,1,""],MCSolve:[10,4,1,""],NaiveSolve:[10,4,1,""],Prune:[10,4,1,""],Reset:[10,4,1,""],TreeSolve:[10,4,1,""]},"promod3.core.StaticRuntimeProfiler":{Clear:[14,5,1,""],IsEnabled:[14,5,1,""],PrintSummary:[14,5,1,""],Start:[14,5,1,""],StartScoped:[14,5,1,""],Stop:[14,5,1,""]},"promod3.core.StemCoords":{c_coord:[9,6,1,""],ca_coord:[9,6,1,""],n_coord:[9,6,1,""]},"promod3.core.StemPairOrientation":{angle_four:[9,6,1,""],angle_one:[9,6,1,""],angle_three:[9,6,1,""],angle_two:[9,6,1,""],distance:[9,6,1,""]},"promod3.core.helper":{FileExists:[11,1,1,""],FileExtension:[11,1,1,""],FileGzip:[11,1,1,""],MsgErrorAndExit:[11,1,1,""]},"promod3.core.pm3argparse":{PM3ArgumentParser:[13,3,1,""]},"promod3.core.pm3argparse.PM3ArgumentParser":{AddAlignment:[13,4,1,""],AddFragments:[13,4,1,""],AddProfile:[13,4,1,""],AddStructure:[13,4,1,""],AssembleParser:[13,4,1,""],Parse:[13,4,1,""],__init__:[13,4,1,""],action:[13,6,1,""]},"promod3.loop":{AllAtomEnv:[21,3,1,""],AllAtomEnvPositions:[21,3,1,""],AllAtomPositions:[21,3,1,""],AminoAcidAtom:[21,3,1,""],AminoAcidHydrogen:[21,3,1,""],AminoAcidLookup:[21,3,1,""],BackboneList:[22,3,1,""],CoordInfo:[26,3,1,""],ForcefieldAminoAcid:[25,3,1,""],ForcefieldBondInfo:[25,3,1,""],ForcefieldConnectivity:[25,3,1,""],ForcefieldHarmonicAngleInfo:[25,3,1,""],ForcefieldHarmonicImproperInfo:[25,3,1,""],ForcefieldLJPairInfo:[25,3,1,""],ForcefieldLookup:[25,3,1,""],ForcefieldPeriodicDihedralInfo:[25,3,1,""],ForcefieldUreyBradleyAngleInfo:[25,3,1,""],FragDB:[26,3,1,""],Fragger:[26,3,1,""],FraggerMap:[26,3,1,""],FragmentInfo:[26,3,1,""],LoadFragDB:[24,4,1,""],LoadStructureDB:[24,4,1,""],LoadTorsionSampler:[24,4,1,""],LoadTorsionSamplerCoil:[24,4,1,""],LoadTorsionSamplerExtended:[24,4,1,""],LoadTorsionSamplerHelical:[24,4,1,""],MmSystemCreator:[25,3,1,""],PsipredPrediction:[26,3,1,""],StructureDB:[26,3,1,""],StructureDBDataType:[26,3,1,""],TorsionSampler:[27,3,1,""]},"promod3.loop.AllAtomEnv":{ClearEnvironment:[21,4,1,""],GetAllAtomPositions:[21,4,1,""],GetEnvironment:[21,4,1,""],GetSeqres:[21,4,1,""],SetEnvironment:[21,4,1,""],SetInitialEnvironment:[21,4,1,""]},"promod3.loop.AllAtomEnvPositions":{all_pos:[21,6,1,""],res_indices:[21,6,1,""]},"promod3.loop.AllAtomPositions":{AllAtomPositions:[21,4,1,""],ClearPos:[21,4,1,""],ClearResidue:[21,4,1,""],Copy:[21,4,1,""],Extract:[21,4,1,""],ExtractBackbone:[21,4,1,""],GetAA:[21,4,1,""],GetFirstIndex:[21,4,1,""],GetIndex:[21,4,1,""],GetLastIndex:[21,4,1,""],GetNumAtoms:[21,4,1,""],GetNumResidues:[21,4,1,""],GetOmegaTorsion:[21,4,1,""],GetPhiTorsion:[21,4,1,""],GetPos:[21,4,1,""],GetPsiTorsion:[21,4,1,""],GetSequence:[21,4,1,""],InsertInto:[21,4,1,""],IsAllSet:[21,4,1,""],IsAnySet:[21,4,1,""],IsSet:[21,4,1,""],SetPos:[21,4,1,""],SetResidue:[21,4,1,""],ToEntity:[21,4,1,""]},"promod3.loop.AminoAcidLookup":{GetAA:[21,5,1,""],GetAAA:[21,5,1,""],GetAAH:[21,5,1,""],GetAnchorAtomIndex:[21,5,1,""],GetAtomName:[21,5,1,""],GetAtomNameAmber:[21,5,1,""],GetAtomNameCharmm:[21,5,1,""],GetElement:[21,5,1,""],GetH1Index:[21,5,1,""],GetH2Index:[21,5,1,""],GetH3Index:[21,5,1,""],GetHNIndex:[21,5,1,""],GetHydrogenIndex:[21,5,1,""],GetIndex:[21,5,1,""],GetMaxNumAtoms:[21,5,1,""],GetMaxNumHydrogens:[21,5,1,""],GetNumAtoms:[21,5,1,""],GetNumHydrogens:[21,5,1,""],GetOLC:[21,5,1,""]},"promod3.loop.BackboneList":{ApplyTransform:[22,4,1,""],BackboneList:[22,4,1,""],CARMSD:[22,4,1,""],Copy:[22,4,1,""],Extract:[22,4,1,""],GetAA:[22,4,1,""],GetBounds:[22,4,1,""],GetC:[22,4,1,""],GetCA:[22,4,1,""],GetCB:[22,4,1,""],GetN:[22,4,1,""],GetO:[22,4,1,""],GetOLC:[22,4,1,""],GetOmegaTorsion:[22,4,1,""],GetPhiTorsion:[22,4,1,""],GetPsiTorsion:[22,4,1,""],GetSequence:[22,4,1,""],GetTransform:[22,4,1,""],InsertInto:[22,4,1,""],MinCADistance:[22,4,1,""],RMSD:[22,4,1,""],ReconstructCBetaPositions:[22,4,1,""],ReconstructCStemOxygen:[22,4,1,""],ReconstructOxygenPositions:[22,4,1,""],ReplaceFragment:[22,4,1,""],RotateAroundOmegaTorsion:[22,4,1,""],RotateAroundPhiPsiTorsion:[22,4,1,""],RotateAroundPhiTorsion:[22,4,1,""],RotateAroundPsiTorsion:[22,4,1,""],Set:[22,4,1,""],SetAA:[22,4,1,""],SetAroundOmegaTorsion:[22,4,1,""],SetAroundPhiPsiTorsion:[22,4,1,""],SetAroundPhiTorsion:[22,4,1,""],SetAroundPsiTorsion:[22,4,1,""],SetBackrub:[22,4,1,""],SetC:[22,4,1,""],SetCA:[22,4,1,""],SetCB:[22,4,1,""],SetN:[22,4,1,""],SetO:[22,4,1,""],SetOLC:[22,4,1,""],SetSequence:[22,4,1,""],SuperposeOnto:[22,4,1,""],ToDensity:[22,4,1,""],ToEntity:[22,4,1,""],TransOmegaTorsions:[22,4,1,""],__len__:[22,4,1,""],append:[22,4,1,""],clear:[22,4,1,""],empty:[22,4,1,""],resize:[22,4,1,""]},"promod3.loop.CoordInfo":{chain_name:[26,6,1,""],id:[26,6,1,""],offset:[26,6,1,""],shift:[26,6,1,""],size:[26,6,1,""],start_resnum:[26,6,1,""]},"promod3.loop.ForcefieldBondInfo":{bond_length:[25,6,1,""],force_constant:[25,6,1,""],index_one:[25,6,1,""],index_two:[25,6,1,""]},"promod3.loop.ForcefieldConnectivity":{harmonic_angles:[25,6,1,""],harmonic_bonds:[25,6,1,""],harmonic_impropers:[25,6,1,""],lj_pairs:[25,6,1,""],periodic_dihedrals:[25,6,1,""],periodic_impropers:[25,6,1,""],urey_bradley_angles:[25,6,1,""]},"promod3.loop.ForcefieldHarmonicAngleInfo":{angle:[25,6,1,""],force_constant:[25,6,1,""],index_one:[25,6,1,""],index_three:[25,6,1,""],index_two:[25,6,1,""]},"promod3.loop.ForcefieldHarmonicImproperInfo":{angle:[25,6,1,""],force_constant:[25,6,1,""],index_four:[25,6,1,""],index_one:[25,6,1,""],index_three:[25,6,1,""],index_two:[25,6,1,""]},"promod3.loop.ForcefieldLJPairInfo":{epsilon:[25,6,1,""],index_one:[25,6,1,""],index_two:[25,6,1,""],sigma:[25,6,1,""]},"promod3.loop.ForcefieldLookup":{GetAA:[25,4,1,""],GetCharges:[25,4,1,""],GetDefault:[25,5,1,""],GetDisulfidConnectivity:[25,4,1,""],GetEpsilons:[25,4,1,""],GetFudgeLJ:[25,4,1,""],GetFudgeQQ:[25,4,1,""],GetHeavyIndex:[25,4,1,""],GetHydrogenIndex:[25,4,1,""],GetInternalConnectivity:[25,4,1,""],GetMasses:[25,4,1,""],GetNumAtoms:[25,4,1,""],GetOXTIndex:[25,4,1,""],GetPeptideBoundConnectivity:[25,4,1,""],GetSigmas:[25,4,1,""],Load:[25,5,1,""],LoadCHARMM:[25,5,1,""],LoadPortable:[25,5,1,""],Save:[25,4,1,""],SavePortable:[25,4,1,""],SetCharges:[25,4,1,""],SetDefault:[25,5,1,""],SetDisulfidConnectivity:[25,4,1,""],SetEpsilons:[25,4,1,""],SetFudgeLJ:[25,4,1,""],SetFudgeQQ:[25,4,1,""],SetInternalConnectivity:[25,4,1,""],SetMasses:[25,4,1,""],SetPeptideBoundConnectivity:[25,4,1,""],SetSigmas:[25,4,1,""]},"promod3.loop.ForcefieldPeriodicDihedralInfo":{force_constant:[25,6,1,""],index_four:[25,6,1,""],index_one:[25,6,1,""],index_three:[25,6,1,""],index_two:[25,6,1,""],multiplicity:[25,6,1,""],phase:[25,6,1,""]},"promod3.loop.ForcefieldUreyBradleyAngleInfo":{angle:[25,6,1,""],angle_force_constant:[25,6,1,""],bond_force_constant:[25,6,1,""],bond_length:[25,6,1,""],index_one:[25,6,1,""],index_three:[25,6,1,""],index_two:[25,6,1,""]},"promod3.loop.FragDB":{AddFragments:[26,4,1,""],GetAngularBinSize:[26,4,1,""],GetDistBinSize:[26,4,1,""],GetNumFragments:[26,4,1,""],GetNumStemPairs:[26,4,1,""],HasFragLength:[26,4,1,""],Load:[26,5,1,""],LoadPortable:[26,5,1,""],MaxFragLength:[26,4,1,""],PrintStatistics:[26,4,1,""],Save:[26,4,1,""],SavePortable:[26,4,1,""],SearchDB:[26,4,1,""]},"promod3.loop.Fragger":{AddSSAgreeParameters:[26,4,1,""],AddSeqIDParameters:[26,4,1,""],AddSeqSimParameters:[26,4,1,""],AddSequenceProfileParameters:[26,4,1,""],AddStructureProfileParameters:[26,4,1,""],AddTorsionProbabilityParameters:[26,4,1,""],Fill:[26,4,1,""],GetFragmentInfo:[26,4,1,""],GetScore:[26,4,1,""],__getitem__:[26,4,1,""],__len__:[26,4,1,""]},"promod3.loop.FraggerMap":{Contains:[26,4,1,""],Load:[26,4,1,""],LoadBB:[26,4,1,""],Save:[26,4,1,""],SaveBB:[26,4,1,""],__getitem__:[26,4,1,""],__setitem__:[26,4,1,""]},"promod3.loop.FragmentInfo":{chain_index:[26,6,1,""],length:[26,6,1,""],offset:[26,6,1,""]},"promod3.loop.MmSystemCreator":{ExtractLoopPositions:[25,4,1,""],GetCpuPlatformSupport:[25,4,1,""],GetDisulfidBridges:[25,4,1,""],GetForcefieldAminoAcids:[25,4,1,""],GetIndexing:[25,4,1,""],GetLoopLengths:[25,4,1,""],GetLoopStartIndices:[25,4,1,""],GetNumLoopResidues:[25,4,1,""],GetNumResidues:[25,4,1,""],GetSimulation:[25,4,1,""],SetCpuPlatformSupport:[25,4,1,""],SetupSystem:[25,4,1,""],UpdatePositions:[25,4,1,""]},"promod3.loop.PsipredPrediction":{Add:[26,4,1,""],Extract:[26,4,1,""],FromHHM:[26,4,1,""],FromHoriz:[26,4,1,""],GetConfidence:[26,4,1,""],GetConfidences:[26,4,1,""],GetPrediction:[26,4,1,""],GetPredictions:[26,4,1,""],PsipredPrediction:[26,4,1,""],__len__:[26,4,1,""]},"promod3.loop.StructureDB":{AddCoordinates:[26,4,1,""],GenerateStructureProfile:[26,4,1,""],GetBackboneList:[26,4,1,""],GetCoordIdx:[26,4,1,""],GetCoordInfo:[26,4,1,""],GetDSSPStates:[26,4,1,""],GetDihedralAngles:[26,4,1,""],GetNumCoords:[26,4,1,""],GetResidueDepths:[26,4,1,""],GetSequence:[26,4,1,""],GetSequenceProfile:[26,4,1,""],GetSolventAccessibilitites:[26,4,1,""],GetStructureProfile:[26,4,1,""],GetSubDB:[26,4,1,""],HasData:[26,4,1,""],Load:[26,5,1,""],LoadPortable:[26,5,1,""],PrintStatistics:[26,4,1,""],RemoveCoordinates:[26,4,1,""],Save:[26,4,1,""],SavePortable:[26,4,1,""],SetStructureProfile:[26,4,1,""]},"promod3.loop.TorsionSampler":{Draw:[27,4,1,""],DrawPhiGivenPsi:[27,4,1,""],DrawPsiGivenPhi:[27,4,1,""],ExtractStatistics:[27,4,1,""],GetBinSize:[27,4,1,""],GetBinsPerDimension:[27,4,1,""],GetHistogramIndex:[27,4,1,""],GetHistogramIndices:[27,4,1,""],GetPhiProbabilityGivenPsi:[27,4,1,""],GetProbability:[27,4,1,""],GetPsiProbabilityGivenPhi:[27,4,1,""],Load:[27,5,1,""],LoadPortable:[27,5,1,""],Save:[27,4,1,""],SavePortable:[27,4,1,""],UpdateDistributions:[27,4,1,""]},"promod3.modelling":{AddModellingIssue:[35,1,1,""],AllAtomRelaxer:[32,3,1,""],BackboneRelaxer:[32,3,1,""],BuildFromRawModel:[35,1,1,""],BuildRawModel:[35,1,1,""],BuildSidechains:[35,1,1,""],CCD:[32,3,1,""],CCDCloser:[34,3,1,""],CTerminalCloser:[34,3,1,""],CheckFinalModel:[35,1,1,""],ClearGaps:[29,1,1,""],CloseGaps:[35,1,1,""],CloseLargeDeletions:[35,1,1,""],CloseSmallDeletions:[35,1,1,""],CloserBase:[34,3,1,""],CoolerBase:[34,3,1,""],CountEnclosedGaps:[29,1,1,""],CountEnclosedInsertions:[29,1,1,""],DeNovoCloser:[34,3,1,""],DirtyCCDCloser:[34,3,1,""],ExponentialCooler:[34,3,1,""],FillLoopsByDatabase:[35,1,1,""],FillLoopsByMonteCarlo:[35,1,1,""],FilterCandidates:[33,1,1,""],FilterCandidatesWithSC:[33,1,1,""],FindMotifs:[28,4,1,""],FraggerHandle:[28,3,1,""],FragmentSampler:[34,3,1,""],FullGapExtender:[29,3,1,""],GapExtender:[29,3,1,""],GenerateDeNovoTrajectories:[28,1,1,""],GetRingPunches:[33,1,1,""],GetRings:[33,1,1,""],HasRingPunches:[33,1,1,""],InsertLoop:[35,1,1,""],InsertLoopClearGaps:[29,1,1,""],IsAllAtomScoringSetUp:[35,1,1,""],IsBackboneScoringSetUp:[35,1,1,""],KIC:[32,3,1,""],KICCloser:[34,3,1,""],LinearScorer:[34,3,1,""],LoopCandidates:[31,3,1,""],MergeGaps:[29,1,1,""],MergeGapsByDistance:[35,1,1,""],MergeMHandle:[35,1,1,""],MinimizeModelEnergy:[35,1,1,""],ModelTermini:[35,1,1,""],ModellingHandle:[35,3,1,""],ModellingIssue:[35,3,1,""],MotifMatch:[28,3,1,""],MotifQuery:[28,3,1,""],NTerminalCloser:[34,3,1,""],PhiPsiSampler:[34,3,1,""],ReconstructSidechains:[36,1,1,""],RemoveTerminalGaps:[35,1,1,""],ReorderGaps:[35,1,1,""],ReportMolProbityScores:[33,1,1,""],RigidBlocks:[28,4,1,""],RunMolProbity:[33,1,1,""],RunMolProbityEntity:[33,1,1,""],SampleMonteCarlo:[34,1,1,""],SamplerBase:[34,3,1,""],ScoreContainer:[31,3,1,""],ScorerBase:[34,3,1,""],ScoringGapExtender:[29,3,1,""],ScoringWeights:[31,3,1,""],SetFraggerHandles:[35,1,1,""],SetPsipredPredictions:[35,1,1,""],SetSequenceProfiles:[35,1,1,""],SetupDefaultAllAtomScoring:[35,1,1,""],SetupDefaultBackboneScoring:[35,1,1,""],ShiftExtension:[29,3,1,""],SidechainReconstructionData:[36,3,1,""],SidechainReconstructor:[36,3,1,""],SoftSampler:[34,3,1,""],StructuralGap:[29,3,1,""],StructuralGapList:[29,3,1,""]},"promod3.modelling.AllAtomRelaxer":{GetSystemCreator:[32,4,1,""],Run:[32,4,1,""],UpdatePositions:[32,4,1,""]},"promod3.modelling.BackboneRelaxer":{AddCARestraint:[32,4,1,""],AddCBRestraint:[32,4,1,""],AddCRestraint:[32,4,1,""],AddNRestraint:[32,4,1,""],AddORestraint:[32,4,1,""],GetNonBondedCutoff:[32,4,1,""],Run:[32,4,1,""],SetNonBondedCutoff:[32,4,1,""]},"promod3.modelling.CCD":{CCD:[32,4,1,""],Close:[32,4,1,""]},"promod3.modelling.CCDCloser":{Close:[34,4,1,""]},"promod3.modelling.CTerminalCloser":{Close:[34,4,1,""]},"promod3.modelling.CloserBase":{Close:[34,4,1,""]},"promod3.modelling.CoolerBase":{GetTemperature:[34,4,1,""],Reset:[34,4,1,""]},"promod3.modelling.DeNovoCloser":{Close:[34,4,1,""]},"promod3.modelling.DirtyCCDCloser":{Close:[34,4,1,""]},"promod3.modelling.ExponentialCooler":{GetTemperature:[34,4,1,""],Reset:[34,4,1,""]},"promod3.modelling.FraggerHandle":{Get:[28,4,1,""],GetList:[28,4,1,""],LoadCached:[28,4,1,""],SaveCached:[28,4,1,""]},"promod3.modelling.FragmentSampler":{Initialize:[34,4,1,""],ProposeStep:[34,4,1,""]},"promod3.modelling.FullGapExtender":{Extend:[29,4,1,""]},"promod3.modelling.GapExtender":{Extend:[29,4,1,""]},"promod3.modelling.KIC":{Close:[32,4,1,""],KIC:[32,4,1,""]},"promod3.modelling.KICCloser":{Close:[34,4,1,""]},"promod3.modelling.LinearScorer":{GetScore:[34,4,1,""]},"promod3.modelling.LoopCandidates":{Add:[31,4,1,""],AddFragmentInfo:[31,4,1,""],ApplyCCD:[31,4,1,""],ApplyKIC:[31,4,1,""],CalculateAllAtomScores:[31,4,1,""],CalculateBackboneScores:[31,4,1,""],CalculateSequenceProfileScores:[31,4,1,""],CalculateStemRMSDs:[31,4,1,""],CalculateStructureProfileScores:[31,4,1,""],Extract:[31,4,1,""],FillFromDatabase:[31,5,1,""],FillFromMonteCarloSampler:[31,5,1,""],GetClusteredCandidates:[31,4,1,""],GetClusters:[31,4,1,""],GetFragmentInfo:[31,4,1,""],GetLargestCluster:[31,4,1,""],GetSequence:[31,4,1,""],HasFragmentInfos:[31,4,1,""],Remove:[31,4,1,""]},"promod3.modelling.ModellingHandle":{Copy:[35,4,1,""],all_atom_scorer:[35,6,1,""],all_atom_scorer_env:[35,6,1,""],all_atom_sidechain_env:[35,6,1,""],backbone_scorer:[35,6,1,""],backbone_scorer_env:[35,6,1,""],fragger_handles:[35,6,1,""],gaps:[35,6,1,""],model:[35,6,1,""],modelling_issues:[35,6,1,""],profiles:[35,6,1,""],psipred_predictions:[35,6,1,""],seqres:[35,6,1,""],sidechain_reconstructor:[35,6,1,""]},"promod3.modelling.ModellingIssue":{Severity:[35,3,1,""],is_major:[35,4,1,""],residue_list:[35,6,1,""],severity:[35,6,1,""],text:[35,6,1,""]},"promod3.modelling.ModellingIssue.Severity":{MAJOR:[35,6,1,""],MINOR:[35,6,1,""]},"promod3.modelling.MotifMatch":{alignment:[28,6,1,""],mat:[28,6,1,""],query_idx:[28,6,1,""]},"promod3.modelling.MotifQuery":{GetIdentifiers:[28,4,1,""],GetN:[28,4,1,""],GetPositions:[28,4,1,""],Load:[28,5,1,""],Save:[28,4,1,""]},"promod3.modelling.NTerminalCloser":{Close:[34,4,1,""]},"promod3.modelling.PhiPsiSampler":{Initialize:[34,4,1,""],ProposeStep:[34,4,1,""]},"promod3.modelling.SamplerBase":{Initialize:[34,4,1,""],ProposeStep:[34,4,1,""]},"promod3.modelling.ScoreContainer":{Contains:[31,4,1,""],Copy:[31,4,1,""],Extend:[31,4,1,""],Extract:[31,4,1,""],Get:[31,4,1,""],GetNumCandidates:[31,4,1,""],IsEmpty:[31,4,1,""],LinearCombine:[31,4,1,""],Set:[31,4,1,""]},"promod3.modelling.ScorerBase":{GetScore:[34,4,1,""]},"promod3.modelling.ScoringGapExtender":{Extend:[29,4,1,""]},"promod3.modelling.ScoringWeights":{GetAllAtomScoringKeys:[31,5,1,""],GetAllAtomWeights:[31,5,1,""],GetBackboneScoringKeys:[31,5,1,""],GetBackboneWeights:[31,5,1,""],GetSequenceProfileScoresKey:[31,5,1,""],GetStemRMSDsKey:[31,5,1,""],GetStructureProfileScoresKey:[31,5,1,""],GetWeights:[31,5,1,""],SetAllAtomScoringKeys:[31,5,1,""],SetBackboneScoringKeys:[31,5,1,""],SetSequenceProfileScoresKey:[31,5,1,""],SetStemRMSDsKey:[31,5,1,""],SetStructureProfileScoresKey:[31,5,1,""],SetWeights:[31,5,1,""]},"promod3.modelling.ShiftExtension":{Extend:[29,4,1,""]},"promod3.modelling.SidechainReconstructionData":{disulfid_bridges:[36,6,1,""],env_pos:[36,6,1,""],is_c_ter:[36,6,1,""],is_n_ter:[36,6,1,""],loop_lengths:[36,6,1,""],loop_start_indices:[36,6,1,""],rotamer_res_indices:[36,6,1,""]},"promod3.modelling.SidechainReconstructor":{AttachEnvironment:[36,4,1,""],Reconstruct:[36,4,1,""]},"promod3.modelling.SoftSampler":{Initialize:[34,4,1,""],ProposeStep:[34,4,1,""]},"promod3.modelling.StructuralGap":{Copy:[29,4,1,""],ExtendAtCTerm:[29,4,1,""],ExtendAtNTerm:[29,4,1,""],GetChain:[29,4,1,""],GetChainIndex:[29,4,1,""],GetChainName:[29,4,1,""],GetLength:[29,4,1,""],IsCTerminal:[29,4,1,""],IsNTerminal:[29,4,1,""],IsTerminal:[29,4,1,""],ShiftCTerminal:[29,4,1,""],after:[29,6,1,""],before:[29,6,1,""],full_seq:[29,6,1,""],length:[29,6,1,""],seq:[29,6,1,""]},"promod3.scoring":{AllAtomClashScorer:[39,3,1,""],AllAtomInteractionScorer:[39,3,1,""],AllAtomOverallScorer:[39,3,1,""],AllAtomPackingScorer:[39,3,1,""],AllAtomScorer:[39,3,1,""],BackboneOverallScorer:[41,3,1,""],BackboneScoreEnv:[40,3,1,""],BackboneScorer:[41,3,1,""],CBPackingScorer:[41,3,1,""],CBetaScorer:[41,3,1,""],ClashScorer:[41,3,1,""],ConstraintFunction:[40,3,1,""],ContactFunction:[40,3,1,""],DiscoContainer:[40,3,1,""],HBondScorer:[41,3,1,""],LoadAllAtomInteractionScorer:[39,1,1,""],LoadAllAtomPackingScorer:[39,1,1,""],LoadCBPackingScorer:[41,1,1,""],LoadCBetaScorer:[41,1,1,""],LoadDefaultAllAtomOverallScorer:[39,1,1,""],LoadDefaultBackboneOverallScorer:[41,1,1,""],LoadHBondScorer:[41,1,1,""],LoadReducedScorer:[41,1,1,""],LoadSSAgreementScorer:[41,1,1,""],LoadTorsionScorer:[41,1,1,""],PairwiseFunction:[40,3,1,""],PairwiseFunctionType:[40,3,1,""],PairwiseScorer:[41,3,1,""],ReducedScorer:[41,3,1,""],SCWRL3DisulfidScore:[43,4,1,""],SCWRL3PairwiseScore:[43,4,1,""],SSAgreementScorer:[41,3,1,""],TorsionScorer:[41,3,1,""]},"promod3.scoring.AllAtomClashScorer":{DoExternalScores:[39,4,1,""],DoInternalScores:[39,4,1,""],DoNormalize:[39,4,1,""]},"promod3.scoring.AllAtomInteractionScorer":{DoExternalScores:[39,4,1,""],DoInternalScores:[39,4,1,""],DoNormalize:[39,4,1,""],Load:[39,5,1,""],LoadPortable:[39,5,1,""],Save:[39,4,1,""],SavePortable:[39,4,1,""],SetEnergy:[39,4,1,""]},"promod3.scoring.AllAtomOverallScorer":{AttachEnvironment:[39,4,1,""],CalculateLinearCombination:[39,4,1,""],Contains:[39,4,1,""],Get:[39,4,1,""],__getitem__:[39,4,1,""],__setitem__:[39,4,1,""]},"promod3.scoring.AllAtomPackingScorer":{DoNormalize:[39,4,1,""],Load:[39,5,1,""],LoadPortable:[39,5,1,""],Save:[39,4,1,""],SavePortable:[39,4,1,""],SetEnergy:[39,4,1,""]},"promod3.scoring.AllAtomScorer":{AttachEnvironment:[39,4,1,""],CalculateScore:[39,4,1,""],CalculateScoreProfile:[39,4,1,""]},"promod3.scoring.BackboneOverallScorer":{AttachEnvironment:[41,4,1,""],Calculate:[41,4,1,""],CalculateLinearCombination:[41,4,1,""],Contains:[41,4,1,""],Get:[41,4,1,""],__getitem__:[41,4,1,""],__setitem__:[41,4,1,""]},"promod3.scoring.BackboneScoreEnv":{AddPairwiseFunction:[40,4,1,""],ApplyPairwiseFunction:[40,4,1,""],ClearEnvironment:[40,4,1,""],Copy:[40,4,1,""],GetSeqres:[40,4,1,""],Pop:[40,4,1,""],SetEnvironment:[40,4,1,""],SetInitialEnvironment:[40,4,1,""],SetPsipredPrediction:[40,4,1,""],Stash:[40,4,1,""]},"promod3.scoring.BackboneScorer":{AttachEnvironment:[41,4,1,""],CalculateScore:[41,4,1,""],CalculateScoreProfile:[41,4,1,""]},"promod3.scoring.CBPackingScorer":{DoNormalize:[41,4,1,""],Load:[41,5,1,""],LoadPortable:[41,5,1,""],Save:[41,4,1,""],SavePortable:[41,4,1,""],SetEnergy:[41,4,1,""]},"promod3.scoring.CBetaScorer":{DoExternalScores:[41,4,1,""],DoInternalScores:[41,4,1,""],DoNormalize:[41,4,1,""],Load:[41,5,1,""],LoadPortable:[41,5,1,""],Save:[41,4,1,""],SavePortable:[41,4,1,""],SetEnergy:[41,4,1,""]},"promod3.scoring.ClashScorer":{DoExternalScores:[41,4,1,""],DoInternalScores:[41,4,1,""],DoNormalize:[41,4,1,""]},"promod3.scoring.DiscoContainer":{AddStructuralInfo:[40,1,1,""],AttachConstraints:[40,1,1,""]},"promod3.scoring.HBondScorer":{DoExternalScores:[41,4,1,""],DoInternalScores:[41,4,1,""],DoNormalize:[41,4,1,""],Load:[41,5,1,""],LoadPortable:[41,5,1,""],Save:[41,4,1,""],SavePortable:[41,4,1,""],SetEnergy:[41,4,1,""]},"promod3.scoring.PairwiseFunction":{Score:[40,4,1,""]},"promod3.scoring.PairwiseScorer":{DoExternalScores:[41,4,1,""],DoInternalScores:[41,4,1,""],DoNormalize:[41,4,1,""]},"promod3.scoring.ReducedScorer":{DoExternalScores:[41,4,1,""],DoInternalScores:[41,4,1,""],DoNormalize:[41,4,1,""],Load:[41,5,1,""],LoadPortable:[41,5,1,""],Save:[41,4,1,""],SavePortable:[41,4,1,""],SetEnergy:[41,4,1,""]},"promod3.scoring.SSAgreementScorer":{DoNormalize:[41,4,1,""],Load:[41,5,1,""],LoadPortable:[41,5,1,""],Save:[41,4,1,""],SavePortable:[41,4,1,""],SetScore:[41,4,1,""]},"promod3.scoring.TorsionScorer":{DoNormalize:[41,4,1,""],Load:[41,5,1,""],LoadPortable:[41,5,1,""],Save:[41,4,1,""],SavePortable:[41,4,1,""],SetEnergy:[41,4,1,""]},"promod3.sidechain":{AAToRotID:[49,4,1,""],BBDepRotamerLib:[51,3,1,""],CreateSCWRL3Particle:[49,4,1,""],CreateSCWRL4Particle:[49,4,1,""],CreateVINAParticle:[49,4,1,""],DihedralConfiguration:[51,3,1,""],DisulfidScore:[44,4,1,""],FRMRotamer:[49,3,1,""],FRMRotamerGroup:[49,3,1,""],Frame:[45,3,1,""],FrameResidue:[45,3,1,""],GetDihedralConfiguration:[51,4,1,""],GetRotamericConfiguration:[51,4,1,""],LoadBBDepLib:[48,4,1,""],LoadLib:[48,4,1,""],PScoringFunction:[49,3,1,""],Particle:[49,3,1,""],RRMRotamer:[49,3,1,""],RRMRotamerGroup:[49,3,1,""],ReadDunbrackFile:[48,4,1,""],ResolveCysteins:[44,4,1,""],RotamerConstructor:[50,3,1,""],RotamerGraph:[46,3,1,""],RotamerID:[49,3,1,""],RotamerLib:[51,3,1,""],RotamerLibEntry:[51,3,1,""],SCWRL3RotamerConstructor:[50,3,1,""],SCWRL4ParticleType:[49,3,1,""],SCWRL4RotamerConstructor:[50,3,1,""],SubrotamerOptimizer:[52,4,1,""],TLCToRotID:[49,4,1,""],VINAParticleType:[49,3,1,""],VINARotamerConstructor:[50,3,1,""]},"promod3.sidechain.BBDepRotamerLib":{AddRotamer:[51,4,1,""],Load:[51,5,1,""],LoadPortable:[51,5,1,""],MakeStatic:[51,4,1,""],QueryLib:[51,4,1,""],Save:[51,4,1,""],SavePortable:[51,4,1,""],SetInterpolate:[51,4,1,""]},"promod3.sidechain.FRMRotamer":{AddFrameEnergy:[49,4,1,""],AddSubrotamerDefinition:[49,4,1,""],ApplyOnResidue:[49,4,1,""],GetActiveSubrotamer:[49,4,1,""],GetFrameEnergy:[49,4,1,""],GetInternalEnergy:[49,4,1,""],GetInternalEnergyPrefactor:[49,4,1,""],GetNumSubrotamers:[49,4,1,""],GetProbability:[49,4,1,""],GetSelfEnergy:[49,4,1,""],GetSubrotamerDefinition:[49,4,1,""],GetTemperature:[49,4,1,""],SetActiveSubrotamer:[49,4,1,""],SetFrameEnergy:[49,4,1,""],SetInternalEnergy:[49,4,1,""],SetInternalEnergyPrefactor:[49,4,1,""],SetProbability:[49,4,1,""],SetTemperature:[49,4,1,""],ToFrameResidue:[49,4,1,""],ToRRMRotamer:[49,4,1,""],__getitem__:[49,4,1,""],__len__:[49,4,1,""]},"promod3.sidechain.FRMRotamerGroup":{AddFrameEnergy:[49,4,1,""],ApplyOnResidue:[49,4,1,""],ApplySelfEnergyThresh:[49,4,1,""],Merge:[49,4,1,""],SetFrameEnergy:[49,4,1,""],__getitem__:[49,4,1,""],__len__:[49,4,1,""]},"promod3.sidechain.FrameResidue":{__getitem__:[45,4,1,""],__len__:[45,4,1,""]},"promod3.sidechain.Particle":{GetCollisionDistance:[49,4,1,""],GetName:[49,4,1,""],GetPos:[49,4,1,""],GetScoringFunction:[49,4,1,""],PairwiseScore:[49,4,1,""]},"promod3.sidechain.RRMRotamer":{AddFrameEnergy:[49,4,1,""],ApplyOnResidue:[49,4,1,""],GetFrameEnergy:[49,4,1,""],GetInternalEnergy:[49,4,1,""],GetInternalEnergyPrefactor:[49,4,1,""],GetProbability:[49,4,1,""],GetSelfEnergy:[49,4,1,""],SetFrameEnergy:[49,4,1,""],SetInternalEnergy:[49,4,1,""],SetInternalEnergyPrefactor:[49,4,1,""],SetProbability:[49,4,1,""],ToFrameResidue:[49,4,1,""],__getitem__:[49,4,1,""],__len__:[49,4,1,""]},"promod3.sidechain.RRMRotamerGroup":{AddFrameEnergy:[49,4,1,""],ApplyOnResidue:[49,4,1,""],ApplySelfEnergyThresh:[49,4,1,""],Merge:[49,4,1,""],SetFrameEnergy:[49,4,1,""],__getitem__:[49,4,1,""],__len__:[49,4,1,""]},"promod3.sidechain.RotamerConstructor":{AssignInternalEnergies:[50,4,1,""],ConstructBackboneFrameResidue:[50,4,1,""],ConstructRRMRotamerGroup:[50,4,1,""],ConstructSidechainFrameResidue:[50,4,1,""]},"promod3.sidechain.RotamerGraph":{CreateFromFRMList:[46,5,1,""],CreateFromRRMList:[46,5,1,""]},"promod3.sidechain.RotamerLib":{AddRotamer:[51,4,1,""],Load:[51,5,1,""],LoadPortable:[51,5,1,""],MakeStatic:[51,4,1,""],QueryLib:[51,4,1,""],Save:[51,4,1,""],SavePortable:[51,4,1,""]},"promod3.sidechain.RotamerLibEntry":{FromResidue:[51,5,1,""],IsSimilar:[51,4,1,""],SimilarDihedral:[51,4,1,""],chi1:[51,6,1,""],chi2:[51,6,1,""],chi3:[51,6,1,""],chi4:[51,6,1,""],probability:[51,6,1,""],sig1:[51,6,1,""],sig2:[51,6,1,""],sig3:[51,6,1,""],sig4:[51,6,1,""]},"promod3.sidechain.SCWRL3RotamerConstructor":{AssignInternalEnergies:[50,4,1,""]},"promod3.sidechain.SCWRL4RotamerConstructor":{AssignInternalEnergies:[50,4,1,""],ConstructFrameResidue:[50,4,1,""],ConstructFrameResidueHeuristic:[50,4,1,""]},"promod3.sidechain.VINARotamerConstructor":{AssignInternalEnergies:[50,4,1,""],ConstructFRMRotamerHeuristic:[50,4,1,""],ConstructFrameResidueHeuristic:[50,4,1,""],ConstructRRMRotamerHeuristic:[50,4,1,""]},"test_actions.ActionTestCase":{RunAction:[1,4,1,""],RunExitStatusTest:[1,4,1,""],pm_action:[1,6,1,""],pm_bin:[1,6,1,""],testPMExists:[1,4,1,""]},promod3:{SetCompoundsChemlib:[15,1,1,""],core:[12,2,0,"-"],loop:[23,2,0,"-"],modelling:[30,2,0,"-"],scoring:[42,2,0,"-"],sidechain:[47,2,0,"-"]},test_actions:{ActionTestCase:[1,3,1,""]}},objnames:{"0":["cmake","command","CMake command"],"1":["py","function","Python function"],"2":["py","module","Python module"],"3":["py","class","Python class"],"4":["py","method","Python method"],"5":["py","staticmethod","Python static method"],"6":["py","attribute","Python attribute"],"7":["std","option","option"]},objtypes:{"0":"cmake:command","1":"py:function","2":"py:module","3":"py:class","4":"py:method","5":"py:staticmethod","6":"py:attribute","7":"std:option"},terms:{"10a":36,"1ake":28,"1aki":26,"1crn":[21,23,25,26,30,31,32,34,35,36,42,47],"1crn_cut":[30,31,35],"1crna":[26,31],"1e2q":28,"1ey":8,"1eye_rec":8,"1ko5":28,"20a":36,"2iyw":28,"2jlp":0,"30a":36,"3x3":9,"655a":26,"abstract":[34,50],"boolean":[11,13,35],"break":[3,4,8,16],"byte":[10,37],"case":[0,1,5,8,13,16,22,26,27,28,29,32,34,35,36,37,41,44,47,49,50,51],"catch":26,"char":[22,37],"class":[0,1,3,5,8,9,10,12,13,14,17,20],"const":37,"default":[0,1,2,3,4,5,8,10,13,14,15,18,21,22,25,26,27,28,30,31,32,34],"enum":[26,49],"export":[8,21],"final":[8,18,26,28,30,31,35,40,42,44,46,47,49],"float":[9,10,21,22,25,26,27,28,29,31,32,33,34,35,36,37,39,40,41,43,44,49,50,51,52],"function":[0,1,3],"import":[0,1,5,8,11,13,16,18,20,21,22,23,25,26,27,28,30,31,32,34,35,36,42,47,49,50],"int":[1,9,10,11,14,21,22,24,25,26,27,28,29,31,32,33,34,35,36,37,39,40,41,45,49,50,51,52],"long":35,"new":[1,3,7,8,13,16,17,21,22,25,26,29,31,32,34,35,36,37,38,47,49],"null":26,"public":[8,37,49],"return":[1,8,9,10,11,13,14,15,21,22,24,25,26,27,28,29,31,32,33,34,35,36,37,39,40,41,43,44,45,48,49,50,51],"s\u00f6ding":38,"short":[8,16,37],"static":[8,14,21,25,26,27,28,31,36,37,39,41,46,48,51],"super":47,"switch":[8,16,40],"throw":[1,37,47,48],"true":[1,11,13,14,21,22,23,25,26,28,29,31,32,33,34,35,36,37,39,41,44,47,50],"try":[1,8,18,29,35,37,51],"void":37,"while":[1,4,8,14,20,21,25,35,37,49],__doc__:[11,13],__getitem__:[26,39,41,45,49],__init__:[1,8,13,16],__len__:[22,26,45,49],__main__:[1,8],__name__:[1,8],__setitem__:[26,39,41],_data:37,_name:4,_run:[1,4],_xml:4,a3m:[0,13],a3mtoprofil:[0,13],aa1:41,aa2:41,aa_aft:26,aa_befor:26,aa_clash:[35,39],aa_interact:[35,39],aa_pack:[35,39],aa_packing_scor:37,aa_relax_test:32,aa_res_idx:50,aa_scor:37,aa_with_rotam:47,aaa1:39,aaa2:39,aaa:[21,39],aaaaaaaa:22,aaaaggggggggggggggggggggaaaaaa:35,aafrequenc:26,aafrequenciesstruct:26,aah:21,aatorotid:49,abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz:35,abil:16,abl:[2,8],abort:[8,10,32,35],about:[1,4,8,10,26,28,35],abov:[0,1,5,8,13,16,20,22,29,31,35,37,49,51],absolut:[4,5,34],academ:8,accept:[10,13,20,31,32,34,37],acceptabl:36,acceptanc:35,acceptor:[41,49,50],access:[4,5,8,21,22,26,27,31,35,39,40,41,49],accessibl:26,accessor:26,accord:[0,5,10,16,21,22,25,26,27,28,29,31,34,35,36,39,44,47,49,50,51],accordingli:[26,40],account:[8,53],accumul:28,accur:28,accuraci:[0,28,35,38],achiev:[10,16],acknowledg:8,across:[1,51],act:[20,32],acta:38,action_name:16,action_unit_tests:1,actiontest:1,activ:[13,14,16,35,44,49,52],activat:13,active_internal_energi:52,actual:[3,8,13,16,22,26,28,34,35,36,40,41,42,50,51],actual_posit:34,actual_step:34,adapt:[8,25,26,32,34,35,38],add:[1,2,4,6,8,10,13,18,20,21,26,27,28,31,32,35,36,39,40,41,44,47,49,50,53],add_argu:11,add_custom_target:8,add_doc_depend:4,add_doc_sourc:[4,8],add_flag:28,add_subdirectori:8,addalignment:13,addcarestraint:32,addcbrestraint:32,addcoordin:26,addcrestraint:32,added:3,addedge:10,addendum:20,addfragment:[13,26],addfragmentinfo:31,addframeenergi:49,addharmonicangl:25,addharmonicbond:25,addharmonicimprop:25,adding:[3,4],addit:[3,4,11,13,14,16,20,22,23,25,26,33,37],addition:[1,4,16,20,21,25,26,28,35],addljpair:25,addmodellingissu:35,addnode:10,addnrestraint:32,addorestraint:32,addpairwisefunct:40,addperiodicdihedr:25,addperiodicimprop:25,addprofil:13,addresidu:28,address:37,addrotam:51,addseqidparamet:26,addseqsimparamet:[23,26],addsequenceprofileparamet:26,addssagreeparamet:26,addstructur:13,addstructuralinfo:40,addstructureprofileparamet:26,addsubrotamerdefinit:49,addtorsionprobabilityparamet:26,addureybradleyangl:25,admir:8,advanc:28,advantag:25,advic:[8,16],advis:20,affect:[8,22,35,49,50],after:[1,2,4,5,8,10,13,16,21,22,25,26,27,29,31,32,34,35,37,40,51],after_c_stem:22,afterward:[8,26,35],again:[2,3,8,26,28,50],against:[20,28,39],agg:27,agglom:31,ago:1,agre:20,agreement:[13,20,26,28,41],agress:[2,10],aim:19,ala:[22,27,32,47,49,50,51],ala_cb:21,ala_h1:21,ala_h:21,alanin:[3,49],alg:[23,26,35],algorithm:[3,10,22,23,26],alia:29,align:[0,13,18,26,28,30,35],alignedcuboid:22,alignment:[13,38,40],alignmenthandl:[28,35,40],alignmentlist:[0,13,35],all:[0,1,2,3,4,7,8,10,13,14,16,18,20],all_atom:[21,22,25,49],all_atom_env:21,all_atom_po:[21,50],all_atom_scor:35,all_atom_scorer_env:35,all_atom_sidechain_env:35,all_po:[21,25,32],all_scor:31,allatom:[32,35,36],allatomclashscor:35,allatominteractionscor:[35,37],allatomoverallscor:[31,35],allatompackingscor:[35,37],allatomrelax:[25,32],alleg:20,alloc:26,allow:[0,2,3,5,8,11,16,22,26,27,28,31,34,35,37,39,41,46,51],allow_multitempl:13,allow_prepro_ci:22,almost:[4,32,35],aln:[0,28,30,31,35,40],aln_sourc:13,alon:[11,20],along:[1,8,20],alongsid:20,alot:8,alpha:[9,22,41,47],alpha_bin:41,alreadi:[1,4,8,10,16,22,25,26,28,31,35,36,39,40,41,49,50,51,52],also:[1,2,4,8,11,16,20,26,27,28,31,32,33,34,35,36,44,45,46,50,51],alter:[31,34],altern:[4,5,8,31,34,35,48,50],alwai:[0,1,8,16,29,34,35,37],amber:[21,35],ambig:51,ambigu:[0,13,51],aminoacid:[21,22,25,27,41,49,51],aminoacidatom:[21,39],aminoacidhydrogen:21,aminoacidlookup:[21,25],among:31,amount:[3,18,28,51],analog:28,analysi:[32,33,38],analyt:[31,51],anchor:[9,21],ancient:15,angl:[0,9,21,22,25,26,27,31,32,33,34,35,41,47,50,51],angle:[9,22,23,25],angle_bin:41,angle_bin_s:26,angle_force_const:25,angle_four:9,angle_on:9,angle_thre:9,angle_two:9,angstrom:[26,32],ani:[0,1,4,5,8,10,13,14,15,18,20,21,22,25,26,27,28,29,31,33,34,35,36,37,39,40,41,45,47,49,50],anneal:[10,31,34],annot:20,announc:[1,8],anoth:[4,14,22,29,35,36,44],another:32,any:20,anymor:[3,10,28],anyon:[8,16],anyth:[0,2,5,8,13,14,15,28,31,32,36,39,41],anywai:8,anywher:16,apach:[3,20],apart:[1,31,35,36,39,41],appear:20,append:[0,13,22,26,27,28,35,47],appendix:20,appli:[7,10,11,16,20,22,26,28,29,31,32,34,35,36,38,40,44,47,49,51],applic:[1,20,32,50],apply:[3,15],applyccd:31,applydee:10,applyedgedecomposit:10,applykic:31,applyonresidu:[47,49],applypairwisefunct:[40,41],applysd:25,applyselfenergythresh:[47,49],applytransform:[22,28],approach:[0,2,10,26,28,35,37,44,47,50],appropri:[10,20,27,35,37,50],approx:35,approxim:25,arbitrari:[3,21,26,44],arbitrarili:34,archiv:20,arendal:38,arg:[1,4,13,49],arg_ca:21,arg_hd3:21,arg_sorted_scor:31,arginin:49,argpars:13,args:4,argument:[0,1,2,4,11,12],argumentpars:13,argv:13,aris:20,around:[1,4,8,9,16,22,31,32,35,39,40,41,51],arrai:[0,8,37],arrang:28,artifici:26,ascend:29,ask:8,asn:[49,51],asn_c:21,asn_hb2:21,asp:[21,49,51],asp_ha:21,asp_o:21,asparagin:49,aspart:51,aspartat:49,ass:34,assembl:13,assemblepars:13,assert:20,assertequ:8,assess:[39,40],assign:[3,10,22,26,31,34,39,41,50,52],assigninternalenergi:50,assignsecstruct:35,associ:[20,26,29,45],assum:[1,4,5,8,20,25,26,32,35,37,40,41,44,50],assume:8,assur:44,astar:3,astarsolv:10,atom:[3,8,9],atom_idx:[21,25],atom_nam:[21,25],atomhandl:50,atp:28,atp_at:28,atp_idx:28,atp_list:28,atp_r:28,atp_sel:28,atp_view:28,attach:[0,4,8,13,20,21,25,28,29,31,35,36,39,40,41,42],attach_view:13,attachconstraint:40,attachenviron:[31,32,34,36,39,41,42],attachview:[30,31,35],attent:[1,16],attribut:[8,13,20,26,35,36,51],author:20,authorship:20,autodock:[38,49],autom:[2,4],automat:[1,8,10,11,14,16,26,30,31,37,50,51],automatis:8,avaibl:50,avail:[1,2,5,7,8,15,16,18,20,25,26,31,34,35,40,47,49],availab:20,availabl:3,averag:[31,40,44],avg:26,avg_sampling_per_posit:28,avoid:[0,3,6,11,13,15,26,28,32,34],awai:[16,36],awar:[0,3,8,35,50],awesom:[1,8],axi:[9,22],back:[1,16,25,34],backbon:[0,3,9,18,21,22,26,27,28,29,30,31],backbone_scor:35,backbone_scorer_env:35,backbonelist:[18,21],backboneoverallscor:[28,31,34,35],backbonerelax:[32,35],backbonescor:8,backbonescoreenv:[8,28,31,34,35],backbonescoreenvlisten:8,background:[2,36],backrub:[22,38],backward:[2,37],bad:[25,35],bare:26,base:[0,3,4,5,9,11,13,20,22,23],base_target:4,baseclass:47,basel:[8,53],bashrc:8,basi:[4,8,16,28,32,34,48],basic:[1,2,8,11,16,27,34,35,47,51],basis:20,bb_dep_lib:37,bb_list:[18,21,22,23,26,29,31,32,34,35,40],bb_list_on:28,bb_list_two:28,bb_score:31,bbdeprotamerlib:[35,36,37,48,50,51],becaus:[8,16,21,28,35,40],becom:[10,51],been:[2,3,10,16,20,24,26,31,32,35,39,41,44,51],befor:[0,1,4,7,8,13,16,22,25,26,27,29,31,32,34,35,36,37,50],begin:[1,8,21,22,28,34,40],behalf:20,behav:[1,51],behaviour:[0,13,39,40,49,50,51],behind:8,believ:53,bell:8,belong:[3,4,16,21,22,26,29,31,34,35,36,39,40,41,45,49,50],belov:26,below:[0,8,20,21,25,26,28,31,32,36,37,39,41,44,49],below_thre:26,benefici:20,besid:[2,4,10,13,26],best:[4,31,35,44],best_candid:31,beta:[9,22,33,41],beta_bin:41,better:[25,31,34,35,39,41],between:[1,3,10,13,22,25,26,28,29,31,32,34,35,36,37,39,40,41,42,43,44,45,49,50,51],beyond:13,biasini2013:[19,38],biasini:38,bienert:38,big:[25,37],bilinearli:51,bin:[1,8,16,18,26,27,28,39,41,51],bin_siz:[28,51],binari:[1,4,8,16,17,25,26,27],bind:[0,3,13,20,28],bins_per_dimens:27,bioinformat:38,biol:38,biolog:38,biologi:[19,38],biophi:38,biopolym:38,bit:[1,8,16,31,35],bitwis:26,blank:8,block:3,blosum62:[13,23,26,28,40],boilerpl:20,bond:[0,3,9,22,25,26,32,33,35,36,38,41],bond_force_const:25,bond_length:[9,25],bool:[1,8,10,11,13,14,21,22,25,26,29,31,32,33,34,35,36,37,39,41,44,49,50,51],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,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54],boost_libraries:4,boost_root:2,bootstrap:[6,7],bore:34,both:[3,21,26,29,35,44,47,51],bound:[21,25,28,31,49,50],boundari:28,br_vinaparticl:49,bracket:20,bradlei:25,branch:[4,8],branchname:16,brew:4,bridg:[24,25,32,35,36],briefli:16,bring:8,broken:1,bromin:49,broyden:35,bsd:20,bug:[3,8,16],build_disulfid:36,builder:2,buildfromrawmodel:[30,35],buildrawmodel:[0,30,31,35],buildsidechain:35,buildup:[47,49],built:[4,5,25,26,40,45],bunch:[1,13,16],bundl:20,bytecod:1,c_coord:9,c_num:29,c_p_vinaparticl:[49,50],c_po:[9,22,41],c_stem:[9,23,26,29,31,32,34],c_stem_psi:34,c_str:37,c_ter:[32,50],c_vinaparticl:[49,50],ca_coord:9,ca_pairwise_function:40,ca_po:[9,22],ca_pos_on:[43,44],ca_pos_two:[43,44],ca_posit:[28,44],ca_rmsd:[23,26],cach:[2,26,28],calcul:[8,22,26,27,28,31,32,34,39,40,41,42,44,45,46,47,49,50],calculateallatomscor:31,calculatebackbonescor:31,calculatelinearcombin:[31,34,39,41],calculatescor:[39,41,42],calculatescoreprofil:[39,41],calculatesequenceprofilescor:31,calculatestemrmsd:31,calculatestructureprofilescor:31,call:[1,2,4,8,11,13,14,15,16,21,25,26,27,29,31,34,35,36,37,39,40,41,49,50,51],callabl:[13,16],calpha:35,calul:27,came:8,can:[0,1,2,3,4,5,7,8,9,10,11,13,14,15,16,18,21,22,23,25,26,27,28,29,30,31,32,34,35,36,37,39,40,41,42,44,45,46,47,48],cand:35,candid:[3,30],cannot:[0,8,13,20,25,26,27,29,35,37,39,41,48,49,50,51],canutescu2003:[32,38,49],canutescu2003b:[38,39,41,43,44],canutescu:38,cap:10,capabl:[24,30,34],captur:1,carbon:[9,22,43,49,50],carbonyl:[49,50],care:[0,8,10,31,32,35,37,41],carlo:[0,3,10,28,31,34,35,46],carmsd:[22,23,26],carri:[8,11,20],cast:37,categori:4,caus:[16,20,33],caution:21,caviti:26,cb_in_sidechain:50,cb_pack:[28,35,41],cb_packing_scor:37,cb_pairwise_function:40,cb_po:22,cb_pos_on:[43,44],cb_pos_two:[43,44],cb_posit:44,cbeta:[28,31,34,35,41,42],cbeta_scor:[37,42],cbetaenvlisten:8,cbetascor:[8,35,37],cbpackingscor:[8,35,37],ccd:[3,30,31],ccdcloser:34,center:[33,49],central:[22,27,41],centroid:31,certain:[1,2,4,8,10,16,26,27,28,29,35,37,39,40,41],certainli:1,ch1particl:49,ch2particl:49,ch3particl:49,ch_name:26,chain:[0,8,13,21,22,23,24],chain_idx:[8,21,31,34,35,36,39,40,41],chain_idx_list:36,chain_idx_on:40,chain_idx_two:40,chain_index:[26,34,39],chain_indic:40,chain_nam:[26,35],chainhandl:[21,22,29],chainid:0,chakravarti:38,chakravarty1999:[26,38],chanact:35,chanc:[8,10,35],chang:[1,3,4,5,8,10,16,20,21,27,28,29,32,34,35,36,39],change_frequ:[10,34],chapter:[29,33],charact:[13,20,26],charg:[8,20,21,25,32,49,50],charmm:[21,25,35],check:[0,1,2,3,5,8,11,13,14,16,22,25,26,30,32],check_duplicates:28,check_io:37,check_xml:8,checkbasetyp:37,checker:7,checkfinalmodel:35,checkmagicnumb:37,checkout:[8,16],checktypes:37,chem:38,chemdict_tool:5,chemdicttool:7,chemic:[5,15,21,35,39],chemistri:[35,38],chemlib:[5,7],chi1:51,chi2:51,chi3:51,chi4:51,chi:51,child:13,childclass:1,chlorin:49,chmod:8,choos:[20,31,34],chose:5,chosen:[0,13,34,35],cif:[0,5,7,13],ciiipgatcpgdyan:35,circumv:50,cl_vinaparticl:49,claim:20,clash:[3,28,31,32,34,35,39,41,42,44,47],clash_scor:42,clash_thresh:35,clashscor:[31,33,34,35],classic:48,claus:20,clean:[2,8,16],cleanli:37,clear:[14,21,22,31,35,40],clearenviron:[21,40],cleargap:29,clearpo:21,clearresidu:21,clip:13,clone:[8,18],close:[16,18,22,26,28,31,32,34,35,36,44],close_at:28,closed_posit:34,closegap:35,closelargedelet:35,closer:[3,26,30,31],closerbas:34,closesmalldelet:[32,35],closest:28,closur:[32,35,38],clustal:[0,13],cluster:[3,31,37,40],cluster_thresh:[28,40],clutter:[1,8,26],cmake:0,cmake_support:[4,8,16,20],cmakecach:2,cmakelist:[1,2,4,8,16],coars:8,code:[0,1,2,3,4,5,7,8,11,13,14,15,16,17,18,20,21,22,26,27,33,35],codetest:[4,8],coil:[24,28],collect:[11,14,21,28,40],collis:49,column:[26,28],combin:[20,25,26,27,28,31,34,35,38,39,41,44,49,51],come:[1,3,4,8,11,13,35,36,42,46,51],command:[0,1,7,8,11,12],commandlin:13,comment:[16,20],commerci:[8,20],commit:[8,16],common:[8,13,20,28],commonli:[8,18,30,31,41],commun:20,comp_lib:50,compar:[3,8,22,23,26,31,32,51],comparison:[35,38,51],compat:[2,3,16,25,37],compensatori:22,compil:[1,2,3,4,8,14,16,18,20,37,54],complain:1,complaint:16,complet:[14,16,22,25,32,34,35,36,51],complex:[8,16,36,44,49,52],compli:20,complianc:20,complib_dir_container:[5,7],complib_dir_localhost:[5,7],compon:[5,7,10,15,26,33,41,50],compound:3,compoundlib:[5,50],compress:[11,26],comput:[3,8,19,20,31,33,38,39,41],concaten:21,concept:8,concern:8,condit:[8,20,27],conditions:20,conf:[2,8],confid:[26,41],config:[4,8],config_head:4,configur:[2,8,10,16,20,31,47],conflict:16,conform:[26,32,34,38,46,51],connect:[4,5,10,16,21,25,26,31],connectivi:5,conop:[5,21,22,25,27,41,49,50],conquer:8,consecut:[26,27,41],consequenti:20,conserv:[18,29],consid:[0,4,8,10,13,14,16,21,22,26,27,28,31,32,34,35,36,39,40,41,44,47,49,50,51,53],consider_all_nod:10,consider_hydrogen:49,consider_ligand:36,consist:[3,8,20,21,25,28,29,31,32,34,35,36,37,40,44,49,51],conspicu:20,constant:[3,25,32,39,41,52],constitut:20,constraint:[13,26,32,34,40],constraintfunct:40,constru:20,construct:[0,3,9,21,22,26,28,29,34,37],constructatompo:9,constructbackboneframeresidu:[47,50],constructcbetapo:9,constructcterminaloxygen:9,constructetd:10,constructframeresidu:50,constructframeresidueheurist:50,constructfrmrotamergroup:[47,50],constructfrmrotamerheurist:50,constructor:[21,25,28,29,32,34,37,40,41,47,49],constructrrmrotamergroup:50,constructrrmrotamerheurist:50,constructsidechainframeresidu:50,contact:[40,53],contactfunct:40,contain:[0,1,2,3,4,5],content:[8,12,17,20,23,26,42,47,54],contigu:[25,36,37],continu:[1,21,29,32,47],contract:20,contrast:45,contribut:4,contributor:20,contributori:20,control:[0,3,8,10,20,31,34,36,40,49,50,51,52],conveni:[1,8,18,28,31,34,35],convent:[1,49],converg:[28,31,32,34],convers:[20,37],convert:[4,5,22,25,26,27,35,37,39,41,51,52],convert_module_data:4,convertbasetyp:37,cooler:[3,30,31],coolerbas:34,cooling_factor:[10,34],coord:[26,31],coord_idx:26,coordin:[3,9,26,28,31,32,34,35,38,39,47],coordinfo:26,cope:16,copi:[2,3,4,8,16,18,20,21,22,28,29,31,34,35,40],copyright:20,copyright_cmak:20,core:[0,8,9,10,11],correct:[5,25,50],correctli:35,correspond:[0,10,16,21,22,25,26,27,28,31,37,49,50,51],corrupt:[21,40],could:[1,4,5,8,13,16,25,26,35],couldn:35,count:[14,28,29,34,35,39,41],countenclosedgap:29,countenclosedinsert:29,counter:[28,34],counterclaim:20,counterpart:[31,41,50],coupl:[1,8,16,35],cours:8,coutsia:38,coutsias2005:[32,38],coval:49,cover:[0,1,8,12,13,14,21,25,28,30,34,35],coverag:[0,3,35],cparticl:49,cpp:4,cpr:[49,51],cpu:[18,25,35],cpu_platform_support:25,crambin:[26,31,34],crash:47,createalign:[31,35],createemptyview:28,createentityfromview:[28,36,47],createfromfrmlist:[46,47],createfromrrmlist:46,createfullview:[30,31,35],createscwrl3particl:49,createscwrl4particl:49,createsequ:[26,31,35],createvinaparticl:49,creation:[25,32,49],creator:[25,32],criteria:36,criterion:[10,34],criterium:31,croak:16,cross:[20,28],crucial:8,crude:[0,35],cryst:38,cterminalclos:34,cumul:50,current:[2,4,5,8,10,14,16,21,22,25,26,31,34,35,37,40,41,42,49,50,52],custom:[8,26,34,35,36,37,48,49],customari:20,cutoff:[24,25,31,32,36,39,41],cycl:29,cyclic:[31,32,38],cyd:[49,51],cyh:[49,51],cys:[25,36,49,51],cys_hb3:21,cys_sg:21,cystein:[25,36,44,47,49],d_bin:41,dai:11,damag:20,dampen:25,danc:38,dare:4,dat:[26,37],data1:4,data2:4,data:[0,1,3,4,8,16,17,21,23,24,25],data_:37,data_gener:[3,37,48],data_to_stor:26,data_typ:26,databas:[0,9,23,24],databs:26,datatyp:26,date:[5,7,16,20],davi:38,davis2006:[22,38],dbg:8,dcmake_install_prefix:2,deactiv:10,dead:[10,38],deal:[35,36],debug:[8,10,21],decent:15,decid:[3,8,32,50],decis:27,declar:[4,8,16],decod:13,decompos:[3,10],decomposit:[10,28,46],decreas:34,dedic:[4,8,16],dee:10,deep:[22,35],def:[1,8,21,35],def_angl:21,defend:20,defin:[1,4,8,9,13,14,15,20,21,22,23,24,25],defineme:8,degre:[22,26,27],delet:[0,2,8,22,35,49],deliber:20,deliv:[1,26,34,35],delta_scor:34,demand:35,demonstr:26,denovoclos:34,densiti:[22,32,38],dep1:4,dep2:4,dep:4,depend:0,dependency1:4,dependency2:4,dependency:4,depends_on:4,depth:[26,38],deriv:[1,20,26,38,43,44],descend:35,descent:[31,32,38],describ:[0,4,7,8,10,11,17,20,21,22,26,28,29,30,32,33,37,39,41,44,47,48,49,50,51,54],descript:[0,5,13,20,34,35,51],description:16,descriptor:[26,28],descsrib:10,design:[1,3,19,20],desir:[9,18,25,26,31,32,34,35,39,40,41],despit:3,detail:[0,9,13,16,20,25,26,27,31,33,34,35,39,41,48,49,51],detect:[0,11,28,30],determin:[8,11,20,25,26,31,34,40,41],determinist:28,deuterium:[35,50],develop:[1,3,8,16],deviat:[22,33,34,51],devot:12,dict:[4,28,31,33,34,39,41],dictionari:[4,5,13,15,33,38],did:[8,26,31,35],didn:[7,28],didnt:5,differ:[1,2,4,7,8,10,15,16,20,21,26,28,29,31,35,39,41,47,49,51],differenti:49,dihedr:[9,18,22,23,25,26],dihedral_angl:22,dihedral_bin:41,dihedral_idx:51,dihedral_pair:27,dihedralconfigur:51,dill:38,dimens:27,dimension:38,dir:[4,8,18],direct:[8,20,22,24,26,41,49,50],directli:[8,10,18,26,31,35,36,40,44,49,51,53],directori:[1,2,4,5,7,8],dirti:1,dirtyccdclos:34,disabl:[1,16],disable_doctest:2,disable_documentation:2,disable_linkcheck:2,discard:26,disclaim:20,discocontain:40,disconnect:3,discret:[28,39,41],discuss:[20,26],disk:[8,25,28,39,41,51],displai:[11,13,14,20],dissimilar:28,dist:41,dist_bin:41,dist_bin_s:26,distanc:[7,9,22,26,28,31,35,36,39,40,41,43,49],distance_thresh:28,distant:40,distinct:[21,28,36,51],distinguish:3,distribut:[1,8,20,25,26,27,34,37,39,41,48,51],distribution:20,disulfid:[0,25,32,36,43],disulfid_bridg:[25,36],disulfid_score_thresh:36,disulfidscor:[36,44],dive:[16,35],diverg:8,divers:[26,28],dng:18,do_it:[39,41],doc:[2,4,8,16,20],dock:38,docker:3,dockerfil:[5,7],docstr:13,doctest:[2,8,16],document:[1,2],doe:[1,3,4,8,9,10,11,13,15,16,20,22,26,30,31,34,35,37,40,48],doesn:[8,16,29,32,34,35,51],doesnt:51,doexternalscor:[39,41],dointernalscor:[39,41],domain:28,domin:10,don:[2,10,20,31,35,50],done:[1,8,11,13,16,23,25,27,31,34,35,37],donor:[41,49,50],donorm:[39,41],dont:[0,34],dont_write_bytecod:1,dost_root:2,doubl:28,doubt:13,down:[13,22,26,28,34],download:5,dpm3_runtime_profiling_level:14,draw:[22,27,34],drawback:8,drawn:[27,34],drawphigivenpsi:27,drawpsigivenphi:27,drop:[3,8],dssp:[3,26,41],dssp_state:41,due:[0,26,31,32,35,44],dump:[28,51],dunbrack:[3,38,48],duplic:6,dure:[1,3,21,32,35,37,45,51],dynam:51,dynamicspatialorgan:3,e_cut:10,e_thresh:[10,35],e_tresh:10,each:[0,7,8,10,13,14,20,21,22,25,26,27,28,29,31,32,33,34,35,36,37,39,41],earli:3,earlier:2,easi:8,easier:[1,8,20],easili:[4,16,35],echo:8,edg:[10,28],edge:10,edge_idx:10,editor:1,editori:20,editxcs:28,educ:8,effect:[4,8,10,25,36,44],effici:[21,28,34,38,42],efficient:38,egg:26,eigen3_include_dir:2,eigen:[2,3],either:[0,8,13,16,20,21,22,27,29,31,32,34,35,36,37,39,40,41,45,49,51],elabor:[8,20],electron:20,electrostat:[25,32],element:[1,10,21,22,26,28,31,33,37,40,44,50],elimin:[10,38],els:[8,16,36,37],emerg:1,empir:[43,44],emploi:16,empti:[8,11,13,22,26,28,31,35,49],enabl:[1,2,3,11,13,15,25,26],enable_mm:2,enable_sse:2,enclos:[20,29,35],encod:0,encount:[29,34],end:[0,1,2,4,8,10,11,13,16,20,21,22,26,28,29,31,35,38],end_resnum:35,end_translate:4,endian:37,energi:[0,3,8,10,18,25,32,34,35,36,39,41,44,45,46,47,49,50,52],energy_funct:[0,36],enforc:[0,3,21,31,34,35,36,39,40,41],engin:19,enough:[8,16,25,26,35,37],ensur:[2,8,31,35,37],ensure:18,ent:[0,13,21,25,26,33,36,42],ent_seq:42,enter:[35,45],entiti:[8,13,14,20,21,22,26,28,33,35,42,47],entityhandl:[13,21,22,26,33,35,36,40],entityview:[26,27,28,33,35],entri:[0,3,8,14,25,26,31,32,33,36,41,50,51],entry:47,entrypoint:5,enumer:[8,10,21,25,26,28,31,35,40,47,49,50,51],env:[8,18,21,25,28,32,33,35,36,39,40,41,42],env_po:[32,36],env_structur:[21,40],environ:[1,3,8,21,28,29,31,32,34,35,36,37,39],epsilon:[10,25,36,52],equal:[28,34,39,41,44,50],equidist:51,equip:5,equival:[28,35,39,41],error:[0,11,13,14,26,32,35,37],especi:28,estim:[10,28,33,34,38,41,44,49,50,51],estimat:51,etc:[1,3,8,16,22,26,31,40],evalu:[4,8,32,35,40,41,44,46,49,51],evaluat:[39,40,41],evaluategromacsposrul:9,even:[2,8,10,20,22,25,29,35],event:[20,28],eventu:13,ever:[16,34],everi:[0,1,8,10,13,21,22,26,27,28,31,32,34,35,36,39,40,41,44,46,49,50,51,52],everyth:[1,2,3,7,8],evolut:38,evolv:42,exact:[0,7,10,13,37],exactli:[2,10,26,28,31,35,40,44,49],exampl:[0,1,2,3,8,11,13,16,17,18,20,21,23,25,26,27,28,30],example_reconstruct:47,exce:[39,41],exceed:[26,29],except:[0,3,13,20,26,29,34,35],exclud:[8,20,26],exclus:[1,8,20,25],execut:0,exercis:20,exisit:17,exist:[0,1,2,4,8,10,11,13,14,16,21,22,26,31,32,33,34,35,37,39,40,41,48,49,51],exit:[0,1,11,13],exit_cod:1,exit_statu:11,exot:8,exp:34,expect:[1,3,7,21,25,26,35,36,40,44,50,52],expens:26,experiment:35,explain:[1,8],explan:8,explicit:2,explicitli:20,explor:5,explore:38,exponenti:34,exponentialcool:34,expos:26,express:[20,44],ext:11,extend:[1,4,8,16,17,24,26,28,29,31,35,41,46],extendatcterm:29,extendatnterm:29,extended_search:[31,35],extens:[0,3,11,13,29,35],extension:[0,13],extension_penalti:29,extent:26,extern:[3,4,5,8,34],external:3,external_script:[3,8],extra:[2,3,8,16,22,37,48],extra_bin:26,extra_force_field:35,extract:[8,9,21,22,23,25,26,27,28,30,31,32,34,35,36,39,40,41,44,50],extractbackbon:21,extractloopposit:25,extractstatist:27,extrem:[22,28],f_i:26,f_idx:40,f_vinaparticl:49,facilit:28,factor:[10,25,34,49],fail:[0,1,8,11,14,22,31,32,35],failur:[0,8,11,13,20,35,51],fall:32,fallback:51,fals:[1,8,10,11,13,22,25,26,29,31,34,35,36,44,47,49,50],fantast:8,far:[31,35],fast:[0,9,18,19,21,25,26,27,37,39,40,41,51],fasta:[0,13,30,35],faster:[10,25,26,32,33,40],fastest:[32,35],favor:33,favourit:1,fed:[4,16],fedora:8,fee:20,feed:[4,21,31],feel:[8,16],fellow:8,fetch:[13,16,18,28],few:[2,8,16,25,37,42],ff_aa:25,ff_aa_on:25,ff_aa_two:25,ff_ala:25,ff_arg:25,ff_asn:25,ff_asp:25,ff_cys2:25,ff_cys:25,ff_gln:25,ff_glu:25,ff_gly:25,ff_hisd:25,ff_hise:25,ff_ile:25,ff_leu:25,ff_lookup:[25,32,35],ff_lookup_charmm:37,ff_lys:25,ff_met:25,ff_phe:25,ff_pro:25,ff_ser:25,ff_thr:25,ff_trp:25,ff_tyr:25,ff_val:25,ff_xxx:25,field:[20,35,37,51],fifti:20,figur:16,file:[0,1,2,3,4,5,8],filecheck:16,fileexist:11,fileextens:11,filegzip:11,filenam:[0,8,11,13,25,26,27,28,37,39,41,48,51],filename:[0,11],filenotfound:33,fill:[4,8,13,16,23,26,29,30,31,33,35],fillfromdatabas:[31,35],fillfrommontecarlosampl:[31,35],fillloopsbydatabas:35,fillloopsbymontecarlo:35,filo:40,filtercandid:33,filtercandidateswithsc:33,final_model:[30,35],find:[3,4,7,8,10,16,21,23],findatom:28,findchain:42,findeigen3:20,findmotif:28,findwithin:[8,28],fine:8,finish:52,fire:1,first:[0,1,3,8,10,13,16,18,21,22,25,26,27,28,29,31,32,34,35,36,39,40,41,43,44,47,49,50,51],fit:[16,22,26,30,31],fitness:20,fix:[3,8,11,16,25,32,36,37,39,41],fix_cterm:32,fix_nterm:32,fix_surrounding_hydrogen:25,flag1:4,flag2:4,flag:[0,2,4,8,10,11,13,22,26,28,35,36,49,50],flanking_rot_angle_on:22,flanking_rot_angle_two:22,fletch:[26,47],fletcher:35,flexibl:[0,19,36,44,47,49,50,52],flip:51,flood:26,fluorin:49,flush:[1,16],fold:38,folder:[2,4,8,16,18,37],follow:[0,1,2,4,5,7,8,10,11,16,18,20,22,23,25,26,28,29,30,31,35,36,37,39,41,47,49,50,51],fontsiz:27,forbidden:8,forc:[25,32,35],force_const:[25,32],forcefield:23,forcefieldaminoacid:25,forcefieldbondinfo:25,forcefieldconnect:25,forcefieldharmonicangleinfo:25,forcefieldharmonicimproperinfo:25,forcefieldljpairinfo:25,forcefieldlookup:[25,32,35,37],forcefieldperiodicdihedralinfo:25,forcefieldureybradleyangleinfo:25,forg:16,forget:[1,8],form:[14,20,24,25,26,30,35,40,51],formal:[31,32,49,51],format:[0,5,13,20,26,48],formula:33,forward:16,found:[1,3,4,8,11,13,16,19,21,23,26,28,31,32,33,34,35,36,44,46,49,51],foundat:1,four:[9,34],fraction:[26,28,32,34],frag_db:[23,26,31,37],frag_length:[23,26,28],frag_map:26,frag_po:[23,26,28],frag_residu:[23,26],frag_seq:[23,26],frag_siz:26,fragdb:[23,24,26,31,35,37],fragger:[13,23,26,28,34,35],fragger_handl:[13,35],fragger_map:26,fraggerhandl:[0,13,26,28,35],fraggermap:[26,28],fragment:[0,3,9,13,22,23,24],fragment_db:35,fragment_handl:28,fragment_info:26,fragment_length:[26,28],fragmentinfo:[26,31],fragments_per_posit:28,fragmentsampl:34,frame:[3,16,35,36],frame_energi:49,frame_residu:[45,47],frameresidu:[45,49,50],framework:[8,19,38],free:[0,8,20,35,49,51],frequenc:[26,34],frm:36,frmrotam:[44,49,50,52],frmrotamergroup:[44,46,49,50],from:[0,1,2,3,4,5,7,8,9,10,11,13,16,18,20,21,22,23,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],fromhhm:26,fromhoriz:26,fromresidu:51,front:[1,11,16],fstream:37,fudg:25,fulfil:[26,51],full:[0,1,3,8,10,21,25,26,28,29,30,31,34,35,36,47,49,50],full_queri:28,full_seq:[29,31],fullgapextend:[29,35],fulli:[8,16,21,22,26,29,30,36],function_typ:40,functions_specific_to_your_act:8,fundament:37,funni:[2,8],further:[10,28,29,35,36,37,50],furthermor:[37,50],futur:[3,25,26],gamma:[40,41,44],gamma_bin:41,gap:[0,3,9,18,24,25],gapextend:[29,35],gapfre:26,gapless:[0,13],gather:[4,12,16,26,28,47,49,51],gauc:51,gauch:51,gauche_minus:51,gauche_plus:51,gaussian1:49,gaussian2:49,gciiipgatcpgdyan:[31,35],gener:[0,1,2,3,5,8,10,13,14,16,18,20,23,24],generatedenovotrajectori:28,generatestructureprofil:26,geom:[21,22,25,26,28,32,35,44,49],geometr:[3,9,23],geoom:43,get:[0,1,2,8,16],getaa:[21,22,25],getaaa:21,getaah:21,getactivesubrotam:49,getallatomposit:[21,32,36],getallatomscoringkei:31,getallatomweight:31,getanchoratomindex:21,getangl:47,getangularbins:26,getatomcount:8,getatomnam:21,getatomnameamb:21,getatomnamecharmm:21,getaveragescor:31,getbackbonelist:[23,26],getbackbonescoringkei:31,getbackboneweight:31,getbins:27,getbinsperdimens:27,getbound:22,getc:22,getca:22,getcb:22,getchain:29,getchainindex:29,getchainnam:29,getchains:8,getcharg:25,getclust:31,getclusteredcandid:31,getcollisiondist:49,getconfid:26,getcoordidx:26,getcoordinfo:26,getcpuplatformsupport:25,getcreationd:5,getdefault:[25,32,35],getdefaultlib:5,getdihedralangl:26,getdihedralconfigur:51,getdistbins:26,getdisulfidbridg:25,getdisulfidconnect:25,getdsspstat:26,getelement:21,getenviron:21,getenvsetdata:8,getepsilon:25,getfirstindex:21,getforcefieldaminoacid:25,getfragmentinfo:[26,31],getframeenergi:49,getfudgelj:25,getfudgeqq:25,geth1index:21,geth2index:21,geth3index:21,getheavyindex:25,gethistogramindex:[22,27],gethistogramindic:27,gethnindex:21,gethydrogenindex:[21,25],getidentifi:28,getindex:[21,25],getinternalconnect:25,getinternalenergi:49,getinternalenergyprefactor:49,getlargestclust:31,getlastindex:21,getlength:29,getlist:28,getlooplength:25,getloopstartindic:25,getmass:25,getmaxnumatom:21,getmaxnumhydrogen:21,getn:[22,28],getnam:[47,49],getnonbondedcutoff:32,getnum:31,getnumatom:[21,25],getnumb:31,getnumcandid:31,getnumchain:8,getnumcoord:26,getnumfrag:26,getnumhydrogen:21,getnumloopresidu:25,getnumresidu:[8,21,25],getnumstempair:26,getnumsubrotam:49,geto:22,getolc:[21,22],getomegators:[21,22],getoxtindex:25,getpeptideboundconnect:25,getphiprobabilitygivenpsi:27,getphitors:[21,22,47],getpo:[21,28,49],getposit:28,getpotentialenergi:25,getpredict:26,getprob:[27,49],getpsiprobabilitygivenphi:27,getpsitors:[21,22,47],getr:33,getresidu:28,getresiduedepth:26,getringpunch:33,getrotamericconfigur:51,getscor:[26,34],getscoringfunct:49,getselfenergi:49,getseqr:[21,40],getsequ:[21,22,26,31],getsequenceprofil:26,getsequenceprofilescoreskei:31,getsigma:25,getsimul:25,getsolventaccessibilitit:26,getstemrmsdskei:31,getstructureprofil:26,getstructureprofilescoreskei:31,getsubdb:26,getsubrotamerdefinit:49,getsystemcr:32,gettemperatur:[34,49],gettransform:22,getversionnumb:37,getweight:[28,31],ggg:35,gggaggg:35,gggggggggggggggggggg:35,git:[0,1,2,3,4,5,7,8,9,10,11,12,13,14,15],gitignor:8,gitlab:[5,53],give:[4,8,16,20,23,28,31,34,35,49],given:[0,1,3,4,8,9,10,11,13,14,21,22,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,44,47,49,50,51],glass:38,gln:[49,51],gln_ne2:21,global:[15,26,31,35,37],glu:[21,49,51],glu_oe1:21,glutam:49,glutamin:49,gly:[35,36,47,49,50],gly_n:21,glycin:[3,22,26,32,36,49],goal:[1,10,28,30],goe:[2,8,14,16,35,51],goldfarb:35,goldstein1994:[10,38],goldstein:[10,38],good:[4,8,18,25,26,35],goodwil:20,got:2,govern:20,grain:8,grant:20,graph:3,graph_initial_epsilon:36,graph_intial_epsilon:36,graph_max_complex:36,graphminim:[10,46],greatest:5,grep:2,grid:26,gromac:9,grossli:20,group:[4,14,24,26,27,28,41,44,45,46,47],group_definit:[27,41],group_idx:41,guarante:[26,28,31,34,36,37],gui:[8,27],guid:32,guidelin:[8,37],gzip:[0,5,11,13],haa:38,hand:[0,2,4,13],handl:[3,8,9,13],handler:28,happen:[1,8,25,28,29,34,35,49],hard:[43,49],hardwar:18,harmless:20,harmon:[25,32],harmonic_angl:25,harmonic_bond:25,harmonic_improp:25,hasattr:35,hasdata:26,hasfraglength:26,hasfragmentinfo:31,hash:[3,26,28],hash_thresh:28,hash_tresh:28,hasringpunch:33,have:0,hbond:[28,35,41,49,50],hbond_scor:37,hbondscor:[35,37],headach:8,header1:4,header2:4,header3:4,header4:4,header:[0,2,4,16,17],header_output_dir:4,headers:4,headlin:8,heavi:[21,25,36,39,49,50],heavili:[26,47],helic:[22,24,25,28,35,41],helix:[18,22,34,47],hell:28,hello:37,hello_world:8,hellyeah:18,help:[0,1,2,4,7,8,13,16,18,25,41],helpactiontest:1,helper:4,hen:26,henc:[8,14,21,26,37],here:[0,1,2,4,8,11,13,14,16,18,19,21,22,25,26,27,28,30,31,32,34,35,37,39,41,44,48,51],herebi:20,herein:20,het:35,heurist:[3,35,50],heuristicprocessor:21,hg_po:49,hgfhvhefgdntngcmssgphfnpygkehgapvdenrhlg:0,hhblit:[0,13],hhm:[0,13,26,31],hhsearch:26,hide:[8,16],hierarch:[31,40],hierarchi:15,high:[3,8,16,28,30,35],high_resolut:22,higher:[31,40,41],highest:15,highli:[2,8],hint:13,his:[21,25,49,51],histidin:[25,49],histogram:[27,34],histori:16,hit:[1,10,16,27,32],hmm:38,hold:[20,28],home:[4,5],homo:[0,13],homolog:[0,12,18,19,35,38],homologu:26,honor:35,honour:35,hook:8,horiz:26,horribl:50,host:[4,7,8,16],hotfix:16,how:1,howev:[5,20,26],hparticl:49,hpp:37,hsd:[49,51],hse:[49,51],html:[2,8,16],http:[8,18,19,20,53],hybrid:51,hydrogen:[3,21,22,25,35,38,41,49,50],hydrophob:49,hyphen:1,i_loop:[25,36],i_vinaparticl:49,id_:37,idea:[1,8,21,23,25,26,35,40,49,52],ideal:[22,32,52],ident:[3,26,27,28,41,51],identif:20,identifi:[0,3,13,14,20,26,28,31,35,36,39,41,49,50,51],identiti:51,idx:[10,21,22,25,26,28,32,40,49],idx_ca_res_37:21,idxhandler:8,iff:[26,29,33],ifstream:37,ignor:[0,25,28,32,35],iii:20,ile:[27,49],illustr:26,imag:[5,7],image_name:5,imagehandl:22,imagin:8,imaginari:1,img:[7,22],immedi:[1,8,15,16],impact:[0,25,26],implement:[3,16,19,26,28,29,32,34,35,37,43,44,46,47,49,50,53],impli:20,implicit:2,important:[16,35,50],improp:25,improv:[3,20,25,35,38,44],improve:[3,38],improvement:38,in_dir:4,in_fil:8,in_path:4,in_stream:37,in_stream_:37,inabl:20,inaccur:25,inaccurate_pot_energi:25,inact:52,inactive_internal_energi:52,incident:20,incl:[25,26,35],includ:[2,3,7,8,11,16,18,20,21,25,26,28,29,31,33,35,37,39,41,47],include_atoms:28,include_ligand:35,inclus:[20,35],incompat:[31,32],incomplet:[35,48],inconsist:[10,13,21,22,25,26,29,31,32,36,40,49],inconveni:16,incorpor:20,increas:[0,10,28,31,32,35,50],increment:28,incur:20,indemn:20,indemnifi:20,independ:[0,3,25,36,48],index:[8,10,21,22,25,26,27,28,29,31,32,33,34,35,39,40,41,45,49,50,51],index_four:25,index_on:25,index_thre:25,index_two:25,indic:[8,10,11,20,21,22,25,26,27,28,29,31,32,35,36,40,44,47,49],indicat:[11,13],indice:[26,36,40],indirect:20,individu:[7,20,39,41],inf:[10,32,35],infin:32,infinit:32,influenc:[13,28,40,50],info:[26,31,35,40],inform:[0,5,7,8,13,16,20,22,23,26,28,29,31,34,35,38,40,41,42,53],infring:20,infringement:20,inherit:[1,39,40,41,46],init:16,init_bb_list:34,init_frag:34,initi:[3,10,21,22,26,28,31,32,34,35,36,39,40,41,46,49,50,51],initial:[3,31,34,36],initial_bb:31,initial_epsilon:[10,52],initialis:1,inlin:37,inner:14,input:[0,1,3,13,16,18,25,26,27,28,32,34,35,36,39,40,41,44,48,52],insert:[21,22,29,31,34,35,52],insertinto:[21,22,31],insertloop:[29,35],insertloopcleargap:[29,31,35],insid:[1,4],inside:1,insight:16,instal:[2,8,16,37],instanc:[3,8,13,24,25,37,53],instead:[0,1,2,3,4,8,11,26,28,29,31,34,35,50],institut:20,instruct:2,int16_t:37,int32_t:37,int_32_t:37,integ:[8,13,21,40],integr:[4,8,38],intend:[1,8,34,49],intent:26,intention:20,interact:[3,8,25,32,39,40,41,43,44,45,49],intercept:[39,41],interest:[1,10,25,26,34,37,49,51],interfac:[0,3,4,8,20,50],intermedi:8,intern:[0,1,3,4,5,8,16,21,24,25,26,27,28,31,32,34,35,36,37,40,41,46,49,50,52],internal:[21,25,26,39,40,41,49,52],internal_e_prefac:50,internal_e_prefactor:49,internal_energi:49,internat:38,internet:8,interpl:51,interpol:[40,51],interpret:[8,11],intervent:8,intrins:2,introduc:[1,3,4,8,16,32,35],invalid:[8,21,25,26,29,32,35,36,39,40,41,45,49,51],invalid_vinaparticl:49,invok:[2,4,8,15,16],involv:[16,30,44,49],iodin:49,iostream:37,ipython:7,irrevoc:20,is_c_ter:[25,36],is_cter:25,is_hbond_acceptor:50,is_hbond_donor:50,is_major:35,is_n_ter:[25,36],is_nter:25,isallatomscoringsetup:[31,35],isallset:21,isanyset:21,isbackbonescoringsetup:35,isctermin:29,isempty:31,isenabl:14,isntermin:29,isoleucin:49,isset:21,issimilar:51,issourc:37,issu:[3,8,12,16,20,32,35,37],istermin:29,isvalid:47,item:[1,8,16,21,22,25,26,35,40],iter:[10,27,28,31,32,34,35],iterat:[26,28,32,49],itself:[3,4,8,16,26,34,36,37,39,41],januari:20,job:[8,26,34,35],johner:38,join:[8,21,23,26,31,32,34,36],jone:[38,49],jones1999:[26,38],journal:38,json:[0,13],jupyt:7,just:[1,2,8,13,15,16,23,25,26,28,29,31,35,50],kabsch1983:[26,38],kabsch:38,keep:[0,1,2,4,5,8,13,16,28,30],keep_non_converg:31,keep_sidechain:[8,36],kei:[0,13,26,28,31,34,35,39,40,41],kept:[8,16,25,31,32,36,45,49],kernel:38,keyword:27,kic:[30,31],kiccloser:34,kick:13,kill_electrostat:25,kind:[1,8,20],kinemat:32,know:[2,51],knowledg:51,known:[4,11,21,40,50],krivov2009:[10,38,47,49],krivov:38,kwarg:1,l_e:49,lab:48,label:[16,25],lack:35,languag:[4,20],larg:[5,27,32,35],larger:[10,14,22,26,28,35,50],largest:[28,31,44],last:[1,2,3,4,21,22,25,29,31,32,34,35,40,41,48],last_psi:22,later:[1,8,10,21,28,47],latest:[2,5,8],latter:[0,5,16,35],launcher:[4,8],law:20,lawsuit:20,layer:44,layout:[26,37],lbfgs:35,lddt:7,leach1998:[10,38],leach:38,lead:[0,8,9,11,22,25,31,32,36,39,41,48],learn:28,least:[0,2,4,8,10,16,20,22,25,26,35,39,41,44],leav:1,left:[11,32],legal:[8,20],lemon:38,len:[22,23,25,26,28,31,35,36,41,47],length:[0,9,10,21,24,25,26,27,28,29,31,32,34,35,36,37,39,40,44],length_dep_weight:35,length_depend:31,lennard:49,less:[0,10,16,22,25,26,27,31,35,39,41,50,51],let:[1,8,22,26,28,31,47],letter:[3,5,21,22,26,27,34,49],leu:49,leu_h:21,leucin:49,level:[2,3,8,14,15,16,30,35],lexicograph:35,liabil:20,liabl:20,lib64:8,lib:[5,7,37],libexec:[4,8],libpromod3_name:4,librari:[0,3,4],library1:4,library2:4,licenc:48,licens:3,license:20,licensor:20,life:16,ligand:[3,35,36,49,50],like:[0,1,4,8,16,35,37,48],limit:[0,3,20,26,32,35],line:[0,1,7,8,9,12],linear:[26,28,31,34,39,40,41],linear_weight:[31,34,39,41],linearcombin:31,linearscor:34,link:[0,2,4,8,16,20,21,25,26,28,34,36,39,40,41,42],link_cmd:4,linkcheck:[2,8,16],linker:[4,35],linker_length:35,list:[0,1,2,3,4,7,8,9,10,11,13,20,21,22,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,44,45,46,47,49,50,51,52],listen:8,literalinclud:8,litig:20,littl:[4,8,16,37],live:[4,8],lj_pair:25,load:[1,8,13,15,21,23],loadalign:[30,35],loadallatominteractionscor:39,loadallatompackingscor:39,loadamberforcefield:35,loadbb:26,loadbbdeplib:[0,36,47,48],loadcach:28,loadcbetascor:[31,34,41,42],loadcbpackingscor:41,loadcharmm:25,loadcharmmforcefield:35,loaddefaultallatomoverallscor:39,loaddefaultbackboneoverallscor:41,loadentiti:[0,13],loadfragdb:[23,24,31,35],loadhbondscor:41,loadlib:[0,36,48],loadpdb:[8,21,23,25,26,28,30,31,32,34,35,36,42,47],loadport:[25,26,27,37,39,41,51],loadreducedscor:41,loadsequenceprofil:[13,26,31],loadssagreementscor:41,loadstructuredb:[23,24,26,31,35],loadtorsionsampl:[22,24,27,34],loadtorsionsamplercoil:[24,31,35],loadtorsionsamplerextend:24,loadtorsionsamplerhel:24,loadtorsionscor:41,local:[2,5,7,25,26,27,39,41,51],localhost:7,locat:[2,3,4,5,10,22,24,26,28,29,37,39,41,49],log:[11,16,33,35,49,50],logic:0,loginfo:33,lone:49,lone_pair:49,longest:26,look:[5,8,11,16,22,26,36,40,50],lookup:[9,21,23],looooooong:10,loop:[0,3,8,13,18,21],loop_candid:31,loop_length:[25,26,31,36],loop_main:8,loop_po:25,loop_seq:31,loop_start_indic:[25,36],loopcandid:[28,30],loss:[16,20],lossi:26,lost:[1,16],lot:[1,8,13,16],low:[1,8,10,50],lower:[31,34,35,39,41],lowest:[31,34,49],lowest_energy_conform:34,lys:49,lysin:49,m_idx:28,m_vinaparticl:[49,50],machin:[25,26,27,37,39,41,51],macro:[4,8],macromolecul:38,made:[4,5,20,51],magic:[8,37],mai:[0,1,2,4,8,11,13,16,20,21,25,29,32,35],mail:20,main:[8,35,37,51],mainli:[21,34,49],maintain:[8,16],maintin:34,major:[16,35],makefil:[2,8],makestat:51,malfunct:20,malici:16,man:[2,8],manag:[4,8,20,42],mani:[11,13,26,28,32,33,35,50],manipul:22,manner:[8,10,34],manual:[1,2,5,8,9,16,26,31,34,35,37,49],map:[0,13,21,22,26,28,33,36],mariani:38,mark:[4,20,50],mass:25,massiv:28,master:[8,16],mat3:9,mat4:[9,22,28,35],mat:28,match:[0,4,13,22,25,26,27,28,31,32,34,35,40,41],materi:[1,8],math:33,mathemat:[31,32],matplotlib:27,matric:38,matrix:[9,26,28],matter:[4,7,28,53],max:[9,10,21,29,33,35,36,41,51,52],max_alpha:41,max_beta:41,max_complex:[10,52],max_count:[39,41],max_d:41,max_dev:34,max_dist:[31,40],max_extens:35,max_gamma:41,max_iter:[28,31,35],max_iter_lbfg:35,max_iter_sd:35,max_length:29,max_loops_to_search:35,max_n:10,max_num_all_atom:35,max_p:50,max_prob:49,max_res_extens:35,max_step:32,max_to_show:14,max_triangle_edge_length:28,max_visited_nod:10,maxfraglength:26,maxim:[10,26,28,31,32,34,35,38,40,41],maximum:[10,26,31,32,34,49,50],mc_closer:34,mc_cooler:34,mc_num_loop:35,mc_sampler:34,mc_scorer:34,mc_step:[10,35],mcsolv:10,mean:[4,8,13,16,20,21,25,28,32,35,36],meaning:[26,31],meant:[18,21,26,33,35,50],measur:28,mechan:[18,20,31,32,34,35,40],meddl:[7,35],media:20,medium:20,meet:20,member:[8,13,31,35],memori:[10,26,35,37],mention:[1,2],merchantability:20,mere:20,merg:[16,25,28,29,31,35,36,40,49],merge_dist:35,mergegap:29,mergegapsbydist:35,mergemhandl:35,mess:[8,16,40],messi:16,met:49,metal:49,methionin:[35,49],method:[0,1,10,13,21,25,26,27,32,35,36,37,50],metric:40,metropoli:[10,31,34],mhandl:[29,30,31,35],middl:16,might:[10,25,26,28,31,32,34,40,50,52],min:[31,41],min_alpha:41,min_beta:41,min_candid:31,min_d:41,min_dist:40,min_gamma:41,min_loops_requir:35,min_scor:31,min_triangle_edge_length:28,mincadist:22,mind:[1,8],minim:3,minimizemodelenergi:35,minimum:[22,26,28,44],minor:[3,25,35],mirror:37,miser:14,mismatch:[21,35,40],miss:[0,11,13,25,35],mix:[0,4],mkdir:[2,8],mm_sy:[25,32],mm_sys_output:25,mm_system_cr:32,mmcif:[5,11],mmsystemcr:[25,32],mod:8,mode:[1,51],model_termini:35,modelling_issu:35,modellinghandl:[3,29,31,35],modellingissu:35,modeltermini:35,modif:[20,35],modifi:[8,16,20,22,31,35],modified_crambin:31,modul:[1,3],modular:19,module:[1,4,8,37],module_data:4,mol:[8,9,18,21,22,23],molck:7,molecular:[7,18,32,35],molprob:30,molprobity_bin:33,molprobity_executable:33,moment:8,monitor:1,monolith:8,mont:[0,3,10,28,31,34,35,46],montecarlo:3,mood:8,more:[1,2,4,7,8,10,13,14,16,20,28,35,44,49,53],most:[0,3,4,5,8,22,25,26,27,28,31,32,35,39,41,48,50],mostli:[4,16],motif:3,motiffind:28,motifmatch:28,motifqueri:28,motion:[22,38],mount:[5,7],movabl:25,move:[2,3,8,16,25,31,32,34,35,37],movement:28,mpscore:33,msg:11,msgerrorandexit:11,msm:3,msse4:2,much:[10,26,35],multi:18,multipl:[0,2,3,4,8,13,14,18,25,28,31,35,36,39,41],multipli:[10,34],multitempl:13,multithread:38,must:0,mutlipl:13,my_db_on:26,my_db_two:26,my_script:7,myclass:37,myclassptr:37,mytrg:0,n_a_vinaparticl:49,n_ad_vinaparticl:49,n_coord:9,n_d_vinaparticl:49,n_num:29,n_po:[9,22,41],n_stem:[9,23,26,29,31,32,34],n_stem_phi:34,n_ter:[32,50],n_vinaparticl:49,naivesolv:10,name:[0,1,3,4,5,7,8,11,13,14,20,21,25,26,27,29,31,33,35,44,48,49,51],name_pymod:4,namespac:[13,37],nan:[32,35,51],nativ:37,necessari:[8,22,34,40],necessarili:[20,52],need:[1,2,3,4,5,8,11,13,15,16,22,25,26,27,28,31,32,35,36,37,39,40,41,47,50],need_config_header:4,neg:[1,10,25,32,40],negelect:[0,35],neglect:[28,32,45,49,50],neglect_size_on:31,neglig:20,neighbor:[8,21,35],neighbour:[28,35,51],network:[22,44],never:[13,16,26,31,35,36,37,39,41],nevertheless:8,new_default:25,new_env_po:21,new_po:21,new_res_nam:49,new_siz:22,newli:[5,21,34],next:[1,8,16,22,27,28,29,37],next_aa:34,nglview:7,nice:8,nitrogen:[9,22,32,43,49,50],nobodi:1,node:10,node_idx:10,node_idx_on:10,node_idx_two:10,non:[0,4,10,13,16,20,24,25,27,28,29,31,32,35,37,47,48,50],non_rotameric:51,nonbonded_cutoff:[25,32],none:[13,26,28,33,34,35,36,49],nonredund:26,nonzero:51,norm:[28,41],normal:[20,39,41],normalis:40,notabl:26,note:[0,2,8,13,14,21,22,25,26,28,31,32,34,35,36,37,39,40,41,47,49,50],notebook:7,noth:[0,4,8,13,14,20,28,34,49],notic:[1,4,16,20],notice:20,notwithstand:20,novel:[19,38],novo:3,now:[3,8,14,16,18,22,26],nparticl:49,nterminalclos:34,null_model:31,num:[23,28,31,32,36],num_frag:[26,35],num_gap_extens:29,num_loop:31,num_residu:[21,25,34,36,39,40,41],num_residues_list:36,num_trajectori:28,number:[0,1,8,9,10,13,14,18,21,22,24,25,26,27,28,29,31,32,34,35,36,37,39,40,41,42,44,45,49,51],numer:35,numpi:[27,34],nussinov1991:[28,38],nussinov:[28,38],o_a_vinaparticl:[49,50],o_ad_vinaparticl:49,o_d_vinaparticl:49,o_po:22,o_vinaparticl:49,object:[0,3,8,13,14,20,21,22,23],oblig:20,observ:[10,26,28,32,50,52],obtain:[10,18,20,23,28,35],obviou:16,occupi:[45,50],occur:[21,28,35,40,41],ocparticl:49,odd:26,off:[1,8,14,35],offend:33,offer:[6,20,24,30,49,51],offset:[0,3,13,26,31,35],ofstream:37,often:[8,11,13,32],og_po:49,olc:22,old:[33,35],oligom:[0,13,30],oligomer:3,olson:38,omega:[21,22],onc:[1,3,16,25,28,31,34,52],once:[8,16,28,31,32,46,51],one:[16,21,22,26,28,35,40,44,49,52],one_letter_cod:[21,23,26,31,32,34,36],onli:[0,1,2,4,8,10,11,13,14,15,16,20,21,22,25,26,28,29,31,33,34,35,36,37,39,41,44,47,48,49,50],only:[25,26,28,29,35,36,50],only_longest_stretch:26,onto:[1,22,26,28],oparticl:49,open:[13,25,26,27,37,39,41,51,53],openmm:[2,18,25,32],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,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54],oper:[3,10,16,18,21,26,40],opt:[11,13,16],optim:[0,2,3,10,13,25,26,27,31,35,38,39,41,44,48,51,52],optimis:8,optimiz:47,optimize:2,optimize_subrotam:[36,44],option:[0,2,3,5,13,26,31,32,35,51],optional:[26,35],order:[0,5,13,21,25,26,29,31,35,37,40],org:20,organ:[8,26,51],orient:[9,32,41],orig_indic:[31,33],origin:[5,7,9,13,16,20,22,26,31,34,35,40,52],orthogon:28,ost:[0,1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24],ost_double_precision:2,ost_ent:33,ost_libraries:4,ost_root:[2,8],other:[0,1,2,3,4,8,10,14,16,20,21,22,31,32,35,36,39,41,42],other_index:22,other_particl:49,other_res_index:21,otherwis:[1,4,8,10,14,16,20,21,22,25,26,28,29,31,32,34,39,40,41,49,51],our:[4,5,8,16,26,28,31],out:[0,1,2,4,8,14,16,20,21,25,26,27,28,29,31,34,47,51],out_path:4,out_po:25,out_stream:37,out_stream_:37,outdat:[5,7],outer:[14,26],outlier:33,output:0,output_dir:4,outsid:[8,40],outstand:20,over:[2,4,13,16,26,28,32,34,35,49],overal:[10,34,40,46],overhead:25,overlap:[25,34,35,36],overli:16,overload:37,overrid:[2,5,25,50],overridden:4,overriden:5,overview:[8,16],overwrit:31,overwritten:25,own:[1,3,4],owner:20,ownership:20,oxt:[9,21,25],oxygen:[22,35,43,49,50],p_vinaparticl:49,pack:21,packag:[4,8,16],pad:[22,37],page:[2,8,20],pai:1,pair:[9,25,26,27,28,32,34,36,37,39,40,41,44,49,51],pairwis:[3,8,10,22,28,31,35,39],pairwise_energi:10,pairwisefunct:[40,41],pairwisefunctiontyp:40,pairwisescor:[8,35],paper:[43,44,47,49],paragraph:[1,8],parallel:26,paramet:[1,4,8,9,10,11,13,14,15,21,22,24,25,26,27,28,29,31,32,33,34,35,36,38,39,40,41,43,44,45,46,48,49,50,51,52],parameter_index:26,parametr:[3,32,35,36,49,50],parent:35,pars:[0,11,12],parser:12,part:[0,1,8,16,18,20,21,26,34,35,40,44],partial:29,particip:[36,44],particl:[3,25,26,32,41,43,44,45,47],particle_typ:49,particular:[8,10,20,26,31,32,34,49,51],partner:[39,40,41],pass:[13,16,21,25,26,28,29,32,34,44,45,49,50],past:[8,16,22,29],patent:20,path:[1,2,4,5,7,8,11,16,18,25,26,27,33,39,41,51],path_to_chemlib:15,path_to_dockerfile_dir:5,path_to_promod3_checkout:6,pattern:38,paus:14,pdb:[0,5,8,11,13,18,21,22,23,24,25,26,28,30,31,32,33,34,35,36,42,47],penal:[29,35],penalti:[29,35],penultim:3,peopl:16,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,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54],peptid:[3,21,23,25,26,28,35,36,47],peptide_sel:28,per:[4,8,10,12,16,21,27,31,34,35,39,40,41,44],percent:20,percentag:33,perfect:8,perfectli:8,perform:[0,10,16,18,19,20,25,28,31,32,33,34,35,37,40,44],period:25,periodic_dihedr:25,periodic_improp:25,permiss:[8,20],permut:10,perpetu:20,pertain:20,phase:25,phe:[49,51],phenix:33,phenylalanin:49,phi:[21,22,26,27,32,34,41,47,50,51],phi_bin:[41,51],phi_handl:47,philippsen:38,phipsisampl:34,phosphoru:49,phosphoserin:35,phrase:8,pick:[31,34],pictur:8,piec:[8,28],pipelin:[0,3,14],pivot:[31,32,34],pivot_on:[31,32],pivot_thre:[31,32],pivot_two:[31,32],place:[1,2,4,8,11,13,16,20,26],plain:[0,13],plan:16,plane:33,platform:[18,25],playground:7,pleas:[2,8,16,28,31,32,35,53],plot:27,plt:27,plu:[8,13,15,26,44,49],pluribu:28,pm3_csc:16,pm3_openmm_cpu_threads:[18,25,35],pm3_runtime_profiling_level:14,pm3argpars:[0,11,12],pm3argumentpars:[0,11,13],pm_action:[1,4,8],pm_action_init:8,pm_bin:1,pnas:38,png:27,pocket:28,pocket_view:28,point:[2,8,13,15,21,26,28,34,35,40,49,51],pointer:[2,8,37],polar:[49,50],polar_direct:49,polici:8,pop:[16,31,34,40],popul:[2,16],port_str_db:26,portabl:[4,17,25,26,27],portable_binary_seri:37,portable_file:4,portablebinarydatasink:37,portablebinarydatasourc:37,pos_end:28,pos_on:28,pos_start:28,pos_two:28,posit:[3,8,9],possibl:[0,3,8,10,13,16,20,22,25,26,27,28,29,31,32,34,35,36,37,39,40,41,44,46,49,51],post:13,postprocess:36,pot:25,pot_:32,potenti:[10,23,25,26,28,31,32,35,36,37,38,41,49],power:[7,20],pqhpg:0,practic:[4,8,25,26],pre:[8,16],pre_commit:[8,16],preceed:36,precis:[2,31,35],precomput:23,pred:40,predefin:[4,18,25,35,39,41],predict:[13,26,28,35,38,40,41],prefactor:49,prefer:[2,4,20,26,51,52],prefilt:35,prefix:[1,4,8,11],prepar:[8,20,35],present:[22,28,32,36,49,50,51],prev_aa:34,prevent:[1,8],previous:[25,26,31,36,40],primary_rot_angl:22,principl:[3,34,40],print:[1,2,5,20,22,23,25,26,31,32,33,35,42],printstatist:26,printsummari:14,prior:35,privat:[1,37],pro:[21,27,49,51],probabilist:[26,50],probability_cutoff:50,probabl:[4,8,10,13,16,26,27,28,31,32,34,49,50,51],problem:[3,7,10,13,16,26,28,31,32,34,35,40,42,44,46,48,52],problemat:[3,5,28],proce:42,procedur:[10,28,34,36,50],process:[1,3,13,16,21,25,28,32,34,35,37,40,45,49,51],processor:5,produc:[0,1,2,4,8,10,26,29,33,35],product:[1,3,16,20],prof:[0,26,31],prof_dir:26,prof_path:26,profil:[0,3,12,13],profiledb:26,profilehandl:[13,26,28,31,35],prog:13,program:[4,5,8,12],project:[3,4,5,8,16],prolin:[22,33,49],promin:[0,20],promod3_mod:4,promod3_name:4,promod3_name_head:4,promod3_path:8,promod3_root:8,promod3_shared_data_path:[8,37],promod3_unittest:[1,4,8],promod:[5,7],promot:8,propag:[8,22],proper:[16,26,50],properli:[1,35,39,41,50],properti:[21,22,35,50,51],propos:[29,31,32,34,44],proposed_posit:34,proposestep:34,prot:[8,23,26,28,32,34,36,47],prot_rec:8,protein:[0,18,24,25,28],proteinogen:26,proton:[21,25,49,51],prototyp:19,provid:[0,1,2,3,4,5,7,8,13,16,20,21,22,23,25,26,28,29,31,32,33,34,35,36,37,40,48,49,50,51],prune:[10,52],pscoringfunct:49,pseudo:[34,35,39,41],psi:[21,22,26,27,32,34,41,47,50,51],psi_bin:[41,51],psi_handl:47,psipr:[13,26,28,40,41],psipred:26,psipred_confid:41,psipred_pr:28,psipred_predict:[26,28,35],psipred_st:41,psipredpredict:23,pssm:[0,13],publicli:20,pull:[5,8,16,18],punch:[1,3,30],pure:0,purpos:[8,10,20,35,51],purpose:20,push:16,pushverbositylevel:13,put:[1,4,8,11,13,35],pwd:5,py_run:[1,4,8],pyc:1,pylint:16,pylintrc:16,pymod:[4,8,16],pyplot:27,pytest:8,python3:8,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,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54],python_root:2,pythonpath:8,qmean:2,qmeandisco:40,qualiti:35,quantum:38,queri:[26,28,51],query_idx:28,query_list:28,querylib:51,question:[3,27],quickli:[5,8,32],quit:[8,13],rackovski:38,radian:[9,22,25,27],radii:[33,43],radiu:[8,33,39,41,49],raihvhqfgdlsqgcestgphynplavph:0,rais:[0,9,10,13,21,22,25,26,27,28,29,31,32,33,34,35,36,39,40,41,44,45,49,50,51],rama_iffi:33,ramachandran:33,random:[10,22,24,27,31,32,34],random_se:31,randomized_frag:22,randomli:[27,34],rang:[8,9,21,22,23,25,26,27,28,29,32,34,35,39,40,41,51],rank:31,rapid:38,rare:8,rather:[5,7,8,11,16,34,51],raw:[7,18,25,26,27,30,31],rawmodel:[3,8],reach:[0,29,32],read:[0,8,11,13,16,25,26,27,29,36,37,39,41,48,51],readabl:[0,8,13,20,51],readdunbrackfil:48,reader:[16,18],readi:[2,5,51],readme:[2,8,48],real:[8,13,37],realli:[1,2,8,11,16],reappear:16,reason:[8,16,20,32,34,52],rebas:16,rebuild:[2,8],recalcul:27,receiv:20,recent:[3,16],recip:[3,6],recipi:20,recoginz:49,recogn:[0,13],recognis:[1,8,16],recognit:38,recommend:[2,5,8,20,25,35],reconstruct:[0,3,8,18,21,22,25,30,32,35],reconstructcbetaposit:22,reconstructcstemoxygen:22,reconstructor:[32,35,36],reconstructoxygenposit:22,reconstructsidechain:[0,8,35,36],reconstructtest:8,record:[1,35],recreat:16,redistribut:20,redo:28,reduc:[3,25,28,35,41],reduced_scor:37,reducedscor:[35,37],redund:[24,31],ref_backbon:[23,26],ref_fil:8,refactor:3,refer:[1,4,8,18,21,22,23,25,26,34],referenc:8,refin:28,refine_thresh:28,refresh:31,regard:[20,32,44],region:[0,25,28,29,32,34,35,45,50],regist:[4,8],regress:38,regularli:5,reinterpret_cast:37,reject:[31,32,34],rel:[4,5,9,10,26,28,32,41],relat:[4,8,13,26,28,37,38,49],relax:30,releas:2,relev:[2,3,4,7,25,28,36,49],reli:5,remain:[20,30,34,35],rememb:[1,8,34],remodel:[31,36],remodel_cutoff:36,remov:[2,3,10,22,25,26,29,31,33,35,36,40,47,49],removecoordin:26,removeterminalgap:35,renumb:[26,35],reorder:35,reordergap:35,repeat:28,replac:[3,20,21,22,34,35],replacefrag:22,report:[1,8,35],reportmolprobityscor:33,repositori:[1,4,8,16,53],repres:[10,20,21],represent:[22,23,25,26,27,37,39,41,49,51],reproduc:[3,20,35],reproduct:20,reproduction:20,repuls:49,request:[26,28,48,51],requir:[0,2,3,5,8,13,16,19,20,21,22,26,27,28,31,32,35,36,37,42,49,50,51],reread:26,res_depth:26,res_idx:[49,50],res_index:21,res_indic:[21,25,36],res_list:[21,25,32,36],res_num:21,resembl:[16,28],reserv:11,reset:[10,21,25,32,34,40,49],resid:5,residu:[0,3,8,9,21,22,23,24,25,26,27,28,29,31,32,33,34,35,36,38,39,40,41,42,44,45,47,49,50,51],residue_depth:26,residue_index:[45,49,50],residue_list:35,residuedepth:26,residuehandl:[9,21,22,26,29,31,32,33,34,35,49,50,51],residuehandlelist:21,residueview:35,resiz:[22,37],resnum:[21,22,29,31,35,36,40],resnum_on:40,resnum_rang:35,resnum_two:40,resolut:[22,32],resolv:[16,21,32],resolvecystein:44,resort:35,respect:[9,25,28,35],respons:[8,16,20],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,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54],restor:[22,31,34,40],restraint:[26,32],restrict:[8,16,29],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,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54],result:[0,2,8,10,20,25,27,28,31,32,33,34,35,36,38,44,51],resum:14,retain:20,reus:[35,36],review:[16,53],revis:20,reviv:16,rewrit:1,richardson:38,ridig:36,right:[1,2,8,13,20],rigid:[0,3],rigid_frame_cutoff:36,rigidblock:28,rij:43,ring:[3,30],ring_punch_detect:35,risk:20,rms:33,rmsd:[22,23,26,28,31,32],rmsd_cutoff:[26,31,32],rmsd_thresh:[26,28],rname:28,rnum:40,robot:38,role:13,root:[2,4,8,16],rosetta:41,rot:36,rot_constructor:47,rot_group:[47,50],rot_lib:50,rot_lib_entri:50,rota_out:33,rotam:[0,3,33,36,38,44,45],rotamer:[48,51],rotamer_group:[44,46,47],rotamer_id:47,rotamer_librari:[3,35,36,48],rotamer_model:36,rotamer_on:44,rotamer_res_indic:36,rotamer_two:44,rotamerconstructor:[3,47,49],rotamergraph:[36,46,47,52],rotamergroup:49,rotamerid:47,rotamerlib:[35,36,37,48,50,51],rotamerlibentri:[50,51],rotat:[9,22],rotatearoundomegators:22,rotatearoundphipsitors:22,rotatearoundphitors:22,rotatearoundpsitors:22,rotationaroundlin:9,roughli:24,round:51,routin:[1,18,31],royalti:20,rrm:36,rrmrotam:[44,49,50],rrmrotamergroup:[44,46,49,50],rst1:4,rst2:4,rst:[4,8,16],rsync:8,rule:[5,8,9,16],run:0,runaction:1,runexitstatustest:1,runmolprob:33,runmolprobityent:33,runnabl:8,runner:1,runtest:[1,8],runtim:[0,3,10,12],runtimeerror:[9,10,21,22,25,26,27,29,31,32,34,35,36,39,40,41,44,45,48,49,50,51],runtimeexcept:27,s_id:26,s_vinaparticl:49,safe:[2,8],said:4,same:[0,1,2,4,7,8,10,13,14,20,21,25,26,28,31,32,34,35,36,37,39,40,41,42,45,48,49,50,51],samiti:35,sampl:[0,3,8,22,23],sampled_frag:34,samplemontecarlo:[3,34],sampler:[3,23,24,26],samplerbas:34,sampling_start_index:34,sander:38,saniti:2,sanity_check:2,satisfi:49,save:[16,22,25,26,27,28,31,34,37,39,40,41,51],savebb:26,savecach:28,savefig:27,savepdb:[18,21,22,25,26,28,30,31,32,34,35,36,47],saveport:[25,26,27,37,39,41,51],sc_data:32,sc_rec:[32,36],sc_rec_test:36,sc_result:32,scale:22,scatter:27,scheme:[1,8,13,21,26,29,34],schenk:38,schmidt:38,schwede:[5,8,18,19,38,53],sci:38,scicor:[5,8,18,19,53],scicore:[8,53],scondari:35,scope:14,score:[0,3,8,13,23,26,28,29,30],score_contain:31,score_env:[31,34,42],score_threshold:44,score_vari:35,scorecontain:31,scorer:3,scorer_env:[28,31,34],scorerbas:34,scoring_weight:28,scoringgapextend:[29,35],scoringweight:[28,31,35],scratch:[26,34],scriptname:11,scriptpath:8,scwrl3:[36,42],scwrl3disulfidscor:[43,44],scwrl3pairwisescor:43,scwrl3rotamerconstructor:50,scwrl4:[0,36,38,44,47],scwrl4particletyp:49,scwrl4rotamerconstructor:[3,47,50],scwrlrotamerconstructor:3,seamlessli:16,search:[0,2,3,8,21,26,28,31,33,35,36,41,44,49,50],searchdb:[23,26],second:[8,10,22,25,26,28,31,32,35,39,40,41,43,44],secondari:[3,13,26,28,38,41],secondli:8,section:[1,4,7,17,20,53,54],see:[0,1,7,8,9,10,11,13,16,18,20,21,25,26,27,29,31,33,34,35,37,39,40,41,51],seed:[10,24,27,31,32,34],seem:16,segment:22,select:[3,10,26,28,34,35,36,47],selenium:35,self:[1,8,10,44,47,49],self_energi:[10,49],sell:20,send:11,sensibl:35,sent:20,seok:38,separ:[1,3,8,10,20,25,27,35,39,41,44],seq:[13,21,23,26,28,29,31,35,40,42],seq_idx_on:28,seq_idx_two:28,seq_one_idx:28,seq_sep:[39,41],seq_tpl:[31,35],seq_trg:[31,35],seq_two_idx:28,seqid:[24,26],seqprof:13,seqr:[0,21,23,26,29,34,35,36,40],seqres:[21,26,28,31,34,35,39,40,41],seqres_str:[21,32,36],seqsim:26,sequenc:[0,3,8,13,18,21,22,23],sequencefromchain:42,sequencehandl:[21,26,28,29,35,40],sequencelist:[21,35,40],sequenceprofil:26,sequenti:[22,35],ser:49,serial:[26,37],serializ:37,serin:49,serv:[1,13,26,28,31,34],servic:[16,20],set:[1,2,4,8,10,11,13,15,16,18,21,22,25,26,28,31,32,33,34,35,36,37,39,40,41,44,47,49,50,51,52],setaa:22,setactivesubrotam:49,setallatomscoringkei:31,setaroundomegators:22,setaroundphipsitors:22,setaroundphitors:22,setaroundpsitors:22,setbackbonescoringkei:31,setbackrub:22,setboolprop:50,setc:22,setca:22,setcb:22,setcharg:25,setcpuplatformsupport:25,setdefault:25,setdisulfidconnect:25,setenergi:[39,41],setenviron:[21,32,36,40],setepsilon:25,setfraggerhandl:35,setframeenergi:[47,49],setfudgelj:25,setfudgeqq:25,setinitialenviron:[21,31,32,34,36,40,42],setinternalconnect:25,setinternalenergi:49,setinternalenergyprefactor:49,setinterpol:51,setmass:25,setn:22,setnonbondedcutoff:32,seto:22,setolc:22,setpeptideboundconnect:25,setphitors:22,setpo:21,setprob:49,setpsipredpredict:[35,40,41],setpsitors:22,setresidu:21,setscor:41,setsequ:22,setsequenceoffset:35,setsequenceprofil:35,setsequenceprofilescoreskei:31,setsigma:25,setstemrmsdskei:31,setstructureprofil:26,setstructureprofilescoreskei:31,settemperatur:49,setup:[0,2,5,8,13],setupdefaultallatomscor:[31,35],setupdefaultbackbonescor:[31,35],setupsystem:25,setweight:31,sever:[0,2,3,5,8,10,13,24,26,27,28,31,32,35,36,40,41,42,44,48,49,51,52],sg_pos_on:43,sg_pos_two:43,shake:34,shall:20,shanno:35,shapovalov2011:[38,48],shapovalov:38,shared_ptr:37,shebang:8,sheet:35,shelenkov:38,shell:[1,2,7,8,11],shift:[22,26,29],shiftctermin:29,shiftextens:29,ship:[5,48],shorten:35,shorter:35,shortest:31,shortli:8,should:[1,2,4,5,7,8,10,11,13,16,18,20,22,23,26,27,28,31,32,34,35,36,37,40,45,47,49],show:[1,8,13,14,31,34,47,50],showcas:[1,21,25,27],shown:[8,14,35],shrink:22,shrug:38,side:[8,35,38],sidechain_pymod:8,sidechain_reconstructor:35,sidechain_rst:8,sidechain_test_data:8,sidechain_test_orig:36,sidechain_test_rec:36,sidechain_unit_tests:8,sidechainparticl:50,sidechainreconstructiondata:[30,32],sidechainreconstructor:[25,30,32,35],sidenot:[26,36],sig1:51,sig2:51,sig3:51,sig4:51,sigma:25,silent:1,sim:25,similar:[1,2,13,16,23,26,28,40,41,51],similardihedr:51,similarli:[2,25,35],simpl:[0,9,22,26,34,35,39,40,41,49,51],simpler:[25,35],simplest:[5,8,30],simpli:[5,21,22,31,32,34,35,49,50,51],simplic:[23,26],simplif:13,simplifi:[3,22,25,26],simul:[10,25,31,32,34],sinc:[1,2,4,8,10,11,16,18,22,25,26,27,28,49],singl:[2,4,8,10,21,22,25,26,28,31,32,34,35,36,40,41,45,48,49,50,52],singleton:25,singular:3,sink:37,sit:8,site:[3,5,8,28],size:[8,21,22,26,27,28,32,34,37,39,40,41],sizeof:37,skip:[0,1,8,16,26,28,35,50],slide:28,slight:35,slightli:35,slow:37,slower:[18,25,26,27,35,39,41,51],small:[8,26,32,35,36],smaller:[22,26,28,32,41],smallest:47,smallish:[2,8],smart:16,smng:3,smooth:38,smtl:35,soding2005:[26,38],softsampl:34,softwar:[8,20,38,49],sol:47,sole:[1,16,20],soli:38,solis2006:[24,38],solut:[8,10,28,31,32,34,35,36,46,47],solv:[10,16,47,52],solvent:26,solventaccess:26,solver:3,some:[1,2,4,5,6,7,8,13,16,21,23,26,30,33,34,35,36,37,40,42,47,50,51],somedata:37,someth:[1,8,11,16,26],sometim:16,somewher:4,soon:[10,32,41,47,51],sort:[1,4,10,14,31,34,51],sound:[16,50],sourc:[1,2,4,8,13,16,18,19,20,26,28,31,32,33,35,37,51],source1:[4,16],source2:[4,16],source3:4,source4:4,source:1,source_chain_idx:35,source_mhandl:35,sources:[1,4,8],sp3:51,space:[3,10,28,34,38],span:35,sparticl:49,spatial:[8,28,42],spawn:[1,8],spdbv:35,spdbv_style:35,special:[1,2,4,8,20,25,34,49,50,51],specif:[1,3,8,20,25,26,27,28,31,34,38,40,47,48,49],specifi:[0,2,4,5,9,10,22,26,27,28,31,32,35,36,40,49,51],specimen:11,speed:[3,25,35,38],spent:[14,18],sphere:[43,49],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,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54],spin:38,spit:[29,34],split:42,sport:8,squar:26,src:[8,16],ss_agreement:41,ss_agreement_scor:37,ssagree:26,ssagreementscor:37,sse:2,sstream:37,stabil:38,stabl:[5,16],stack:16,stage:[1,2,4,8],stai:[1,8,10,16,34],standalon:7,standard:[2,8,12,13,16,21,27,37,41,51],start:[0,1,2,4],start_idx:31,start_resnum:[21,22,26,31,34,35,36,39,40,41],start_resnum_list:36,start_rnum:40,start_temperatur:[10,34],starter:1,startscop:14,stash:[16,31,34,40],state:[1,2,8,20,21,26,31,34,40,41,44,49,51],statement:20,staticruntimeprofil:14,statist:[14,26,38],statu:[1,8],std:37,stderr:1,stdout:1,steadili:[10,34],steepest:[32,35],stem:[9,22,25,26,29,31,32,34,35,36],stemcoord:9,stempairorient:9,step:[8,10,14,16,18,28,29,30,31,32,34],stereo:35,stereo_chemical_problem_backbon:35,stereochem:[3,35],steric:51,still:[8,14,25,26,35,37],stop:[1,8,14,28,29,32],stop_criterion:32,stoppag:20,storabl:26,storag:[8,21,25,39,41],store:[0,1,3,8,9,16,18,21,22,25,26,27,28,29,31,32,34,35,36,37,47],stori:8,str:[1,11,13,14,15,21,22,25,26,27,28,29,31,32,33,34,35,36,37,39,40,41,49,51],str_len:37,straight:16,strategi:51,stream:37,stretch:[21,26,31,34,35,40,41],strict:16,strictli:3,string:[0,3,11,13,26,27,29,37],stringstream:37,strip:[0,35],struc:5,struct:[5,26,37],struct_db:23,structral:[21,40],structur:[0,3,8,13],structural_db:31,structuralgap:[29,33],structuralgaplist:[29,35],structure_db:[26,28,31,35,37],structure_db_on:26,structure_db_two:26,structure_dir:26,structure_id:26,structure_path:26,structure_sourc:13,structuredb:[3,13,24,26,28,31,35,37],structuredbdatatyp:26,structureprofil:26,studer:38,stuff:[26,39],style:[35,40,41,49],sub:[8,26],sub_frag:22,sub_res_list:26,subdir:8,subfold:8,subject:[8,20],sublicens:20,submiss:20,submit:20,submodul:8,submodule1:16,subpart:28,subrotam:[0,3,44,47,49,50],subrotameroptim:[36,52],subsequ:[10,20,22,35],subset:[0,13,25,26,28,31,32,35,36],subst:26,subst_matrix:26,substitut:26,substweightmatrix:26,subtre:[4,8],succeed:29,success:[10,11,34],successfulli:5,sudo:7,suffici:26,suffix:11,sugar:6,suggest:[5,8,43],suit:[1,8,26],sulfur:[43,44,49,50],sum:[14,29,35,36,43,44,49],summari:[14,26],superpos:[22,26,28,31,32,34],superpose_stem:22,superposed_rmsd:[22,31],superposeonto:22,superposit:[3,28,31,34],superpost:28,supersed:20,supervis:1,support:[0,1,2,3,8,11,13,18,20,25,32,35],suppos:[16,34],sure:[2,7,8,13,16,26],surfac:26,surotam:49,surprisingli:50,surround:[25,26,32,36,39,41],symmetr:[26,40,51],symmetri:[39,41],sync:8,syntax:20,system:[1,2,4,8,16,20,23],t_sampler:27,tabl:26,tag:5,tail:22,tailor:[21,35],take:[8,10,21,26,27,28,31,32,34,35,37,41,44,50,52],taken:[0,21,25,32,34,35,50],talk:1,target:[0,1,2,4,8,13,18,26,28,30,31,32,34,35,40,49],target_chain_idx:35,target_mhandl:35,target_pdb:33,target_posit:28,target_sequ:26,task:[8,16,32,35,37,40],techniqu:[10,38],tell:[1,8,11,13,16,26],temperatur:[10,31,34,49],templat:[0,1,3,13,18,30,35,37,40],template:13,temporari:[26,35],temporarili:16,term:[8,20,26,49,51,52],termin:[0,1,9,11,18,20,21,22,25,29,31,32,34,35,36,50],terminal_len:34,terminal_seqr:34,termini:[0,3,29,34,35],terminu:[26,34,35],terms:20,test_:8,test_action_:1,test_action_do_awesom:1,test_action_help:1,test_awesome_featur:8,test_check_io:37,test_cod:8,test_doctest:8,test_foo:4,test_portable_binari:37,test_reconstruct_sidechain:8,test_sidechain_reconstruct:8,test_submodule1:16,test_suite_:4,test_suite_your_module_run:8,test_your_modul:16,testcas:[1,8],testcasenam:8,testexit0:1,testpmexist:1,testreconstruct:8,testutil:[1,8],text:[1,13,20,35],than:[4,8,13,14,16,21,22,26,28,31,32,33,35,36,41,44,50],thei:[2,5,8,16,21,22,25,26,27,28,31,32,33,34,35,44,49,50,51,53],them:[4,8,16,22,25,26,27,28,29,31,35,36,40,45],themselv:25,theoret:34,theori:[20,38],therefor:[5,8,22,24,26,28,32,34,35,51],thereof:[20,25],thi:[0,1,2,3,4,5,7,8,10,11,12,13,14,15,16,17,18,20,21,22,23,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,44,47,49,50,51,52,54],thing:[1,2,8,16,26,28,35,51],think:10,thoroughli:16,those:[0,1,2,4,8,10,13,16,20,25,28,31,35,36,37,39,41,47,50,51],though:[25,35,37],thr:49,thread:[18,25,35,38],three:[1,4,16,21,22,27,28,31,33,34,38,41,49,51],threonin:49,thresh:[22,49,51],threshold:[10,26,28,32,35,36,40,51],through:[1,8,9,20,22,26,29,35,39,41],throughout:[13,16,24,25],thrown:26,thu:[5,11,49],tidi:16,tightli:16,time:[1,5,8,13,14,16,18,28,35],timer:14,tini:[16,35],titl:27,title:20,tlc:[21,49],tlc_an:21,tlctorotid:[47,49],tmp_buf:37,todens:22,toentiti:[18,21,22,25,26,32,34,36],toframeresidu:49,togeth:[8,16,26,44],too:[13,16,31,32,35,37],tool:[3,4,23,37,42,47],toolbox:16,top:[2,6,8,14,15,16,32,35],topic:[1,8,16],topolog:[25,32],torrmrotam:49,torsion:[0,13,21,22,23,24,26],torsion_angl:47,torsion_bin:41,torsion_plot:27,torsion_sampl:[22,26,31,32,34,35,37],torsion_sampler_coil:[28,37],torsion_sampler_extend:[28,37],torsion_sampler_hel:37,torsion_sampler_helix:28,torsion_sampler_list:26,torsion_scor:37,torsionprob:26,torsionsampl:[22,24,26,27,28,31,32,34,35,37,41],torsionscor:[35,37],tort:20,total:[10,14,26,28],touch:[1,8,25,32],toward:[0,3,8,13,26,29,32,35,39,41,47,49,50,52],tpl:[0,30,31,35],tpr:[49,51],trace:35,track:[3,11,20,30],trade:20,trademark:20,tradition:11,trail:0,train:[24,31,35],trajectori:[28,34],tran:[22,49,51],trans:51,transfer:20,transform:[9,20,22,28,34,35,51],translat:[4,8,20,26,49,51],translate:4,transomegators:22,treat:[3,8,25,35,36,37,51],treatment:50,tree:[1,4,8,10,16,46,47],treepack:3,treesolv:[10,36,47],trg:[0,13,31,35],tri:[10,28,29,35,44,51],triangl:28,trick:[1,7,16],trigger:[1,4,8,48],tripeptid:27,tripl:11,triplet:23,trott2010:[38,49],trott:38,trp:[49,51],trustworthi:16,tryptophan:49,ttccpsivarsnfnvcrlpgtpea:[31,35],ttccpsivarsnfnvcrlpgtpeaicatgytciiipgatcpgdyan:35,ttccpsivarsnfnvcrlpgtpeaicatytgciiipgatcpgdyan:[31,35],tupl:[9,10,11,22,25,26,28,29,33,35,36,44],turn:[0,1,11,14,16,35],tutori:8,tweak:35,twice:[14,40],two:[1,7,8,10,16,21,22,25,26,28,29,31,32,35,36,37,39,40,41,43,44,47,49,51],txt:[1,2,4,8,16,20],type:[0,1,8,9,10,11,13,14,20,21,22,24,25,26,27,28,29,31,32,33,34,35,36,37,39,40,41,43,47,48,49,50],typedef:37,typenam:37,typic:[22,28,34,47,51],tyr:[49,51],tyrosin:49,uint32_t:37,uint:37,ultra:26,uncertain:8,uncharg:50,unclos:35,undefin:25,under:[4,8,20],undergo:[28,32,34,36],underli:[29,31,49],underscor:1,understand:16,understood:0,undo:10,unexpect:2,unfavor:[22,32],unfavour:[32,34,44],unfortun:16,unhandl:[0,13],uniba:[5,8,18,19,53],uniform:32,union:20,uniqu:[0,13,28,31,34,51],unittest:[1,8,16],univers:[8,53],unix:16,unknown:25,unless:[13,20,21,22,25,31,39,41],unlik:47,unrecognis:11,unset:[21,25,36],unsupport:[13,37],until:[8,10,28,32,35,40,50],untouch:22,untrack:1,unum:28,unus:16,upat:5,updat:[5,7,8,16,21,28,29,31,32,35,36,40,42],update:[3,25],updatedistribut:27,updateposit:[25,32],upon:[26,32,34],upper:28,urei:25,urey_bradley_angl:25,usabl:16,usag:[0,3,10,13,24,26,31,32,36],use:[0,4,20,25,26,27,31,35,39,41,51],use_amber_ff:35,use_bbdep_lib:36,use_frm:36,use_full_extend:35,use_scoring_extend:35,used:[31,35],useful:[21,25,36],user:[1,5,8,28,53],userlevel:1,usr:[2,5,7,8],usual:[1,2,8,13,14,16,31,35,39],usualli:[2,4,8,16,22,35],utilis:[8,16],v_size:37,val:[27,49],valid:[0,10,16,22,26,29,34,35,36,48,51],valin:49,valu:[2,10,11,13,21,22,25,26,28,31,34,35,37,39,40,41,44,47,49,50,51,52],valueerror:[28,35],vanish:40,varadarajan:38,vari:[4,37],variabl:[1,2,8,14,18,25,33,35,37],variant:[25,31],variou:[1,2,4,16,30],vec3:[9,21,22,26,32,33,43,44,49],vec3list:[28,49],vector:[25,27,28,31,37,49],verbal:20,verbos:1,veri:[1,8,11,16,25,28,35,37],verif:13,verifi:[1,11,16],version:[2,3,5,8,16,20,26,35,37,48,49],vertic:28,via:[1,5,8,13,15,25],view:[13,16,27,35,40],vina:[3,38],vinaparticletyp:[49,50],vinarotamerconstructor:50,virtual:8,visibl:36,vision:38,visual:18,volum:5,wai:[1,2,4,5,8,16,22,23,25,31,41,47,49],wait:8,walk:[1,8],want:[1,2,3,8,15,16,22,26,28,31,32,35,40,49,50,51,52,53],warn:[3,8,16,35],warranti:20,warranties:20,watch:8,web:[2,8],weight:[3,26,28,31,34,35,39,41],weird:[28,32,47],well:[0,4,16,21,27,28,29,31,35,37,41,47,50,51],went:[0,8],were:[16,26,31,35],wester:38,wether:10,what:[1,8,11,13,16,23,26,36,40],when:[1,3,4,5,8,10,13,14,21,22,25,26,27,28,29,31,34,35,36,37,38,40,41,44,47,48,49,50,51],whenev:[8,21,31,40],where:[0,1,3,4,5,8,10,11,13,14,16,20,21,22,25,26,27,31,35,37,39,40,41,48,49,50,51],wherea:26,wherev:20,whether:[3,5,8,10,11,13,20,22,25,26,31,32,34,36,39,40,41,49,50,51],which:[0,1,2,4,8,9,11,12,13,16,18,20,21,22,25,26,27,28,29,31,32,33,34,35,36,37,39,40,41,49,50,51],whistl:8,whitespac:0,who:[10,47],whole:[1,2,8,16,20,22,26,35,49],whom:20,why:[1,16],width:[10,37,47],wild:4,window:28,window_length:28,wise:4,wish:[2,17,27,35],with_aa:31,with_db:31,within:[2,3,4,8,14,16,20,21,25,28,29,33,35,36,39,41,51],without:[0,1,3,4,8,11,13,20,25,29,32,35,40,51],wolfson:[28,38],won:[0,35,36,50],word:4,work:[1,2,4,5,7,8,14,16,18,20,25,29,35,37,50],worldwid:20,worst:16,worth:53,would:[1,2,8,11,22,26,27,44,49],wrap:26,wrapper:[1,4,8,15,35],write:0,writebasetyp:37,writemagicnumb:37,writetypes:37,writeversionnumb:37,written:[8,20,37],wrong:[2,13],wwpdb:5,www:20,xlabel:27,xlim:27,xml:8,xxx:[22,49],xxx_num_atoms:21,xxx_num_hydrogens:21,year:1,yet:[26,31,35],ylabel:27,ylim:27,you:[0,1,2,3,4,5,7,8,10,11,13,14,15,16,18,20,21,22,23,25,26,27,28,30,31,32,34,35,36,37,39,40,41,47,48,49,50,51,52,53],your:[1,2,4,5],your_modul:[8,16],yourself:[2,8,10,16,35,50],yyyi:20,zero:[0,26,28,35,51],zhou2005:[26,38],zhou:38,zip:[26,47]},titles:["ProMod3 Actions","<code class=\"docutils literal\"><span class=\"pre\">test_actions</span></code> - Testing Actions","Building ProMod3","Changelog","ProMod3‘s Share Of CMake","Docker","ProMod3 and Containers","Singularity","Contributing","Geometry functions","Graph Minimizer","<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","Runtime profiling","<code class=\"docutils literal\"><span class=\"pre\">SetCompoundsChemlib()</span></code>","ProMod3 Setup","Documentation For Developers","Getting Started","ProMod3","License","Handling All Atom Positions","Representing Loops","<code class=\"docutils literal\"><span class=\"pre\">loop</span></code> - Loop Handling","Loading Precomputed Objects","Generate <code class=\"docutils literal\"><span class=\"pre\">ost.mol.mm</span></code> systems","Structural Data","Sampling Dihedral Angles","Modelling Algorithms","Handling Gaps","<code class=\"docutils literal\"><span class=\"pre\">modelling</span></code> - Protein Modelling","Handling Loop Candidates","Fitting Loops Into Gaps","Model Checking","Generating Loops De Novo","Modelling Pipeline","Sidechain Reconstruction","Using Binary Files In ProMod3","References","All Atom Scorers","Backbone Score Environment","Backbone Scorers","<code class=\"docutils literal\"><span class=\"pre\">scoring</span></code> - Loop Scoring","Other Scoring Functions","Disulfid Bond Evaluation","Frame - The Rigid Part","Rotamer Graph","<code class=\"docutils literal\"><span class=\"pre\">sidechain</span></code> - Sidechain Modelling","Loading Rotamer Libraries","Representing Sidechains - Rotamers & Co.","Rotamer Constructor","Rotamer Library","Subrotamer Optimization","Contributing","Documentation For Users"],titleterms:{"class":[21,22,26,27,29,31,36,39,40,41],"default":35,"function":[4,9,11,12,29,36,40,43,49,50],acid:[21,25,27],action:[0,1,4,5,8],actiontestcas:1,algorithm:28,all:[21,32,39],allatomclashscor:39,allatomenv:21,allatomenvposit:21,allatominteractionscor:39,allatomoverallscor:39,allatompackingscor:39,allatomposit:21,allatomscor:39,amino:[21,25,27],angle:27,api:1,app:7,argument:13,atom:[21,32,39],availabl:7,backbon:[32,40,41,51],backbonelist:22,backboneoverallscor:41,backbonescor:41,backbonescoreenv:40,base:[26,39,41],baseclass:50,binari:37,block:[28,49],bond:44,branch:16,build:[0,2,5,35,49],can:49,candid:31,cbetascor:41,cbpackingscor:41,ccd:32,chain:26,changelog:3,check:33,clashscor:41,closer:34,cmake:[1,2,4,16],code:37,command:13,compound:[5,7],configur:51,construct:40,constructor:50,contain:6,contribut:[8,53],conveni:40,cooler:34,core:12,creat:[1,25],data:[26,37],databas:26,defin:[26,27],definit:4,depend:[2,51],detect:33,develop:17,dihedr:27,directori:16,distinguish:21,disulfid:44,docker:5,document:[4,8,17,19,54],entry:51,environ:40,evaluat:44,everyth:11,exampl:[31,37],execut:[1,5],exisit:37,extender:29,featur:[8,26],file:[11,37],find:26,finder:28,fit:32,forcefield:25,fragment:26,frame:45,from:43,gap:[29,32],gener:[25,34],geometr:26,geometri:9,get:[18,49],git:16,graph:[10,46],group:49,handl:[21,23,29,31,35],have:1,hbondscor:41,header:37,helper:11,hook:16,how:[8,49],image:5,install:2,integrat:1,introduct:[4,11,13],issue:8,keep:31,kic:32,librari:[5,7,48,51],licens:[8,20],line:13,load:[24,48],lookup:25,loop:[22,23,25,31,32,34,42],loopcandid:31,mainten:4,make:[1,2],messag:11,minim:10,model:[0,18,28,30,31,33,35,47],modul:[4,8],mol:25,molprob:33,motif:28,must:1,non:51,novo:[28,34],object:[24,34,45],optimiz:52,ost:25,other:43,output:1,own:[5,8],pairwis:40,pairwisescor:41,pars:13,parser:13,part:45,parti:8,particl:49,pipelin:[18,35],pm3argpars:13,portabl:37,posit:21,precomput:24,profil:14,promod3:[0,2,4,5,6,8,12,16,18,19,37],protein:30,psipredpredict:26,punch:33,quick:8,raw:35,reconstruct:36,reducedscor:41,refer:38,registri:5,relax:32,releas:3,repres:[22,49],rigid:[28,45],ring:33,rotam:[46,48,49,50,51],rotamerconstructor:50,rotamerid:49,run:[1,2,5,18],runtim:14,sampl:27,sampler:[27,34],score:[31,40,42,43,49,50],scorer:[8,34,39,41],script:[1,5,8],scwrl3:[43,49],scwrl4:49,sequenc:26,setcompoundschemlib:15,setup:16,share:[4,8,11],sidechain:[0,36,47,49],sidechainreconstructiondata:36,sidechainreconstructor:36,singular:7,smallest:49,specif:50,ssagreementscor:41,stage:16,start:[8,18],step:35,structur:[16,26],subclass:1,subrotam:52,system:25,test:[1,4,8,11],test_act:1,third:8,torsion:27,torsionscor:41,track:31,triplet:27,type:51,unit:[1,4,8],user:54,using:[2,37],vina:49,write:8,your:8}}) \ No newline at end of file diff --git a/doc/html/sidechain/disulfid.html b/doc/html/sidechain/disulfid.html index 3d02ef1ec8ffc6426c84a7c3cf89881988ed3442..1bddb4b5482b8452a671f9479457228e39a07bab 100644 --- a/doc/html/sidechain/disulfid.html +++ b/doc/html/sidechain/disulfid.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Disulfid Bond Evaluation — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" /> <link rel="next" title="Loading Rotamer Libraries" href="loading.html" /> <link rel="prev" title="Rotamer Graph" href="graph.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -37,11 +50,11 @@ <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 “clashes” between +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. The scoring module implements an empirically derived disulfid -score (<a class="reference internal" href="../scoring/other_scoring_functions.html#promod3.scoring.SCWRL3DisulfidScore" title="promod3.scoring.SCWRL3DisulfidScore"><code class="xref py py-func docutils literal notranslate"><span class="pre">promod3.scoring.SCWRL3DisulfidScore()</span></code></a>) as defined in +score (<a class="reference internal" href="../scoring/other_scoring_functions.html#promod3.scoring.SCWRL3DisulfidScore" title="promod3.scoring.SCWRL3DisulfidScore"><code class="xref py py-func docutils literal"><span class="pre">promod3.scoring.SCWRL3DisulfidScore()</span></code></a>) as defined in <a class="reference internal" href="../references.html#canutescu2003b" id="id1">[canutescu2003b]</a>. The paper proposes two rotamers to be in a disulfid bonded state, if the resulting disulfid score plus the self energies of the involved rotamers is below 45. If there are several cysteines close together, @@ -53,11 +66,11 @@ that has also been implemented here.</p> <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><p>Directly extracts the positions of the gamma sulfurs from the rotamers by -searching for particles with the name “SG”. +searching for particles with the name “SG”. The found positions are then passed to -<a class="reference internal" href="../scoring/other_scoring_functions.html#promod3.scoring.SCWRL3DisulfidScore" title="promod3.scoring.SCWRL3DisulfidScore"><code class="xref py py-func docutils literal notranslate"><span class="pre">promod3.scoring.SCWRL3DisulfidScore()</span></code></a>. -In case of <a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamer</span></code></a> it expects exactly one gamma sulfur per -rotamer. In case of <a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamer</span></code></a> there can be an arbitrary number +<a class="reference internal" href="../scoring/other_scoring_functions.html#promod3.scoring.SCWRL3DisulfidScore" title="promod3.scoring.SCWRL3DisulfidScore"><code class="xref py py-func docutils literal"><span class="pre">promod3.scoring.SCWRL3DisulfidScore()</span></code></a>. +In case of <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> it expects exactly one gamma sulfur per +rotamer. In case of <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> there can be an arbitrary number of gamma sulfurs per rotamer (at least one), it then evaluates the score for all possible combinations of gamma sulfurs and takes the minimum score. To get a final DisulfidScore, it finally adds the self energies of the @@ -67,18 +80,18 @@ rotamers to the result of the geometric expression.</p> <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 notranslate"><span class="pre">RRMRotamer</span></code></a> , <a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamer</span></code></a>) – 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 notranslate"><span class="pre">RRMRotamer</span></code></a> , <a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamer</span></code></a>) – Second rotamer</li> -<li><strong>ca_pos_one</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>) – CA position of first rotamer</li> -<li><strong>cb_pos_one</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>) – CB position of first rotamer</li> -<li><strong>ca_pos_two</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>) – CA position of second rotamer</li> -<li><strong>cb_pos_two</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>) – CB position of second rotamer</li> +<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> , <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>) – 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> , <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>) – Second rotamer</li> +<li><strong>ca_pos_one</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – CA position of first rotamer</li> +<li><strong>cb_pos_one</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – CB position of first rotamer</li> +<li><strong>ca_pos_two</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – CA position of second rotamer</li> +<li><strong>cb_pos_two</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if given rotamers do not contain -exactly (in case of <a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamer</span></code></a>) or at least (in case of -<a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamer</span></code></a>) one particle representing the gamma sulfur.</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if given rotamers do not contain +exactly (in case of <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>) or at least (in case of +<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>) 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 result of the raw score plus the average @@ -93,8 +106,8 @@ self energies of the input rotamers</p> <dt id="promod3.sidechain.ResolveCysteins"> <code class="descclassname">promod3.sidechain.</code><code class="descname">ResolveCysteins</code><span class="sig-paren">(</span><em>rotamer_groups</em>, <em>ca_positions</em>, <em>cb_positions</em><span class="optional">[</span>, <em>score_threshold=45.0</em>, <em>optimize_subrotamers=False</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.ResolveCysteins" title="Permalink to this definition">¶</a></dt> <dd><p>Tries to optimize disulfid bond network. In a first step, all disulfid bonds -get detected using <a class="reference internal" href="#promod3.sidechain.DisulfidScore" title="promod3.sidechain.DisulfidScore"><code class="xref py py-func docutils literal notranslate"><span class="pre">DisulfidScore()</span></code></a>. If the value between two rotamers is -below <strong>score_threshold</strong>, they’re assumed to be bonded. The function then +get detected using <a class="reference internal" href="#promod3.sidechain.DisulfidScore" title="promod3.sidechain.DisulfidScore"><code class="xref py py-func docutils literal"><span class="pre">DisulfidScore()</span></code></a>. If the value between two rotamers is +below <strong>score_threshold</strong>, they’re assumed to be bonded. The function then tries to detect the largest possible set of disulfide bonds, with no cysteine being part of more than one bond. If several largest sets are possible, the one with the optimal sum of scores gets estimated.</p> @@ -103,24 +116,24 @@ possible, the one with the optimal sum of scores gets estimated.</p> <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_groups</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of -<a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamerGroup</span></code></a>/<a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamerGroup</span></code></a>) – Every group represents a cysteine</li> -<li><strong>ca_positions</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>) – The CA positions of the according rotamers</li> -<li><strong>cb_positions</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>) – The CB positions of the according rotamers</li> -<li><strong>score_threshold</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The score two rotamers must have to be considered +<li><strong>rotamer_groups</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><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.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamerGroup</span></code></a>/<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>) – Every group represents a cysteine</li> +<li><strong>ca_positions</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – The CA positions of the according rotamers</li> +<li><strong>cb_positions</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – The CB positions of the according rotamers</li> +<li><strong>score_threshold</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The score two rotamers must have to be considered as a disulfid bond</li> -<li><strong>optimize_subrotamers</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – If set to true and the input consists of flexible +<li><strong>optimize_subrotamers</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – If set to true and the input consists of flexible rotamer groups, the active subrotamers get optimized. For every pair of rotamers participating in a disulfid bond, the subrotamers -with best <a class="reference internal" href="#promod3.sidechain.DisulfidScore" title="promod3.sidechain.DisulfidScore"><code class="xref py py-func docutils literal notranslate"><span class="pre">DisulfidScore()</span></code></a> get activated in +with best <a class="reference internal" href="#promod3.sidechain.DisulfidScore" title="promod3.sidechain.DisulfidScore"><code class="xref py py-func docutils literal"><span class="pre">DisulfidScore()</span></code></a> get activated in the input <strong>rotamer_groups</strong>. This has an effect when the rotamers get applied on residues.</li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> containing two <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> objects with equal -length. Both lists contain <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> objects with two elements. +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> containing two <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> objects with equal +length. Both lists contain <a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#tuple" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> objects with two elements. The tuples in the first list describe the indices of cysteins participating in disulfid bonds. The tuples in the second list describe the optimal rotamers in the according rotamer groups.</p> @@ -138,46 +151,12 @@ describe the optimal rotamers in the according rotamer groups.</p> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> <li>Previous: <a href="graph.html" title="previous chapter">Rotamer Graph</a></li> <li>Next: <a href="loading.html" title="next chapter">Loading Rotamer Libraries</a></li> </ul></li> @@ -185,26 +164,23 @@ describe the optimal rotamers in the according rotamer groups.</p> </ul></li> </ul> </div> + <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> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -213,11 +189,11 @@ describe the optimal rotamers in the according rotamer groups.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/sidechain/disulfid.rst.txt" + <a href="../_sources/sidechain/disulfid.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/sidechain/frame.html b/doc/html/sidechain/frame.html index b7b6ff0321387fe61abe2f8182da3e328dd0fae8..553d9083a5e70fc95cc3e37391479c96dd820fc4 100644 --- a/doc/html/sidechain/frame.html +++ b/doc/html/sidechain/frame.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Frame - The Rigid Part — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" /> <link rel="next" title="Rotamer Constructor" href="rotamer_constructor.html" /> <link rel="prev" title="Representing Sidechains - Rotamers & Co." href="rotamer.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -54,8 +67,8 @@ belonging to the frame residue with the same residue index are neglected.</p> <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> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><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 notranslate"><span class="pre">Particle</span></code></a>) – particles building frame residue</li> -<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Interaction energies between the constructed frame +<li><strong>particles</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><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>) – particles building frame residue</li> +<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Interaction energies between the constructed frame residue and any rotamer associated to the same residue index are neglected</li> </ul> @@ -70,7 +83,7 @@ residue index are neglected</li> <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 notranslate"><span class="pre">FrameResidue</span></code></a></td> +<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> @@ -83,11 +96,11 @@ residue index are neglected</li> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – <a class="reference internal" href="rotamer.html#promod3.sidechain.Particle" title="promod3.sidechain.Particle"><code class="xref py py-class docutils literal notranslate"><span class="pre">Particle</span></code></a> index</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – <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 notranslate"><span class="pre">Particle</span></code></a> at position <strong>index</strong></td> +<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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if index is invalid</td> +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if index is invalid</td> </tr> </tbody> </table> @@ -98,13 +111,13 @@ residue index are neglected</li> <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><p>The <a class="reference internal" href="#promod3.sidechain.Frame" title="promod3.sidechain.Frame"><code class="xref py py-class docutils literal notranslate"><span class="pre">Frame</span></code></a> object is used as a container for rigid particles, that +<dd><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 is used as a container for rigid particles, that can be passed to rotamer groups for calculating 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>frame_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a>) – residues building the frame.</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>frame_residues</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> 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>) – residues building the frame.</td> </tr> </tbody> </table> @@ -120,45 +133,19 @@ can be passed to rotamer groups for calculating frame energies.</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Frame - The Rigid Part</a><ul> +<li><a class="reference internal" href="#the-frame-objects">The Frame Objects</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> <li>Previous: <a href="rotamer.html" title="previous chapter">Representing Sidechains - Rotamers & Co.</a></li> <li>Next: <a href="rotamer_constructor.html" title="next chapter">Rotamer Constructor</a></li> </ul></li> @@ -166,26 +153,23 @@ can be passed to rotamer groups for calculating frame energies.</p> </ul></li> </ul> </div> + <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> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -194,11 +178,11 @@ can be passed to rotamer groups for calculating frame energies.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/sidechain/frame.rst.txt" + <a href="../_sources/sidechain/frame.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/sidechain/graph.html b/doc/html/sidechain/graph.html index 798f88c8236460c9d977bc7681787e25a5c705d6..acd4f311bcee96a0804d6fe3623e80eb76225d98 100644 --- a/doc/html/sidechain/graph.html +++ b/doc/html/sidechain/graph.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Rotamer Graph — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.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="Rotamer Library" href="rotamer_lib.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -40,13 +53,13 @@ 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 a -<a class="reference internal" href="../core/graph_minimizer.html#promod3.core.GraphMinimizer" title="promod3.core.GraphMinimizer"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.core.GraphMinimizer</span></code></a> that allows to find solutions using +<a class="reference internal" href="../core/graph_minimizer.html#promod3.core.GraphMinimizer" title="promod3.core.GraphMinimizer"><code class="xref py py-class docutils literal"><span class="pre">promod3.core.GraphMinimizer</span></code></a> that allows to find solutions using tree decomposition, A* and Monte Carlo algorithms.</p> <dl class="class"> <dt id="promod3.sidechain.RotamerGraph"> <em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">RotamerGraph</code><a class="headerlink" href="#promod3.sidechain.RotamerGraph" title="Permalink to this definition">¶</a></dt> -<dd><p>The <a class="reference internal" href="#promod3.sidechain.RotamerGraph" title="promod3.sidechain.RotamerGraph"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerGraph</span></code></a> objects inherits from -<a class="reference internal" href="../core/graph_minimizer.html#promod3.core.GraphMinimizer" title="promod3.core.GraphMinimizer"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.core.GraphMinimizer</span></code></a> and extends the minimizer by static +<dd><p>The <a class="reference internal" href="#promod3.sidechain.RotamerGraph" title="promod3.sidechain.RotamerGraph"><code class="xref py py-class docutils literal"><span class="pre">RotamerGraph</span></code></a> objects inherits from +<a class="reference internal" href="../core/graph_minimizer.html#promod3.core.GraphMinimizer" title="promod3.core.GraphMinimizer"><code class="xref py py-class docutils literal"><span class="pre">promod3.core.GraphMinimizer</span></code></a> and extends the minimizer by static initialization functions.</p> <dl class="staticmethod"> <dt id="promod3.sidechain.RotamerGraph.CreateFromRRMList"> @@ -60,7 +73,7 @@ initialization functions.</p> <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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – <a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamerGroup</span></code></a> or <a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamerGroup</span></code></a> +<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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – <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> or <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> @@ -78,46 +91,12 @@ conformations for every amino acid position.</td> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> <li>Previous: <a href="rotamer_lib.html" title="previous chapter">Rotamer Library</a></li> <li>Next: <a href="disulfid.html" title="next chapter">Disulfid Bond Evaluation</a></li> </ul></li> @@ -125,26 +104,23 @@ conformations for every amino acid position.</td> </ul></li> </ul> </div> + <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> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -153,11 +129,11 @@ conformations for every amino acid position.</td> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/sidechain/graph.rst.txt" + <a href="../_sources/sidechain/graph.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/sidechain/index.html b/doc/html/sidechain/index.html index b9e908dded601ed00b9a5c58dc06704c2f81b8e9..c739e3252590010ad0b5d36b3650c3eb21132926 100644 --- a/doc/html/sidechain/index.html +++ b/doc/html/sidechain/index.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>sidechain - Sidechain Modelling — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="Documentation For Users" href="../users.html" /> <link rel="next" title="Representing Sidechains - Rotamers & Co." href="rotamer.html" /> <link rel="prev" title="Modelling Algorithms" href="../modelling/algorithms.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -35,7 +48,7 @@ <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 notranslate"><span class="pre">sidechain</span></code></a> - Sidechain Modelling<a class="headerlink" href="#module-promod3.sidechain" title="Permalink to this headline">¶</a></h1> +<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 <a class="reference internal" href="../references.html#krivov2009" id="id1">[krivov2009]</a> . The according paper describes the modelling of sidechains using two different rotamer models. A rigid model, @@ -46,8 +59,8 @@ 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 full fletched sidechain reconstruction pipelines available in the modelling module.</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">ost</span> <span class="k">import</span> <span class="n">io</span><span class="p">,</span><span class="n">mol</span> -<span class="kn">from</span> <span class="nn">promod3</span> <span class="k">import</span> <span class="n">sidechain</span> +<div class="highlight-default"><div class="highlight"><pre><span></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">mol</span> +<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">sidechain</span> <span class="c1"># load a protein</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="s1">'data/1CRN.pdb'</span><span class="p">)</span> @@ -174,41 +187,7 @@ pipelines available in the modelling module.</p> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> @@ -219,26 +198,23 @@ pipelines available in the modelling module.</p> </ul></li> </ul> </div> + <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> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -247,11 +223,11 @@ pipelines available in the modelling module.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/sidechain/index.rst.txt" + <a href="../_sources/sidechain/index.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/sidechain/loading.html b/doc/html/sidechain/loading.html index 30375f0155d3ba7917c8e73e98c8158f8e96446b..610569f82a2a8cb0387f22b455ac4a1eaa28ee49 100644 --- a/doc/html/sidechain/loading.html +++ b/doc/html/sidechain/loading.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Loading Rotamer Libraries — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" /> <link rel="next" title="Subrotamer Optimization" href="subrotamer_optimizer.html" /> <link rel="prev" title="Disulfid Bond Evaluation" href="disulfid.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -43,7 +56,7 @@ You can request a licence <a class="reference external" href="http://dunbrack.fc and generate such a library as described in extras/data_generation/rotamer_library/README. Alternatively, ProMod3 provides its own backbone dependent or backbone independent libraries -that can be loaded with <a class="reference internal" href="#promod3.sidechain.LoadBBDepLib" title="promod3.sidechain.LoadBBDepLib"><code class="xref py py-meth docutils literal notranslate"><span class="pre">LoadBBDepLib()</span></code></a> / <a class="reference internal" href="#promod3.sidechain.LoadLib" title="promod3.sidechain.LoadLib"><code class="xref py py-meth docutils literal notranslate"><span class="pre">LoadLib()</span></code></a>.</p> +that can be loaded with <a class="reference internal" href="#promod3.sidechain.LoadBBDepLib" title="promod3.sidechain.LoadBBDepLib"><code class="xref py py-meth docutils literal"><span class="pre">LoadBBDepLib()</span></code></a> / <a class="reference internal" href="#promod3.sidechain.LoadLib" title="promod3.sidechain.LoadLib"><code class="xref py py-meth docutils literal"><span class="pre">LoadLib()</span></code></a>.</p> <dl class="method"> <dt id="promod3.sidechain.LoadBBDepLib"> <code class="descclassname">promod3.sidechain.</code><code class="descname">LoadBBDepLib</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.LoadBBDepLib" title="Permalink to this definition">¶</a></dt> @@ -57,7 +70,7 @@ build the basis for custom versions.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The requested Library</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="rotamer_lib.html#promod3.sidechain.BBDepRotamerLib" title="promod3.sidechain.BBDepRotamerLib"><code class="xref py py-class docutils literal notranslate"><span class="pre">BBDepRotamerLib</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><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></td> </tr> </tbody> </table> @@ -76,7 +89,7 @@ build the basis for custom versions.</p> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The requested library</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="rotamer_lib.html#promod3.sidechain.RotamerLib" title="promod3.sidechain.RotamerLib"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerLib</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="rotamer_lib.html#promod3.sidechain.RotamerLib" title="promod3.sidechain.RotamerLib"><code class="xref py py-class docutils literal"><span class="pre">RotamerLib</span></code></a></td> </tr> </tbody> </table> @@ -94,16 +107,16 @@ extras/data_generation/rotamer_library/README</p> <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> – Name of the file</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>filename</strong> – Name of the file</td> </tr> -<tr class="field-even field"><th class="field-name">Throws:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file does not exist, the format +<tr class="field-even field"><th class="field-name">Throws:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file does not exist, the format is not valid or when the library is incomplete leading to problems to make the library static. Most likely your input file is incomplete if the last problem gets triggered.</td> </tr> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The read library</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="rotamer_lib.html#promod3.sidechain.BBDepRotamerLib" title="promod3.sidechain.BBDepRotamerLib"><code class="xref py py-class docutils literal notranslate"><span class="pre">BBDepRotamerLib</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><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></td> </tr> </tbody> </table> @@ -117,46 +130,12 @@ incomplete if the last problem gets triggered.</td> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> <li>Previous: <a href="disulfid.html" title="previous chapter">Disulfid Bond Evaluation</a></li> <li>Next: <a href="subrotamer_optimizer.html" title="next chapter">Subrotamer Optimization</a></li> </ul></li> @@ -164,26 +143,23 @@ incomplete if the last problem gets triggered.</td> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/sidechain/loading.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -192,11 +168,11 @@ incomplete if the last problem gets triggered.</td> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/sidechain/loading.rst.txt" + <a href="../_sources/sidechain/loading.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/sidechain/rotamer.html b/doc/html/sidechain/rotamer.html index d2c66d03eb3e3b0677a3a1954fddbaecf30cc4ee..19ed06f65c3451f4b00e3cab7725cf5b5c1aa70c 100644 --- a/doc/html/sidechain/rotamer.html +++ b/doc/html/sidechain/rotamer.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Representing Sidechains - Rotamers & Co. — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" /> <link rel="next" title="Frame - The Rigid Part" href="frame.html" /> <link rel="prev" title="sidechain - Sidechain Modelling" href="index.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -36,13 +49,13 @@ <div class="section" id="representing-sidechains-rotamers-co"> <h1>Representing Sidechains - Rotamers & Co.<a class="headerlink" href="#representing-sidechains-rotamers-co" title="Permalink to this headline">¶</a></h1> -<p>A rotamer represents an amino acid sidechain identified by a <a class="reference internal" href="#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a> -and is a set of <a class="reference internal" href="#promod3.sidechain.Particle" title="promod3.sidechain.Particle"><code class="xref py py-class docutils literal notranslate"><span class="pre">Particle</span></code></a> objects. -Two types of rotamers exist. The <a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal notranslate"><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 notranslate"><span class="pre">FRMRotamer</span></code></a>. +<p>A rotamer represents an amino acid sidechain identified by a <a class="reference internal" href="#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a> +and is 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> objects. +Two types of rotamers exist. 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>. To gather all possible rotamers for one location, -ProMod3 offers the <a class="reference internal" href="#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><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 notranslate"><span class="pre">FRMRotamerGroup</span></code></a>. +ProMod3 offers 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>. All parts of the structure that are kept rigid can be represented by -a <a class="reference internal" href="frame.html#promod3.sidechain.Frame" title="promod3.sidechain.Frame"><code class="xref py py-class docutils literal notranslate"><span class="pre">Frame</span></code></a> object.</p> +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> object.</p> <div class="section" id="rotamerid"> <h2>RotamerID<a class="headerlink" href="#rotamerid" title="Permalink to this headline">¶</a></h2> <p>The sidechain module has its own definition of amino acids to satisfy custom @@ -62,7 +75,7 @@ that affect the hbond term or different versions of proline/cysteine.</p> <li>LYS - Lysine</li> <li>SER - Serine</li> <li>CYS - Cystein</li> -<li>CYH - “free” Cystein</li> +<li>CYH - “free” Cystein</li> <li>CYD - disulfid bonded Cystein</li> <li>MET - Methionine</li> <li>TRP - Tryptophane</li> @@ -85,14 +98,14 @@ that affect the hbond term or different versions of proline/cysteine.</p> <li>XXX - Invalid</li> </ul> </td></tr></table> -<p>The RotamerID enum can be accessed either directly as <code class="docutils literal notranslate"><span class="pre">promod3.sidechain.ARG</span></code> -or as <code class="docutils literal notranslate"><span class="pre">promod3.sidechain.RotamerID.ARG</span></code>.</p> +<p>The RotamerID enum can be accessed either directly as <code class="docutils literal"><span class="pre">promod3.sidechain.ARG</span></code> +or as <code class="docutils literal"><span class="pre">promod3.sidechain.RotamerID.ARG</span></code>.</p> </dd></dl> <div class="section" id="how-can-i-get-an-id"> <h3>How can I get an ID?<a class="headerlink" href="#how-can-i-get-an-id" title="Permalink to this headline">¶</a></h3> <p>The RotamerID enum can directly be accessed from Python. Two convenient -functions exist to get RotamerIDs from the <a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a> enum +functions exist to get RotamerIDs from the <a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a> enum or from amino acid three letter codes.</p> <dl class="method"> <dt id="promod3.sidechain.TLCToRotID"> @@ -103,9 +116,9 @@ exactly the naming convention defined above.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Three letter code of amino acid</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Three letter code of amino acid</td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>, XXX if <strong>tlc</strong> cannot be recoginzed.</td> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>, XXX if <strong>tlc</strong> cannot be recoginzed.</td> </tr> </tbody> </table> @@ -116,15 +129,15 @@ exactly the naming convention defined above.</p> <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’re simply not -defined in <a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a></p> +(e.g. HSD, HSE or the special prolines/cysteins) since they’re simply not +defined in <a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</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>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.AminoAcid</span></code></a>) – AA enum of amino acid</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>) – AA enum of amino acid</td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>, XXX if <strong>aa</strong> is invalid.</td> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>, XXX if <strong>aa</strong> is invalid.</td> </tr> </tbody> </table> @@ -136,12 +149,12 @@ defined in <a class="reference external" href="https://www.openstructure.org/doc <h2>The Smallest Building Block - The Particle<a class="headerlink" href="#the-smallest-building-block-the-particle" title="Permalink to this headline">¶</a></h2> <p>Particles give raise to more complex objects such as rotamers and frame residues. They contain all data required to calculate pairwise energies. -For every energy function available in ProMod3, there’s a particle creation +For every energy function available in ProMod3, there’s a particle creation function.</p> <dl class="class"> <dt id="promod3.sidechain.PScoringFunction"> <em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">PScoringFunction</code><a class="headerlink" href="#promod3.sidechain.PScoringFunction" title="Permalink to this definition">¶</a></dt> -<dd><p>The available scoring functions between <a class="reference internal" href="#promod3.sidechain.Particle" title="promod3.sidechain.Particle"><code class="xref py py-class docutils literal notranslate"><span class="pre">Particle</span></code></a> objects</p> +<dd><p>The available scoring functions between <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> objects</p> <ul class="simple"> <li>SCWRL4 - <a class="reference internal" href="#scwrl4-scoring-function"><span class="std std-ref">The SCWRL4 scoring function</span></a></li> <li>SCWRL3 - <a class="reference internal" href="#scwrl3-scoring-function"><span class="std std-ref">The SCWRL3 scoring function</span></a></li> @@ -152,8 +165,8 @@ function.</p> <dl class="class"> <dt id="promod3.sidechain.Particle"> <em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">Particle</code><a class="headerlink" href="#promod3.sidechain.Particle" title="Permalink to this definition">¶</a></dt> -<dd><p>The particle class. There’s no constructor. You can either use the -<a class="reference internal" href="rotamer_constructor.html#promod3.sidechain.RotamerConstructor" title="promod3.sidechain.RotamerConstructor"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerConstructor</span></code></a> to create full <code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerGroup</span></code> objects +<dd><p>The particle class. There’s no constructor. You can either use the +<a class="reference internal" href="rotamer_constructor.html#promod3.sidechain.RotamerConstructor" title="promod3.sidechain.RotamerConstructor"><code class="xref py py-class docutils literal"><span class="pre">RotamerConstructor</span></code></a> to create full <code class="xref py py-class docutils literal"><span class="pre">RotamerGroup</span></code> objects with all underlying particles or the energy function specific creation functions.</p> <dl class="method"> @@ -164,13 +177,13 @@ functions.</p> <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_particle</strong> (<a class="reference internal" href="#promod3.sidechain.Particle" title="promod3.sidechain.Particle"><code class="xref py py-class docutils literal notranslate"><span class="pre">Particle</span></code></a>) – The interacting particle</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>other_particle</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>) – The interacting particle</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The score</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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if the scoring function +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if the scoring function parametrization of the two particles is inconsistent</td> </tr> </tbody> @@ -187,7 +200,7 @@ parametrization of the two particles is inconsistent</td> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The name of the particle, which corresponds to the atom name</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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a></td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></td> </tr> </tbody> </table> @@ -200,12 +213,12 @@ atom name</td> <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 “collision distance” all pairs of particles with +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The “collision distance” all pairs of particles with their distance below the sum of their collision distances are considered as interacting and thus evaluated by the underlying scoring function.</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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a></td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td> </tr> </tbody> </table> @@ -220,7 +233,7 @@ evaluated by the underlying scoring function.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The position of the particle</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a></td> </tr> </tbody> </table> @@ -235,7 +248,7 @@ evaluated by the underlying scoring function.</td> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The underlying scoring function</td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.sidechain.PScoringFunction" title="promod3.sidechain.PScoringFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">PScoringFunction</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.sidechain.PScoringFunction" title="promod3.sidechain.PScoringFunction"><code class="xref py py-class docutils literal"><span class="pre">PScoringFunction</span></code></a></td> </tr> </tbody> </table> @@ -269,25 +282,25 @@ that define the behaviour of the Lennard-Jones style term:</p> <dl class="method"> <dt id="promod3.sidechain.CreateSCWRL4Particle"> <code class="descclassname">promod3.sidechain.</code><code class="descname">CreateSCWRL4Particle</code><span class="sig-paren">(</span><em>name</em>, <em>particle_type</em>, <em>pos</em><span class="optional">[</span>, <em>charge</em>, <em>lone_pairs=None</em>, <em>polar_direction=None</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.CreateSCWRL4Particle" title="Permalink to this definition">¶</a></dt> -<dd><p>Creates and returns a <a class="reference internal" href="#promod3.sidechain.Particle" title="promod3.sidechain.Particle"><code class="xref py py-class docutils literal notranslate"><span class="pre">Particle</span></code></a> that can evaluate the SCWRL4 scoring +<dd><p>Creates and returns a <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> that can evaluate the SCWRL4 scoring 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 last simple"> -<li><strong>name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – The name of the particle</li> -<li><strong>particle_type</strong> (<a class="reference internal" href="#promod3.sidechain.SCWRL4ParticleType" title="promod3.sidechain.SCWRL4ParticleType"><code class="xref py py-class docutils literal notranslate"><span class="pre">SCWRL4ParticleType</span></code></a>) – The type of the particle</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>) – The position of the particle</li> -<li><strong>charge</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The charge of the particle, relevant for the hydrogen +<li><strong>name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – The name of the particle</li> +<li><strong>particle_type</strong> (<a class="reference internal" href="#promod3.sidechain.SCWRL4ParticleType" title="promod3.sidechain.SCWRL4ParticleType"><code class="xref py py-class docutils literal"><span class="pre">SCWRL4ParticleType</span></code></a>) – The type of the particle</li> +<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – The position of the particle</li> +<li><strong>charge</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The charge of the particle, relevant for the hydrogen bond term</li> -<li><strong>lone_pairs</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3List</span></code>) – Direction of all possible lone pairs of the particle, +<li><strong>lone_pairs</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3List</span></code>) – Direction of all possible lone pairs of the particle, relevant for the hydrogen bond term. If set, the particle is a potential hydrogen bond acceptor. An example would be the Serine OG atom, where you can represent the two lone pairs with vectors pointing from the OG position towards the lone pair centers.</li> -<li><strong>polar_direction</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>) – The polar direction of the particle, +<li><strong>polar_direction</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – The polar direction of the particle, relevant for the hydrogen bond term. If set, the particle is a potential hydrogen bond donor. An example would be the Serine HG hydrogen. The @@ -309,17 +322,17 @@ Details can be found in the relevant publication <a class="reference internal" h <dl class="method"> <dt id="promod3.sidechain.CreateSCWRL3Particle"> <code class="descclassname">promod3.sidechain.</code><code class="descname">CreateSCWRL3Particle</code><span class="sig-paren">(</span><em>name</em>, <em>radius</em>, <em>pos</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.CreateSCWRL3Particle" title="Permalink to this definition">¶</a></dt> -<dd><p>Creates and returns a <a class="reference internal" href="#promod3.sidechain.Particle" title="promod3.sidechain.Particle"><code class="xref py py-class docutils literal notranslate"><span class="pre">Particle</span></code></a> that can evaluate the SCWRL3 scoring +<dd><p>Creates and returns a <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> that can evaluate the SCWRL3 scoring 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 last simple"> -<li><strong>name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – The name of the particle</li> -<li><strong>radius</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The hard-sphere radius of the particle, relevant for the +<li><strong>name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – The name of the particle</li> +<li><strong>radius</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The hard-sphere radius of the particle, relevant for the repulsion term.</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>) – The position of the particle</li> +<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – The position of the particle</li> </ul> </td> </tr> @@ -334,7 +347,7 @@ repulsion term.</li> gaussian1, gaussian2, repulsion, hydrophobic and hbond in the Autodock Vina software <a class="reference internal" href="../references.html#trott2010" id="id3">[trott2010]</a>. VINA only evaluates heavy atoms. Gaussian1, gaussian2 and repulsion are evaluated for all pairs of particles. Hydrophobic is only -evaluated between C_VINAParticle <a class="reference internal" href="#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal notranslate"><span class="pre">VINAParticleType</span></code></a> and hbond is +evaluated between C_VINAParticle <a class="reference internal" href="#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal"><span class="pre">VINAParticleType</span></code></a> and hbond is evaluated between hydrogen bond donor/acceptor pairs. While SCWRL3 and SCWRL4 are intended to evaluate sidechain-sidechain interactions in proteins, VINA is mainly targeted at interactions between sidechains and ligands.</p> @@ -360,23 +373,23 @@ VINA is mainly targeted at interactions between sidechains and ligands.</p> <li>Br_VINAParticle - Bromine</li> <li>I_VINAParticle - Iodine</li> <li>M_VINAParticle - Metals</li> -<li>INVALID_VINAParticle - Invalid particle…</li> +<li>INVALID_VINAParticle - Invalid particle...</li> </ul> </dd></dl> <dl class="method"> <dt id="promod3.sidechain.CreateVINAParticle"> <code class="descclassname">promod3.sidechain.</code><code class="descname">CreateVINAParticle</code><span class="sig-paren">(</span><em>name</em>, <em>particle_type</em>, <em>pos</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.CreateVINAParticle" title="Permalink to this definition">¶</a></dt> -<dd><p>Creates and returns a <a class="reference internal" href="#promod3.sidechain.Particle" title="promod3.sidechain.Particle"><code class="xref py py-class docutils literal notranslate"><span class="pre">Particle</span></code></a> that can evaluate the VINA scoring +<dd><p>Creates and returns a <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> that can evaluate the VINA scoring 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 last simple"> -<li><strong>name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – The name of the particle</li> -<li><strong>radius</strong> (<a class="reference internal" href="#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal notranslate"><span class="pre">VINAParticleType</span></code></a>) – The type of the particle</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.geom.Vec3</span></code></a>) – The position of the particle</li> +<li><strong>name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – The name of the particle</li> +<li><strong>radius</strong> (<a class="reference internal" href="#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal"><span class="pre">VINAParticleType</span></code></a>) – The type of the particle</li> +<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – The position of the particle</li> </ul> </td> </tr> @@ -397,15 +410,15 @@ function</p> <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> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – List of <a class="reference internal" href="#promod3.sidechain.Particle" title="promod3.sidechain.Particle"><code class="xref py py-class docutils literal notranslate"><span class="pre">Particle</span></code></a> objects</li> -<li><strong>probability</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Probability of rotamers. In case of the SCWRL4 +<li><strong>particles</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – List 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> objects</li> +<li><strong>probability</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Probability of rotamers. In case of the SCWRL4 energy calculation, this directly controls the internal energy of that rotamer.</li> -<li><strong>internal_e_prefactor</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Factor applied to the internal energy calculated +<li><strong>internal_e_prefactor</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Factor applied to the internal energy calculated as -log(<strong>probability</strong>/max_probability), where max_probability is the maximum rotamer probability of any rotamer in a -particular <a class="reference internal" href="#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamerGroup</span></code></a>.</li> +particular <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>.</li> </ul> </td> </tr> @@ -419,11 +432,11 @@ particular <a class="reference internal" href="#promod3.sidechain.RRMRotamerGrou <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of particle of interest</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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 notranslate"><span class="pre">Particle</span></code></a> at specified index</td> +<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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if index is invalid</td> +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if index is invalid</td> </tr> </tbody> </table> @@ -446,7 +459,7 @@ particular <a class="reference internal" href="#promod3.sidechain.RRMRotamerGrou <dt id="promod3.sidechain.RRMRotamer.ApplyOnResidue"> <code class="descname">ApplyOnResidue</code><span class="sig-paren">(</span><em>res</em>, <em>consider_hydrogens=False</em>, <em>new_res_name=""</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamer.ApplyOnResidue" title="Permalink to this definition">¶</a></dt> <dd><p>Iterates over every particle and searches for the according atom in -<strong>res</strong>. If it’s present, the position gets reset to the particle position. +<strong>res</strong>. If it’s present, the position gets reset to the particle position. If not, a new atom gets added to <strong>res</strong>. No atoms are removed from <strong>res</strong> in this process.</p> <table class="docutils field-list" frame="void" rules="none"> @@ -454,15 +467,15 @@ in this process.</p> <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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue to be reconstructed</li> -<li><strong>consider_hydrogens</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Flag, whether polar hydrogens should be added to +<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue to be reconstructed</li> +<li><strong>consider_hydrogens</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Flag, whether polar hydrogens should be added to <strong>res</strong></li> -<li><strong>new_res_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – New name of <strong>res</strong>. Nothing happens in case of the -default value (“”)</li> +<li><strong>new_res_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – New name of <strong>res</strong>. Nothing happens in case of the +default 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if not all required backbone atoms +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if not all required backbone atoms are present in <em>res</em></p> </td> </tr> @@ -480,12 +493,12 @@ particles in the rotamer.</p> <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>all_atom</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a>) – Container to which to apply rotamer</li> -<li><strong>res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index into <em>all_atom</em></li> +<li><strong>all_atom</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a>) – Container to which to apply rotamer</li> +<li><strong>res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index into <em>all_atom</em></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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>res_idx</em> is invalid</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>res_idx</em> is invalid</p> </td> </tr> </tbody> @@ -495,15 +508,15 @@ particles in the rotamer.</p> <dl class="method"> <dt id="promod3.sidechain.RRMRotamer.ToFrameResidue"> <code class="descname">ToFrameResidue</code><span class="sig-paren">(</span><em>res_idx</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamer.ToFrameResidue" title="Permalink to this definition">¶</a></dt> -<dd><p>Generates and returns a <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a> based on the internal +<dd><p>Generates and returns a <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a> based on the internal 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>res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx passed over to <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a> constructor</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx passed over to <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a> constructor</td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The constructed <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a></td> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The constructed <a class="reference internal" href="frame.html#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> @@ -539,7 +552,7 @@ particles.</p> <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 frame energy. This energy can either be manually set or 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 notranslate"><span class="pre">Frame</span></code></a> and the <a class="reference internal" href="#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamerGroup</span></code></a> this rotamer +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> and 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> this rotamer belongs to.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> @@ -584,7 +597,7 @@ belongs to.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Internal energy prefactor to be set</td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Internal energy prefactor to be set</td> </tr> </tbody> </table> @@ -597,7 +610,7 @@ belongs to.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Internal energy to be set</td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Internal energy to be set</td> </tr> </tbody> </table> @@ -610,7 +623,7 @@ belongs to.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Frame energy to be set</td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Frame energy to be set</td> </tr> </tbody> </table> @@ -623,7 +636,7 @@ belongs to.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Frame energy to be added</td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Frame energy to be added</td> </tr> </tbody> </table> @@ -636,7 +649,7 @@ belongs to.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Internal probability to be set</td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Internal probability to be set</td> </tr> </tbody> </table> @@ -657,18 +670,18 @@ One particle can be part of several subrotamers.</p> <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> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – List of <a class="reference internal" href="#promod3.sidechain.Particle" title="promod3.sidechain.Particle"><code class="xref py py-class docutils literal notranslate"><span class="pre">Particle</span></code></a> objects</li> -<li><strong>probability</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Probability of rotamers. In case of the SCWRL4 +<li><strong>particles</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – List 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> objects</li> +<li><strong>probability</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Probability of rotamers. In case of the SCWRL4 energy calculation, this directly controls the internal energy of that rotamer.</li> -<li><strong>T</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Temperature factor, that is used to generate a final +<li><strong>T</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Temperature factor, that is used to generate a final energy given the subrotamers according to the formalism described in the SCWRL4 paper.</li> -<li><strong>internal_e_prefactor</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Factor applied to the internal energy calculated +<li><strong>internal_e_prefactor</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Factor applied to the internal energy calculated as -log(<strong>probability</strong>/max_probability), where max_probability is the maximum rotamer probability of any rotamer in a -particular <a class="reference internal" href="#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamerGroup</span></code></a>.</li> +particular <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>.</li> </ul> </td> </tr> @@ -682,11 +695,11 @@ particular <a class="reference internal" href="#promod3.sidechain.FRMRotamerGrou <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of particle of interest</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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 notranslate"><span class="pre">Particle</span></code></a> at specified index</td> +<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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if index is invalid</td> +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if index is invalid</td> </tr> </tbody> </table> @@ -722,7 +735,7 @@ particular <a class="reference internal" href="#promod3.sidechain.FRMRotamerGrou <dt id="promod3.sidechain.FRMRotamer.ApplyOnResidue"> <code class="descname">ApplyOnResidue</code><span class="sig-paren">(</span><em>res</em>, <em>consider_hydrogens=False</em>, <em>new_res_name=""</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.ApplyOnResidue" title="Permalink to this definition">¶</a></dt> <dd><p>Iterates over every particle of the active subrotamer and searches for the -according atom in <strong>res</strong>. If it’s present, the position gets reset to the +according atom in <strong>res</strong>. If it’s present, the position gets reset to the particle position. If not, a new atom gets added to <strong>res</strong>. No atoms are removed from <strong>res</strong> in this process.</p> <table class="docutils field-list" frame="void" rules="none"> @@ -730,15 +743,15 @@ No atoms are removed from <strong>res</strong> in this process.</p> <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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue to be reconstructed</li> -<li><strong>consider_hydrogens</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Flag, whether polar hydrogens should be added to +<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue to be reconstructed</li> +<li><strong>consider_hydrogens</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – 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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – New name of residue. Nothing happens in case of the -default value (“”)</li> +<li><strong>new_res_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – New name of residue. Nothing happens in case of the +default 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if not all required backbone atoms +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if not all required backbone atoms are present in <em>res</em></p> </td> </tr> @@ -756,12 +769,12 @@ particles in the active surotamer.</p> <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>all_atom</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a>) – Container to which to apply rotamer</li> -<li><strong>res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index into <em>all_atom</em></li> +<li><strong>all_atom</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a>) – Container to which to apply rotamer</li> +<li><strong>res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index into <em>all_atom</em></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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>res_idx</em> is invalid</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>res_idx</em> is invalid</p> </td> </tr> </tbody> @@ -771,15 +784,15 @@ particles in the active surotamer.</p> <dl class="method"> <dt id="promod3.sidechain.FRMRotamer.ToFrameResidue"> <code class="descname">ToFrameResidue</code><span class="sig-paren">(</span><em>res_idx</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.ToFrameResidue" title="Permalink to this definition">¶</a></dt> -<dd><p>Generates and returns a <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a> based on the internal +<dd><p>Generates and returns a <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a> based on the internal particles of the active subrotamer.</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_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Idx passed over to <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a> constructor</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx passed over to <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a> constructor</td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The constructed <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a></td> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The constructed <a class="reference internal" href="frame.html#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> @@ -788,7 +801,7 @@ particles of the active subrotamer.</p> <dl class="method"> <dt id="promod3.sidechain.FRMRotamer.ToRRMRotamer"> <code class="descname">ToRRMRotamer</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.ToRRMRotamer" title="Permalink to this definition">¶</a></dt> -<dd><p>Generates and returns a <a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamer</span></code></a> based on the internal +<dd><p>Generates and returns a <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> based on the internal particles of the active subrotamer. Following parameters of the returned rotamer get set: probability (probability of the whole FRMRotamer), internal_e_prefactor (prefactor of the whole FRMRotamer), @@ -803,12 +816,12 @@ calculated), internal_energy (the internal energy of the whole FRMRotamer)</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of subrotamer</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of particle indices belonging to this +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if index is invalid</td> +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if index is invalid</td> </tr> </tbody> </table> @@ -844,7 +857,7 @@ particular subrotamer</td> <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 frame energy. This energy can either be manually set or 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 notranslate"><span class="pre">Frame</span></code></a> and the <a class="reference internal" href="#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamerGroup</span></code></a> this rotamer +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> and the <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> this rotamer belongs to.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> @@ -864,11 +877,11 @@ belongs to.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of subrotamer you want the frame energy from</td> +<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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if index is invalid</td> +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if index is invalid</td> </tr> </tbody> </table> @@ -920,7 +933,7 @@ belongs to.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Internal energy prefactor to be set</td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Internal energy prefactor to be set</td> </tr> </tbody> </table> @@ -933,7 +946,7 @@ belongs to.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Internal energy to be set</td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Internal energy to be set</td> </tr> </tbody> </table> @@ -946,7 +959,7 @@ belongs to.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Frame energy for full rotamer to be set</td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Frame energy for full rotamer to be set</td> </tr> </tbody> </table> @@ -960,8 +973,8 @@ belongs to.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Frame energy for single subrotamer to be set</li> -<li><strong>index</strong> – Index of subrotamer</li> +<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Frame energy for single subrotamer to be set</li> +<li><strong>index</strong> – Index of subrotamer</li> </ul> </td> </tr> @@ -976,7 +989,7 @@ belongs to.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Frame energy for full rotamer to be added</td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Frame energy for full rotamer to be added</td> </tr> </tbody> </table> @@ -990,8 +1003,8 @@ belongs to.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Frame energy for single subrotamer to be added</li> -<li><strong>index</strong> – Index of subrotamer</li> +<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Frame energy for single subrotamer to be added</li> +<li><strong>index</strong> – Index of subrotamer</li> </ul> </td> </tr> @@ -1006,7 +1019,7 @@ belongs to.</p> <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>indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – List of indices defining a subrotamer</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>indices</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – List of indices defining a subrotamer</td> </tr> </tbody> </table> @@ -1017,14 +1030,14 @@ belongs to.</p> <code class="descname">SetActiveSubrotamer</code><span class="sig-paren">(</span><em>idx</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.SetActiveSubrotamer" title="Permalink to this definition">¶</a></dt> <dd><p>The provided <strong>idx</strong> relates to the subrotamer definitions added at the rotamer buildup. This idx controls which subrotamer is used when -<a class="reference internal" href="#promod3.sidechain.FRMRotamer.ApplyOnResidue" title="promod3.sidechain.FRMRotamer.ApplyOnResidue"><code class="xref py py-func docutils literal notranslate"><span class="pre">ApplyOnResidue()</span></code></a>, <a class="reference internal" href="#promod3.sidechain.FRMRotamer.ToFrameResidue" title="promod3.sidechain.FRMRotamer.ToFrameResidue"><code class="xref py py-func docutils literal notranslate"><span class="pre">ToFrameResidue()</span></code></a> or <a class="reference internal" href="#promod3.sidechain.FRMRotamer.ToRRMRotamer" title="promod3.sidechain.FRMRotamer.ToRRMRotamer"><code class="xref py py-func docutils literal notranslate"><span class="pre">ToRRMRotamer()</span></code></a> +<a class="reference internal" href="#promod3.sidechain.FRMRotamer.ApplyOnResidue" title="promod3.sidechain.FRMRotamer.ApplyOnResidue"><code class="xref py py-func docutils literal"><span class="pre">ApplyOnResidue()</span></code></a>, <a class="reference internal" href="#promod3.sidechain.FRMRotamer.ToFrameResidue" title="promod3.sidechain.FRMRotamer.ToFrameResidue"><code class="xref py py-func docutils literal"><span class="pre">ToFrameResidue()</span></code></a> or <a class="reference internal" href="#promod3.sidechain.FRMRotamer.ToRRMRotamer" title="promod3.sidechain.FRMRotamer.ToRRMRotamer"><code class="xref py py-func docutils literal"><span class="pre">ToRRMRotamer()</span></code></a> gets called. By default, the value is 0 => first added subrotamer definition gets used.</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>idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of subrotamer definition applied on residues</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of subrotamer definition applied on residues</td> </tr> </tbody> </table> @@ -1043,7 +1056,7 @@ definition gets used.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Temperature factor for this rotamer</td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Temperature factor for this rotamer</td> </tr> </tbody> </table> @@ -1056,7 +1069,7 @@ definition gets used.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Internal probability to be set</td> +<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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Internal probability to be set</td> </tr> </tbody> </table> @@ -1070,22 +1083,22 @@ definition gets used.</p> <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>, <em>residue_index</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 notranslate"><span class="pre">RRMRotamer</span></code></a> objects for the same +<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.</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>rotamers</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – A list of <a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamer</span></code></a> objects</li> -<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Location of residue this <a class="reference internal" href="#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamerGroup</span></code></a> +<li><strong>rotamers</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – 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</li> +<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Location of residue this <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> represents. This index is important when calculating frame energies to neglect the interactions to frame particles of the same residue.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if provided <em>rotamers</em> is empty</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if provided <em>rotamers</em> is empty</p> </td> </tr> </tbody> @@ -1110,9 +1123,9 @@ particles of the same residue.</li> <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 notranslate"><span class="pre">RRMRotamer</span></code></a> at given <em>index</em></td> +<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 <em>index</em></td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>index</em> is invalid</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>index</em> is invalid</td> </tr> </tbody> </table> @@ -1129,18 +1142,18 @@ particles of the same residue.</li> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Rotamer index</li> -<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue to be reconstructed</li> -<li><strong>consider_hydrogens</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Flag, whether polar hydrogens should be added to +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Rotamer index</li> +<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue to be reconstructed</li> +<li><strong>consider_hydrogens</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – 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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – New name of residue. Nothing happens in case of the -default value (“”)</li> -<li><strong>all_atom</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a>) – Container to which to apply rotamer</li> -<li><strong>res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index into <em>all_atom</em></li> +<li><strong>new_res_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – New name of residue. Nothing happens in case of the +default value (“”)</li> +<li><strong>all_atom</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a>) – Container to which to apply rotamer</li> +<li><strong>res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index into <em>all_atom</em></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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if not all required backbone atoms +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if not all required backbone atoms are present in <em>res</em> or when <em>index</em> or <em>res_idx</em> are invalid</p> </td> </tr> @@ -1151,12 +1164,12 @@ are present in <em>res</em> or when <em>index</em> or <em>res_idx</em> are inval <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 <em>other</em> to current <a class="reference internal" href="#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamerGroup</span></code></a></p> +<dd><p>Adds all rotamers in <em>other</em> 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 notranslate"><span class="pre">RRMRotamerGroup</span></code></a>) – RotamerGroup to be merged in</td> +<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>) – RotamerGroup to be merged in</td> </tr> </tbody> </table> @@ -1171,7 +1184,7 @@ given <strong>frame</strong>.</p> <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</strong> (<a class="reference internal" href="frame.html#promod3.sidechain.Frame" title="promod3.sidechain.Frame"><code class="xref py py-class docutils literal notranslate"><span class="pre">Frame</span></code></a>) – Frame containing rigid particles</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>frame</strong> (<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>) – Frame containing rigid particles</td> </tr> </tbody> </table> @@ -1186,7 +1199,7 @@ given <strong>frame</strong>.</p> <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</strong> (<a class="reference internal" href="frame.html#promod3.sidechain.Frame" title="promod3.sidechain.Frame"><code class="xref py py-class docutils literal notranslate"><span class="pre">Frame</span></code></a>) – Frame containing rigid particles</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>frame</strong> (<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>) – Frame containing rigid particles</td> </tr> </tbody> </table> @@ -1204,22 +1217,22 @@ rotamers with <em>self_energy</em> > <em>l_e</em> + <em>thresh</em></p> <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>, <em>residue_index</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 notranslate"><span class="pre">FRMRotamer</span></code></a> objects for the same +<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.</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>rotamers</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – A list of <a class="reference internal" href="#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamer</span></code></a> objects</li> -<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Location of residue this <a class="reference internal" href="#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamerGroup</span></code></a> +<li><strong>rotamers</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – 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</li> +<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Location of residue this <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> represents. This index is important when calculating frame energies to neglect the interactions to frame particles of the same residue.</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if provided <em>rotamers</em> is empty</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if provided <em>rotamers</em> is empty</p> </td> </tr> </tbody> @@ -1244,9 +1257,9 @@ particles of the same residue.</li> <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 notranslate"><span class="pre">FRMRotamer</span></code></a> at given <em>index</em></td> +<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 <em>index</em></td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if <em>index</em> is invalid</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if <em>index</em> is invalid</td> </tr> </tbody> </table> @@ -1263,18 +1276,18 @@ particles of the same residue.</li> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Rotamer index</li> -<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue to be reconstructed</li> -<li><strong>consider_hydrogens</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Flag, whether polar hydrogens should be added to +<li><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Rotamer index</li> +<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue to be reconstructed</li> +<li><strong>consider_hydrogens</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – 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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – New name of residue. Nothing happens in case of the -default value (“”)</li> -<li><strong>all_atom</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">AllAtomPositions</span></code></a>) – Container to which to apply rotamer</li> -<li><strong>res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Residue index into <em>all_atom</em></li> +<li><strong>new_res_name</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – New name of residue. Nothing happens in case of the +default value (“”)</li> +<li><strong>all_atom</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">AllAtomPositions</span></code></a>) – Container to which to apply rotamer</li> +<li><strong>res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index into <em>all_atom</em></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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if not all required backbone atoms +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if not all required backbone atoms are present in <em>res</em> or when <em>index</em> or <em>res_idx</em> are invalid</p> </td> </tr> @@ -1285,12 +1298,12 @@ are present in <em>res</em> or when <em>index</em> or <em>res_idx</em> are inval <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 <em>other</em> to current <a class="reference internal" href="#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamerGroup</span></code></a></p> +<dd><p>Adds all rotamers in <em>other</em> 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 notranslate"><span class="pre">FRMRotamerGroup</span></code></a>) – RotamerGroup to be merged in</td> +<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>) – RotamerGroup to be merged in</td> </tr> </tbody> </table> @@ -1305,7 +1318,7 @@ given <strong>frame</strong>.</p> <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</strong> (<a class="reference internal" href="frame.html#promod3.sidechain.Frame" title="promod3.sidechain.Frame"><code class="xref py py-class docutils literal notranslate"><span class="pre">Frame</span></code></a>) – Frame containing rigid particles</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>frame</strong> (<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>) – Frame containing rigid particles</td> </tr> </tbody> </table> @@ -1320,7 +1333,7 @@ given <strong>frame</strong>.</p> <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</strong> (<a class="reference internal" href="frame.html#promod3.sidechain.Frame" title="promod3.sidechain.Frame"><code class="xref py py-class docutils literal notranslate"><span class="pre">Frame</span></code></a>) – Frame containing rigid particles</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>frame</strong> (<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>) – Frame containing rigid particles</td> </tr> </tbody> </table> @@ -1345,72 +1358,54 @@ rotamers with <em>self_energy</em> > <em>l_e</em> + <em>thresh</em></p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Representing Sidechains - Rotamers & Co.</a><ul> +<li><a class="reference internal" href="#rotamerid">RotamerID</a><ul> +<li><a class="reference internal" href="#how-can-i-get-an-id">How can I get an ID?</a></li> </ul> </li> +<li><a class="reference internal" href="#the-smallest-building-block-the-particle">The Smallest Building Block - The Particle</a><ul> +<li><a class="reference internal" href="#the-scwrl4-scoring-function">The SCWRL4 scoring function</a></li> +<li><a class="reference internal" href="#the-scwrl3-scoring-function">The SCWRL3 scoring function</a></li> +<li><a class="reference internal" href="#the-vina-scoring-function">The VINA scoring function</a></li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> +</li> +<li><a class="reference internal" href="#rotamers">Rotamers</a></li> +<li><a class="reference internal" href="#rotamer-groups">Rotamer Groups</a></li> +</ul> +</li> </ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> - <li>Previous: <a href="index.html" title="previous chapter"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> + <li><a href="index.html"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> + <li>Previous: <a href="index.html" title="previous chapter"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> <li>Next: <a href="frame.html" title="next chapter">Frame - The Rigid Part</a></li> </ul></li> </ul></li> </ul></li> </ul> </div> + <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> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -1419,11 +1414,11 @@ rotamers with <em>self_energy</em> > <em>l_e</em> + <em>thresh</em></p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/sidechain/rotamer.rst.txt" + <a href="../_sources/sidechain/rotamer.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/sidechain/rotamer_constructor.html b/doc/html/sidechain/rotamer_constructor.html index 58bf6321ebc7fe542313dad7b4a4a2f791eb9ced..7f0691781d8190af24b8f0195f2a805d20b982ea 100644 --- a/doc/html/sidechain/rotamer_constructor.html +++ b/doc/html/sidechain/rotamer_constructor.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Rotamer Constructor — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.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="Frame - The Rigid Part" href="frame.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -45,7 +58,7 @@ convenient functionality provided by ProMod3.</p> <em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">RotamerConstructor</code><a class="headerlink" href="#promod3.sidechain.RotamerConstructor" title="Permalink to this definition">¶</a></dt> <dd><p>Abstract base class that cannot be initialized from Python. It builds an interface implemented by scoring function specific constructors -(e.g. <a class="reference internal" href="#promod3.sidechain.SCWRL4RotamerConstructor" title="promod3.sidechain.SCWRL4RotamerConstructor"><code class="xref py py-class docutils literal notranslate"><span class="pre">SCWRL4RotamerConstructor</span></code></a>).</p> +(e.g. <a class="reference internal" href="#promod3.sidechain.SCWRL4RotamerConstructor" title="promod3.sidechain.SCWRL4RotamerConstructor"><code class="xref py py-class docutils literal"><span class="pre">SCWRL4RotamerConstructor</span></code></a>).</p> <dl class="method"> <dt id="promod3.sidechain.RotamerConstructor.ConstructRRMRotamerGroup"> <code class="descname">ConstructRRMRotamerGroup</code><span class="sig-paren">(</span><em>res</em>, <em>id</em>, <em>residue_index</em>, <em>rot_lib</em><span class="optional">[</span>, <em>phi = -1.0472</em>, <em>psi = -0.7854</em>, <em>n_ter = False</em>, <em>c_ter = False</em>, <em>probability_cutoff = 0.98</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RotamerConstructor.ConstructRRMRotamerGroup" title="Permalink to this definition">¶</a></dt> @@ -65,29 +78,29 @@ an interface implemented by scoring function specific constructors <dt> <code class="descname">ConstructRRMRotamerGroup</code><span class="sig-paren">(</span><em>all_atom_pos</em>, <em>aa_res_idx</em>, <em>id</em>, <em>residue_index</em>, <em>rot_lib_entries</em><span class="optional">[</span>, <em>phi = -1.0472</em>, <em>psi = -0.7854</em>, <em>n_ter = False</em>, <em>c_ter = False</em>, <em>probability_cutoff = 0.98</em><span class="optional">]</span><span class="sig-paren">)</span></dt> <dd><p>All functions are also avaible for their flexible rotamer model counterpart. -=>ConstructFRMRotamerGroup(…) with the same parameters.</p> +=>ConstructFRMRotamerGroup(...) with the same 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 simple"> -<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – To extract the required backbone atoms</li> -<li><strong>all_atom_pos</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.AllAtomPositions</span></code></a>) – To extract the required backbone atoms</li> -<li><strong>aa_res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of residue in <strong>all_atom_pos</strong> from which to +<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – To extract the required backbone atoms</li> +<li><strong>all_atom_pos</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.AllAtomPositions</span></code></a>) – To extract the required backbone atoms</li> +<li><strong>aa_res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of residue in <strong>all_atom_pos</strong> from which to extract the required backbone atoms</li> -<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>) – Identifies the sidechain.</li> -<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Important for the energy calculations towards the -<a class="reference internal" href="frame.html#promod3.sidechain.Frame" title="promod3.sidechain.Frame"><code class="xref py py-class docutils literal notranslate"><span class="pre">Frame</span></code></a> you don’t want to calculate a pairwise +<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>) – Identifies the sidechain.</li> +<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Important for the energy calculations towards the +<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> you don’t want to calculate a pairwise energy of the sidechain particles towards particles -representing the own backbone…</li> -<li><strong>rot_lib</strong> (<a class="reference internal" href="rotamer_lib.html#promod3.sidechain.RotamerLib" title="promod3.sidechain.RotamerLib"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerLib</span></code></a> / <a class="reference internal" href="rotamer_lib.html#promod3.sidechain.BBDepRotamerLib" title="promod3.sidechain.BBDepRotamerLib"><code class="xref py py-class docutils literal notranslate"><span class="pre">BBDepRotamerLib</span></code></a>) – To search for rotamers</li> -<li><strong>rot_lib_entries</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>) – <a class="reference internal" href="rotamer_lib.html#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerLibEntry</span></code></a> objects to circumvent the +representing the own backbone...</li> +<li><strong>rot_lib</strong> (<a class="reference internal" href="rotamer_lib.html#promod3.sidechain.RotamerLib" title="promod3.sidechain.RotamerLib"><code class="xref py py-class docutils literal"><span class="pre">RotamerLib</span></code></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>) – To search for rotamers</li> +<li><strong>rot_lib_entries</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) – <a class="reference internal" href="rotamer_lib.html#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal"><span class="pre">RotamerLibEntry</span></code></a> objects to circumvent the direct use of a rotamer library</li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Phi dihedral angle</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Psi dihedral angle</li> -<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether the residue is n-terminal</li> -<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether the residue is c-terminal</li> -<li><strong>probability_cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – For some rotamers, there might be many low +<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Phi dihedral angle</li> +<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Psi dihedral angle</li> +<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is n-terminal</li> +<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is c-terminal</li> +<li><strong>probability_cutoff</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – For some rotamers, there might be many low probability entries in the library. The function adds single rotamers to the group until the cumulative probability of the added rotamers is @@ -99,10 +112,10 @@ larger or equal <strong>probability_cutoff</strong>.</li> with internal energies assigned.</p> </td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamerGroup</span></code></a></p> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><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></p> </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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> when not all required backbone +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> when not all required backbone atoms are present in <strong>residue</strong> or not all required atom positions are set in <strong>all_atom_pos</strong></p> </td> @@ -120,32 +133,32 @@ positions are set in <strong>all_atom_pos</strong></p> <dt> <code class="descname">ConstructBackboneFrameResidue</code><span class="sig-paren">(</span><em>all_atom_pos</em>, <em>aa_res_idx</em>, <em>id</em>, <em>residue_index</em><span class="optional">[</span>, <em>phi = -1.0472</em>, <em>psi = -0.7854 n_ter = False</em>, <em>c_ter = False</em><span class="optional">]</span><span class="sig-paren">)</span></dt> <dd><p>Constructs frame residues only containing backbone atoms (the ones that -don’t show up in a rotamer).</p> +don’t show up in a 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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue from which to extract the backbone positions</li> -<li><strong>all_atom_pos</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.AllAtomPositions</span></code></a>) – To extract the backbone positions</li> -<li><strong>aa_res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of residue in <strong>all_atom_pos</strong> from which to +<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue from which to extract the backbone positions</li> +<li><strong>all_atom_pos</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.AllAtomPositions</span></code></a>) – To extract the backbone positions</li> +<li><strong>aa_res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of residue in <strong>all_atom_pos</strong> from which to extract the backbone positions</li> -<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>) – Identifies the sidechain</li> -<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Important for the energy calculations towards the -<a class="reference internal" href="frame.html#promod3.sidechain.Frame" title="promod3.sidechain.Frame"><code class="xref py py-class docutils literal notranslate"><span class="pre">Frame</span></code></a> you don’t want to calculate a pairwise +<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>) – Identifies the sidechain</li> +<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Important for the energy calculations towards the +<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> you don’t want to calculate a pairwise energy of the sidechain particles towards particles -representing the own backbone…</li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> -<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether the residue is n-terminal</li> -<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether the residue is c-terminal</li> +representing the own backbone...</li> +<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> +<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> +<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is n-terminal</li> +<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is c-terminal</li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="frame.html#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> -<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> when not all required backbone +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> when not all required backbone atoms are present in <strong>residue</strong> or not all required atom positions are set in <strong>all_atom_pos</strong>.</p> </td> @@ -169,26 +182,26 @@ you observe in a rotamer).</p> <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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue from which to extract the backbone positions</li> -<li><strong>all_atom_pos</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal notranslate"><span class="pre">promod3.loop.AllAtomPositions</span></code></a>) – To extract the backbone positions</li> -<li><strong>aa_res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of residue in <strong>all_atom_pos</strong> from which to +<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue from which to extract the backbone positions</li> +<li><strong>all_atom_pos</strong> (<a class="reference internal" href="../loop/all_atom.html#promod3.loop.AllAtomPositions" title="promod3.loop.AllAtomPositions"><code class="xref py py-class docutils literal"><span class="pre">promod3.loop.AllAtomPositions</span></code></a>) – To extract the backbone positions</li> +<li><strong>aa_res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of residue in <strong>all_atom_pos</strong> from which to extract the backbone positions</li> -<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>) – Identifies the sidechain</li> -<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Important for the energy calculations towards the -<a class="reference internal" href="frame.html#promod3.sidechain.Frame" title="promod3.sidechain.Frame"><code class="xref py py-class docutils literal notranslate"><span class="pre">Frame</span></code></a> you don’t want to calculate a pairwise +<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>) – Identifies the sidechain</li> +<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Important for the energy calculations towards the +<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> you don’t want to calculate a pairwise energy of the sidechain particles towards particles -representing the own backbone…</li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> -<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether the residue is n-terminal</li> -<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether the residue is c-terminal</li> +representing the own backbone...</li> +<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> +<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> +<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is n-terminal</li> +<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is c-terminal</li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="frame.html#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> -<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> when not all required sidechain +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> when not all required sidechain atoms are present in <strong>residue</strong> or not all required sidechain atom positions are set in <strong>all_atom_pos</strong>.</p> </td> @@ -202,22 +215,22 @@ atom positions are set in <strong>all_atom_pos</strong>.</p> <code class="descname">AssignInternalEnergies</code><span class="sig-paren">(</span><em>rot_group</em>, <em>id</em>, <em>residue_index</em><span class="optional">[</span>, <em>phi = -1.0472</em>, <em>psi = -0.7854</em>, <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.RotamerConstructor.AssignInternalEnergies" title="Permalink to this definition">¶</a></dt> <dd><p>Assigns an internal energy to every rotamer in <em>rot_group</em>, i.e. an energy value before looking at any structural component of the energy function. -The default implementation simply assigns 0.0 to every rotamer, it’s up +The default implementation simply assigns 0.0 to every rotamer, it’s up to the energy function specific constructors to override that behaviour.</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>rot_group</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamerGroup</span></code></a> / <a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamerGroup</span></code></a>) – containing all rotamers for which internal energies have +<li><strong>rot_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> / <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>) – containing all rotamers for which internal energies have to be assigned</li> -<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>) – Identifies the sidechain</li> -<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The index of the residue which is represented by +<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>) – Identifies the sidechain</li> +<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The index of the residue which is represented by <em>rot_group</em></li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> -<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether the residue is n-terminal</li> -<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether the residue is c-terminal</li> +<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> +<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> +<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is n-terminal</li> +<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is c-terminal</li> </ul> </td> </tr> @@ -234,14 +247,14 @@ to be assigned</li> <dt id="promod3.sidechain.SCWRL4RotamerConstructor"> <em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">SCWRL4RotamerConstructor</code><span class="sig-paren">(</span><em>cb_in_sidechain</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.SCWRL4RotamerConstructor" title="Permalink to this definition">¶</a></dt> <dd><p>This object implements the full interface defined in -<a class="reference internal" href="#promod3.sidechain.RotamerConstructor" title="promod3.sidechain.RotamerConstructor"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerConstructor</span></code></a> and constructs rotamers and frame residues that +<a class="reference internal" href="#promod3.sidechain.RotamerConstructor" title="promod3.sidechain.RotamerConstructor"><code class="xref py py-class docutils literal"><span class="pre">RotamerConstructor</span></code></a> and constructs rotamers and frame residues that are parametrized according to the SCWRL4 method. They contain all heavy atoms, but also the polar hydrogens.</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>cb_in_sidechain</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – If set to true, all constructed rotamers will contain +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>cb_in_sidechain</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – If set to true, all constructed rotamers will contain the cb atom. This flag also affects the construction of frame residues and controls whether the cb atom shows up in the backbone frame residues or sidechain @@ -249,7 +262,7 @@ frame residues. This is useful when you want to represent ALA or GLY with actual rotamers, but be aware of increased runtime. This flag can be set to False for most -modeling applications and you just don’t generate +modeling applications and you just don’t generate any rotamers for ALA and GLY.</td> </tr> </tbody> @@ -257,9 +270,9 @@ any rotamers for ALA and GLY.</td> <dl class="method"> <dt id="promod3.sidechain.SCWRL4RotamerConstructor.ConstructFrameResidue"> <code class="descname">ConstructFrameResidue</code><span class="sig-paren">(</span><em>residue</em>, <em>residue_index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.SCWRL4RotamerConstructor.ConstructFrameResidue" title="Permalink to this definition">¶</a></dt> -<dd><p>Constructs a <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a> from a <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>. +<dd><p>Constructs a <a class="reference internal" href="frame.html#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="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><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’t be any parametrization of hbonds in this function. All heavy +there won’t be any parametrization of hbonds in this function. All heavy atoms of the residue will be represented as carbons and hydrogens are skipped.</p> <table class="docutils field-list" frame="void" rules="none"> @@ -267,13 +280,13 @@ skipped.</p> <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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue from which all atoms will be taken to -construct a <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a>.</li> -<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index this <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a> belongs to.</li> +<li><strong>residue</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue from which all atoms will be taken to +construct a <a class="reference internal" href="frame.html#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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index this <a class="reference internal" href="frame.html#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> </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="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a></p> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><a class="reference internal" href="frame.html#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> @@ -283,9 +296,9 @@ construct a <a class="reference internal" href="frame.html#promod3.sidechain.Fra <dl class="method"> <dt id="promod3.sidechain.SCWRL4RotamerConstructor.ConstructFrameResidueHeuristic"> <code class="descname">ConstructFrameResidueHeuristic</code><span class="sig-paren">(</span><em>residue</em>, <em>residue_index</em>, <em>comp_lib</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.SCWRL4RotamerConstructor.ConstructFrameResidueHeuristic" title="Permalink to this definition">¶</a></dt> -<dd><p>Constructs a <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a> from a <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a> using +<dd><p>Constructs a <a class="reference internal" href="frame.html#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="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a> using a heuristic treatment of the atoms based on the passed compounds library. -This is meant to be used as an alternative to <a class="reference internal" href="#promod3.sidechain.SCWRL4RotamerConstructor.ConstructFrameResidue" title="promod3.sidechain.SCWRL4RotamerConstructor.ConstructFrameResidue"><code class="xref py py-func docutils literal notranslate"><span class="pre">ConstructFrameResidue()</span></code></a>, +This is meant to be used as an alternative to <a class="reference internal" href="#promod3.sidechain.SCWRL4RotamerConstructor.ConstructFrameResidue" title="promod3.sidechain.SCWRL4RotamerConstructor.ConstructFrameResidue"><code class="xref py py-func docutils literal"><span class="pre">ConstructFrameResidue()</span></code></a>, which will be called by this function if the residue is not known by the given compounds library. Only non-hydrogen atoms are considered and by default added as uncharged @@ -293,7 +306,7 @@ carbons. Special treatment is used for atoms known by the compounds library in the following cases:</p> <ul class="simple"> <li>carbons, nitrogens, oxygens and sulfur particles use an appropriate type -as in the <code class="xref py py-class docutils literal notranslate"><span class="pre">SidechainParticle</span></code> enumeration</li> +as in the <code class="xref py py-class docutils literal"><span class="pre">SidechainParticle</span></code> enumeration</li> <li>carbonyls are added as charged oxygen particles as hbond acceptors</li> </ul> <table class="docutils field-list" frame="void" rules="none"> @@ -301,14 +314,14 @@ as in the <code class="xref py py-class docutils literal notranslate"><span clas <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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue from which all atoms will be taken to -construct a <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a>.</li> -<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index this <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a> belongs to.</li> -<li><strong>comp_lib</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/conop/compoundlib/#ost.conop.CompoundLib" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.conop.CompoundLib</span></code></a>) – OST compound library to use</li> +<li><strong>residue</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue from which all atoms will be taken to +construct a <a class="reference internal" href="frame.html#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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index this <a class="reference internal" href="frame.html#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>comp_lib</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/conop/compoundlib/#ost.conop.CompoundLib" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.CompoundLib</span></code></a>) – OST compound library to use</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="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a></p> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><a class="reference internal" href="frame.html#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> @@ -318,7 +331,7 @@ construct a <a class="reference internal" href="frame.html#promod3.sidechain.Fra <dl class="method"> <dt id="promod3.sidechain.SCWRL4RotamerConstructor.AssignInternalEnergies"> <code class="descname">AssignInternalEnergies</code><span class="sig-paren">(</span><em>rot_group</em>, <em>id</em>, <em>residue_index</em><span class="optional">[</span>, <em>phi = -1.0472</em>, <em>psi = -0.7854</em>, <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.SCWRL4RotamerConstructor.AssignInternalEnergies" title="Permalink to this definition">¶</a></dt> -<dd><p>Overrides the method defined in <a class="reference internal" href="#promod3.sidechain.RotamerConstructor" title="promod3.sidechain.RotamerConstructor"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerConstructor</span></code></a>. +<dd><p>Overrides the method defined in <a class="reference internal" href="#promod3.sidechain.RotamerConstructor" title="promod3.sidechain.RotamerConstructor"><code class="xref py py-class docutils literal"><span class="pre">RotamerConstructor</span></code></a>. Takes the rotamer group and assigns every single rotamer its internal energy based on the probabilistic approach used by SCWRL4. => -internal_e_prefac*log(p/max_p), where internal_e_prefac and p are @@ -331,15 +344,15 @@ is already called at construction and the energies are properly assigned.</p> <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>rot_group</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamerGroup</span></code></a> / <a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamerGroup</span></code></a>) – containing all rotamers for which internal energies have +<li><strong>rot_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> / <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>) – containing all rotamers for which internal energies have to be assigned</li> -<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>) – Identifies the sidechain</li> -<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The index of the residue which is represented by +<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>) – Identifies the sidechain</li> +<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The index of the residue which is represented by <em>rot_group</em></li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> -<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether the residue is n-terminal</li> -<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether the residue is c-terminal</li> +<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> +<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> +<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is n-terminal</li> +<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is c-terminal</li> </ul> </td> </tr> @@ -353,13 +366,13 @@ to be assigned</li> <dt id="promod3.sidechain.SCWRL3RotamerConstructor"> <em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">SCWRL3RotamerConstructor</code><span class="sig-paren">(</span><em>cb_in_sidechain</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.SCWRL3RotamerConstructor" title="Permalink to this definition">¶</a></dt> <dd><p>This object implements the full interface defined in -<a class="reference internal" href="#promod3.sidechain.RotamerConstructor" title="promod3.sidechain.RotamerConstructor"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerConstructor</span></code></a> and constructs rotamers and frame residues that +<a class="reference internal" href="#promod3.sidechain.RotamerConstructor" title="promod3.sidechain.RotamerConstructor"><code class="xref py py-class docutils literal"><span class="pre">RotamerConstructor</span></code></a> and constructs rotamers and frame residues that are parametrized according to the SCWRL3 method. They contain only heavy 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"><strong>cb_in_sidechain</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – If set to true, all constructed rotamers will contain +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>cb_in_sidechain</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – If set to true, all constructed rotamers will contain the cb atom. This flag also affects the construction of frame residues and controls whether the cb atom shows up in the backbone frame residues or sidechain @@ -367,7 +380,7 @@ frame residues. This is useful when you want to represent ALA or GLY with actual rotamers, but be aware of increased runtime. This flag can be set to False for most -modeling applications and you just don’t generate +modeling applications and you just don’t generate any rotamers for ALA and GLY.</td> </tr> </tbody> @@ -375,7 +388,7 @@ any rotamers for ALA and GLY.</td> <dl class="method"> <dt id="promod3.sidechain.SCWRL3RotamerConstructor.AssignInternalEnergies"> <code class="descname">AssignInternalEnergies</code><span class="sig-paren">(</span><em>rot_group</em>, <em>id</em>, <em>residue_index</em><span class="optional">[</span>, <em>phi = -1.0472</em>, <em>psi = -0.7854</em>, <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.SCWRL3RotamerConstructor.AssignInternalEnergies" title="Permalink to this definition">¶</a></dt> -<dd><p>Overrides the method defined in <a class="reference internal" href="#promod3.sidechain.RotamerConstructor" title="promod3.sidechain.RotamerConstructor"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerConstructor</span></code></a>. +<dd><p>Overrides the method defined in <a class="reference internal" href="#promod3.sidechain.RotamerConstructor" title="promod3.sidechain.RotamerConstructor"><code class="xref py py-class docutils literal"><span class="pre">RotamerConstructor</span></code></a>. Takes the rotamer group and assigns every single rotamer its internal energy based on the probabilistic approach used by SCWRL3. => -internal_e_prefac*log(p/max_p), where internal_e_prefac and p are @@ -388,15 +401,15 @@ is already called at construction and the energies are properly assigned.</p> <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>rot_group</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamerGroup</span></code></a> / <a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamerGroup</span></code></a>) – containing all rotamers for which internal energies have +<li><strong>rot_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> / <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>) – containing all rotamers for which internal energies have to be assigned</li> -<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>) – Identifies the sidechain</li> -<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The index of the residue which is represented by +<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>) – Identifies the sidechain</li> +<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The index of the residue which is represented by <em>rot_group</em></li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> -<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether the residue is n-terminal</li> -<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether the residue is c-terminal</li> +<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> +<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> +<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is n-terminal</li> +<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is c-terminal</li> </ul> </td> </tr> @@ -410,13 +423,13 @@ to be assigned</li> <dt id="promod3.sidechain.VINARotamerConstructor"> <em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">VINARotamerConstructor</code><span class="sig-paren">(</span><em>cb_in_sidechain</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.VINARotamerConstructor" title="Permalink to this definition">¶</a></dt> <dd><p>This object implements the full interface defined in -<a class="reference internal" href="#promod3.sidechain.RotamerConstructor" title="promod3.sidechain.RotamerConstructor"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerConstructor</span></code></a> and constructs rotamers and frame residues that +<a class="reference internal" href="#promod3.sidechain.RotamerConstructor" title="promod3.sidechain.RotamerConstructor"><code class="xref py py-class docutils literal"><span class="pre">RotamerConstructor</span></code></a> and constructs rotamers and frame residues that are parametrized according to the VINA method. They contain only heavy 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"><strong>cb_in_sidechain</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – If set to true, all constructed rotamers will contain +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>cb_in_sidechain</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – If set to true, all constructed rotamers will contain the cb atom. This flag also affects the construction of frame residues and controls whether the cb atom shows up in the backbone frame residues or sidechain @@ -424,7 +437,7 @@ frame residues. This is useful when you want to represent ALA or GLY with actual rotamers, but be aware of increased runtime. This flag can be set to False for most -modeling applications and you just don’t generate +modeling applications and you just don’t generate any rotamers for ALA and GLY.</td> </tr> </tbody> @@ -432,7 +445,7 @@ any rotamers for ALA and GLY.</td> <dl class="method"> <dt id="promod3.sidechain.VINARotamerConstructor.AssignInternalEnergies"> <code class="descname">AssignInternalEnergies</code><span class="sig-paren">(</span><em>rot_group</em>, <em>id</em>, <em>residue_index</em><span class="optional">[</span>, <em>phi = -1.0472</em>, <em>psi = -0.7854</em>, <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.VINARotamerConstructor.AssignInternalEnergies" title="Permalink to this definition">¶</a></dt> -<dd><p>Overrides the method defined in <a class="reference internal" href="#promod3.sidechain.RotamerConstructor" title="promod3.sidechain.RotamerConstructor"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerConstructor</span></code></a>. +<dd><p>Overrides the method defined in <a class="reference internal" href="#promod3.sidechain.RotamerConstructor" title="promod3.sidechain.RotamerConstructor"><code class="xref py py-class docutils literal"><span class="pre">RotamerConstructor</span></code></a>. Takes the rotamer group and assigns every single rotamer its internal energy based on the probabilistic approach used by SCWRL3/SCWRL4. => -internal_e_prefac*log(p/max_p), where internal_e_prefac and p are @@ -445,15 +458,15 @@ is already called at construction and the energies are properly assigned.</p> <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>rot_group</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamerGroup</span></code></a> / <a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamerGroup</span></code></a>) – containing all rotamers for which internal energies have +<li><strong>rot_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> / <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>) – containing all rotamers for which internal energies have to be assigned</li> -<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>) – Identifies the sidechain</li> -<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – The index of the residue which is represented by +<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>) – Identifies the sidechain</li> +<li><strong>residue_index</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The index of the residue which is represented by <em>rot_group</em></li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> -<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether the residue is n-terminal</li> -<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Whether the residue is c-terminal</li> +<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> +<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> +<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is n-terminal</li> +<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is c-terminal</li> </ul> </td> </tr> @@ -464,7 +477,7 @@ to be assigned</li> <dl class="method"> <dt id="promod3.sidechain.VINARotamerConstructor.ConstructFrameResidueHeuristic"> <code class="descname">ConstructFrameResidueHeuristic</code><span class="sig-paren">(</span><em>res</em>, <em>res_idx</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.VINARotamerConstructor.ConstructFrameResidueHeuristic" title="Permalink to this definition">¶</a></dt> -<dd><p>Constructs a <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a> from a <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a> using +<dd><p>Constructs a <a class="reference internal" href="frame.html#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="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a> using a heuristic treatment of the atoms. It is important that the residue has proper bonds assigned, as they influence the atom typing procedure. Furthermore, you need hydrogens to automatically estimate the correct @@ -473,46 +486,46 @@ Alternatively you can assign generic properties to oxygens and nitrogens to circumvent the requirement of hydrogens. This is further described for the case of oxygen.</p> <ul class="simple"> -<li>Carbon is assigned C_VINAParticle <a class="reference internal" href="rotamer.html#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal notranslate"><span class="pre">VINAParticleType</span></code></a> if its only +<li>Carbon is assigned C_VINAParticle <a class="reference internal" href="rotamer.html#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal"><span class="pre">VINAParticleType</span></code></a> if its only bound to other carbons or hydrogens (and deuterium). All other carbons are -assigned C_P_VINAParticle <a class="reference internal" href="rotamer.html#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal notranslate"><span class="pre">VINAParticleType</span></code></a>.</li> +assigned C_P_VINAParticle <a class="reference internal" href="rotamer.html#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal"><span class="pre">VINAParticleType</span></code></a>.</li> <li>In case of oxygen, the heuristic first checks for set generic properties. -If the atom has the bool properties “is_hbond_acceptor” AND -“is_hbond_donor” set, it decides between the according oxygen types -in <a class="reference internal" href="rotamer.html#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal notranslate"><span class="pre">VINAParticleType</span></code></a>. If the generic properties are not set, +If the atom has the bool properties “is_hbond_acceptor” AND +“is_hbond_donor” set, it decides between the according oxygen types +in <a class="reference internal" href="rotamer.html#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal"><span class="pre">VINAParticleType</span></code></a>. If the generic properties are not set, every oxygen is assumed to be an hbond acceptor. But only an hbond donor if its bound to a hydrogen (or deuterium). You can set the generic -properties for an <a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.AtomHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.AtomHandle</span></code></a> by calling -at.SetBoolProp(“is_hbond_donor”, False) and -at.SetBoolProp(“is_hbond_acceptor”, True). An oxygen with those -generic properties is assigned O_A_VINAParticle <a class="reference internal" href="rotamer.html#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal notranslate"><span class="pre">VINAParticleType</span></code></a>.</li> +properties for an <a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.AtomHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.AtomHandle</span></code></a> by calling +at.SetBoolProp(“is_hbond_donor”, False) and +at.SetBoolProp(“is_hbond_acceptor”, True). An oxygen with those +generic properties is assigned O_A_VINAParticle <a class="reference internal" href="rotamer.html#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal"><span class="pre">VINAParticleType</span></code></a>.</li> <li>In case of nitrogen, the heuristic again first checks for set generic properties. -If the atom has the bool properties “is_hbond_acceptor” AND -“is_hbond_donor” set, it decides between the according nitrogen types -in <a class="reference internal" href="rotamer.html#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal notranslate"><span class="pre">VINAParticleType</span></code></a>. If not, nitrogen is expected to be an +If the atom has the bool properties “is_hbond_acceptor” AND +“is_hbond_donor” set, it decides between the according nitrogen types +in <a class="reference internal" href="rotamer.html#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal"><span class="pre">VINAParticleType</span></code></a>. If not, nitrogen is expected to be an hbond donor if it is bound to a hydrogen (or deuterium) and an hbond acceptor if it is bound to less than 3 other atoms (sounds horrible but works surprisingly well).</li> -<li>Atoms of elements [“MG”, “MN”, “ZN”, “CA”, “FE”] are assigned -M_VINAParticle <a class="reference internal" href="rotamer.html#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal notranslate"><span class="pre">VINAParticleType</span></code></a>.</li> -<li>Atoms of elements [“S”, “P”, “F”, “CL”, “BR”, “I”] are assigned their -corresponding <a class="reference internal" href="rotamer.html#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal notranslate"><span class="pre">VINAParticleType</span></code></a>.</li> +<li>Atoms of elements [“MG”, “MN”, “ZN”, “CA”, “FE”] are assigned +M_VINAParticle <a class="reference internal" href="rotamer.html#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal"><span class="pre">VINAParticleType</span></code></a>.</li> +<li>Atoms of elements [“S”, “P”, “F”, “CL”, “BR”, “I”] are assigned their +corresponding <a class="reference internal" href="rotamer.html#promod3.sidechain.VINAParticleType" title="promod3.sidechain.VINAParticleType"><code class="xref py py-class docutils literal"><span class="pre">VINAParticleType</span></code></a>.</li> <li>All other atoms are neglected and not added to the returned -<a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a>.</li> +<a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a>.</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>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue from which to create the -<a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a></li> -<li><strong>res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index that is set in <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a></li> +<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue from which to create the +<a class="reference internal" href="frame.html#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>res_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index that is set in <a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a></li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference internal" href="frame.html#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameResidue</span></code></a></p> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference internal" href="frame.html#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> @@ -522,16 +535,16 @@ corresponding <a class="reference internal" href="rotamer.html#promod3.sidechain <dl class="method"> <dt id="promod3.sidechain.VINARotamerConstructor.ConstructRRMRotamerHeuristic"> <code class="descname">ConstructRRMRotamerHeuristic</code><span class="sig-paren">(</span><em>res</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.VINARotamerConstructor.ConstructRRMRotamerHeuristic" title="Permalink to this definition">¶</a></dt> -<dd><p>Construct a <a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamer</span></code></a> with the atom typing heuristic -as in the <a class="reference internal" href="#promod3.sidechain.VINARotamerConstructor.ConstructFrameResidueHeuristic" title="promod3.sidechain.VINARotamerConstructor.ConstructFrameResidueHeuristic"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ConstructFrameResidueHeuristic()</span></code></a> method.</p> +<dd><p>Construct a <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> with the atom typing heuristic +as in the <a class="reference internal" href="#promod3.sidechain.VINARotamerConstructor.ConstructFrameResidueHeuristic" title="promod3.sidechain.VINARotamerConstructor.ConstructFrameResidueHeuristic"><code class="xref py py-meth docutils literal"><span class="pre">ConstructFrameResidueHeuristic()</span></code></a> method.</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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue from which to create the -<a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamer</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue from which to create the +<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></td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">RRMRotamer</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><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></td> </tr> </tbody> </table> @@ -540,18 +553,18 @@ as in the <a class="reference internal" href="#promod3.sidechain.VINARotamerCons <dl class="method"> <dt id="promod3.sidechain.VINARotamerConstructor.ConstructFRMRotamerHeuristic"> <code class="descname">ConstructFRMRotamerHeuristic</code><span class="sig-paren">(</span><em>res</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.VINARotamerConstructor.ConstructFRMRotamerHeuristic" title="Permalink to this definition">¶</a></dt> -<dd><p>Construct a <a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamer</span></code></a> with the atom typing heuristic -as in the <a class="reference internal" href="#promod3.sidechain.VINARotamerConstructor.ConstructFrameResidueHeuristic" title="promod3.sidechain.VINARotamerConstructor.ConstructFrameResidueHeuristic"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ConstructFrameResidueHeuristic()</span></code></a> method. The -constructed <a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamer</span></code></a> only contains one subrotamer that +<dd><p>Construct a <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> with the atom typing heuristic +as in the <a class="reference internal" href="#promod3.sidechain.VINARotamerConstructor.ConstructFrameResidueHeuristic" title="promod3.sidechain.VINARotamerConstructor.ConstructFrameResidueHeuristic"><code class="xref py py-meth docutils literal"><span class="pre">ConstructFrameResidueHeuristic()</span></code></a> method. The +constructed <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> only contains one subrotamer that contains the atoms from <em>residue</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>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue from which to create the -<a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamer</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue from which to create the +<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></td> </tr> -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamer</span></code></a></td> +<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><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></td> </tr> </tbody> </table> @@ -569,45 +582,20 @@ contains the atoms from <em>residue</em>.</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <h3><a href="../index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Rotamer Constructor</a><ul> +<li><a class="reference internal" href="#the-rotamerconstructor-baseclass">The RotamerConstructor Baseclass</a></li> +<li><a class="reference internal" href="#scoring-function-specific-rotamerconstructors">Scoring Function Specific RotamerConstructors</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> <li>Previous: <a href="frame.html" title="previous chapter">Frame - The Rigid Part</a></li> <li>Next: <a href="rotamer_lib.html" title="next chapter">Rotamer Library</a></li> </ul></li> @@ -615,26 +603,23 @@ contains the atoms from <em>residue</em>.</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/sidechain/rotamer_constructor.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -643,11 +628,11 @@ contains the atoms from <em>residue</em>.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/sidechain/rotamer_constructor.rst.txt" + <a href="../_sources/sidechain/rotamer_constructor.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/sidechain/rotamer_lib.html b/doc/html/sidechain/rotamer_lib.html index 4b83caea4058a3d051a58fd71477ca32a32ad799..f428916047849ff61fa177b37a8f7ec471a74850 100644 --- a/doc/html/sidechain/rotamer_lib.html +++ b/doc/html/sidechain/rotamer_lib.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Rotamer Library — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" /> <link rel="next" title="Rotamer Graph" href="graph.html" /> <link rel="prev" title="Rotamer Constructor" href="rotamer_constructor.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -42,9 +55,9 @@ 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 notranslate"><span class="pre">BBDepRotamerLib</span></code></a> organizing rotamers for the different aminoacids -in equidistant phi/psi bins, as well as a simple <a class="reference internal" href="#promod3.sidechain.RotamerLib" title="promod3.sidechain.RotamerLib"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerLib</span></code></a>. -Both libraries are containers for <a class="reference internal" href="#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerLibEntry</span></code></a> and are optimized +<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, as well as a simple <a class="reference internal" href="#promod3.sidechain.RotamerLib" title="promod3.sidechain.RotamerLib"><code class="xref py py-class docutils literal"><span class="pre">RotamerLib</span></code></a>. +Both libraries are containers 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 are 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 @@ -61,20 +74,20 @@ mode you can get the rotamers out of it or dump it to disk.</p> <em class="property">static </em><code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RotamerLib.Load" title="Permalink to this definition">¶</a></dt> <dt id="promod3.sidechain.RotamerLib.LoadPortable"> <em class="property">static </em><code class="descname">LoadPortable</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RotamerLib.LoadPortable" title="Permalink to this definition">¶</a></dt> -<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.sidechain.RotamerLib.Save" title="promod3.sidechain.RotamerLib.Save"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Save()</span></code></a> (optimized for fast -reading) / portable file generated with <a class="reference internal" href="#promod3.sidechain.RotamerLib.SavePortable" title="promod3.sidechain.RotamerLib.SavePortable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SavePortable()</span></code></a> (slower but +<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.sidechain.RotamerLib.Save" title="promod3.sidechain.RotamerLib.Save"><code class="xref py py-meth docutils literal"><span class="pre">Save()</span></code></a> (optimized for fast +reading) / portable file generated with <a class="reference internal" href="#promod3.sidechain.RotamerLib.SavePortable" title="promod3.sidechain.RotamerLib.SavePortable"><code class="xref py py-meth docutils literal"><span class="pre">SavePortable()</span></code></a> (slower but less machine-dependent).</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">A rotamer library</td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.sidechain.RotamerLib" title="promod3.sidechain.RotamerLib"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerLib</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.sidechain.RotamerLib" title="promod3.sidechain.RotamerLib"><code class="xref py py-class docutils literal"><span class="pre">RotamerLib</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened or if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened or if file cannot be parsed (see <a class="reference internal" href="../portableIO.html#portableio"><span class="std std-ref">here</span></a> for details).</td> </tr> </tbody> @@ -93,7 +106,7 @@ for details.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file where it will be saved.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file where it will be saved.</td> </tr> </tbody> </table> @@ -107,12 +120,12 @@ for details.</p> <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> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>) – Identity of rotamer to be added</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 notranslate"><span class="pre">RotamerLibEntry</span></code></a>) – the rotamer to be added</li> +<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>) – Identity of rotamer to be added</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>) – 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if the library is already static</p> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if the library is already static</p> </td> </tr> </tbody> @@ -127,8 +140,8 @@ 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 (“free” CYS) try to find CYH, fallback to CYS in case of failure</li> -<li>if id = CYD (“disulfid” CYS) try to find CYD, fallback to CYS in case of failure</li> +<li>if id = CYH (“free” CYS) try to find CYH, fallback to CYS in case of failure</li> +<li>if id = CYD (“disulfid” 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> @@ -136,12 +149,12 @@ special <em>id</em> requests.</p> <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>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>) – Identity of rotamer of interest</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>) – Identity of rotamer of interest</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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><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 notranslate"><span class="pre">RotamerLibEntry</span></code></a> of nonzero +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><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 sorted by their probability</td> </tr> -<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if no entries for <em>id</em> can be +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if no entries for <em>id</em> can be found</td> </tr> </tbody> @@ -169,8 +182,8 @@ and ready for io.</p> <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/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – number of bins for phi backbone dihedral</li> -<li><strong>psi_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – number of bins for psi backbone dihedral</li> +<li><strong>phi_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – number of bins for phi backbone dihedral</li> +<li><strong>psi_bins</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – number of bins for psi backbone dihedral</li> </ul> </td> </tr> @@ -181,20 +194,20 @@ and ready for io.</p> <em class="property">static </em><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> <dt id="promod3.sidechain.BBDepRotamerLib.LoadPortable"> <em class="property">static </em><code class="descname">LoadPortable</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.BBDepRotamerLib.LoadPortable" title="Permalink to this definition">¶</a></dt> -<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.sidechain.BBDepRotamerLib.Save" title="promod3.sidechain.BBDepRotamerLib.Save"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Save()</span></code></a> (optimized for fast -reading) / portable file generated with <a class="reference internal" href="#promod3.sidechain.BBDepRotamerLib.SavePortable" title="promod3.sidechain.BBDepRotamerLib.SavePortable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SavePortable()</span></code></a> (slower but +<dd><p>Loads raw binary file generated with <a class="reference internal" href="#promod3.sidechain.BBDepRotamerLib.Save" title="promod3.sidechain.BBDepRotamerLib.Save"><code class="xref py py-meth docutils literal"><span class="pre">Save()</span></code></a> (optimized for fast +reading) / portable file generated with <a class="reference internal" href="#promod3.sidechain.BBDepRotamerLib.SavePortable" title="promod3.sidechain.BBDepRotamerLib.SavePortable"><code class="xref py py-meth docutils literal"><span class="pre">SavePortable()</span></code></a> (slower but less machine-dependent).</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>filename</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file from which to load.</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">A rotamer library</td> </tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.sidechain.BBDepRotamerLib" title="promod3.sidechain.BBDepRotamerLib"><code class="xref py py-class docutils literal notranslate"><span class="pre">BBDepRotamerLib</span></code></a></td> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><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></td> </tr> -<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened or if +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened or if file cannot be parsed (see <a class="reference internal" href="../portableIO.html#portableio"><span class="std std-ref">here</span></a> for details).</td> </tr> </tbody> @@ -213,9 +226,9 @@ for details.</p> <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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) – Path to the file where it will be saved.</td> +<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/3.6/library/stdtypes.html#str" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Path to the file where it 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if file cannot be opened.</td> </tr> </tbody> </table> @@ -229,18 +242,18 @@ for details.</p> <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> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>) – Identity of rotamer to be added</li> -<li><strong>r1</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Configuration of chi1</li> -<li><strong>r2</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Configuration of chi2</li> -<li><strong>r3</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Configuration of chi3</li> -<li><strong>r4</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Configuration of chi4</li> -<li><strong>phi_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Phi backbone dihedral description</li> -<li><strong>psi_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – 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 notranslate"><span class="pre">RotamerLibEntry</span></code></a>) – the rotamer to be added</li> +<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>) – Identity of rotamer to be added</li> +<li><strong>r1</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Configuration of chi1</li> +<li><strong>r2</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Configuration of chi2</li> +<li><strong>r3</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Configuration of chi3</li> +<li><strong>r4</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Configuration of chi4</li> +<li><strong>phi_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Phi backbone dihedral description</li> +<li><strong>psi_bin</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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>) – 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if an invalid backbone angle bin +<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc 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> @@ -260,14 +273,14 @@ according standard deviations of the rotamers get bilinearly interpolated using the corresponding rotamers with same configuration from the neighbouring bins. No interplation is applied to non-rotameric dihedral angles (chi2 in ASP, ASN, HIS, PHE, TRP, TYR; chi3 in GLU, GLN). -This behaviour can be controlled with <a class="reference internal" href="#promod3.sidechain.BBDepRotamerLib.SetInterpolate" title="promod3.sidechain.BBDepRotamerLib.SetInterpolate"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetInterpolate()</span></code></a>. +This behaviour can be controlled with <a class="reference internal" href="#promod3.sidechain.BBDepRotamerLib.SetInterpolate" title="promod3.sidechain.BBDepRotamerLib.SetInterpolate"><code class="xref py py-meth docutils literal"><span class="pre">SetInterpolate()</span></code></a>. 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 (“free” CYS) try to find CYH, fallback to CYS in case of failure</li> -<li>if id = CYD (“disulfid” CYS) try to find CYD, fallback to CYS in case of failure</li> +<li>if id = CYH (“free” CYS) try to find CYH, fallback to CYS in case of failure</li> +<li>if id = CYD (“disulfid” 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> @@ -276,17 +289,17 @@ special <em>id</em> requests.</p> <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> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>) – Identity of rotamer of interest</li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Phi backbone dihedral angle in range [-pi,pi[</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Psi backbone dihedral angle in range [-pi,pi[</li> +<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>) – Identity of rotamer of interest</li> +<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Phi backbone dihedral angle in range [-pi,pi[</li> +<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – 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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><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 notranslate"><span class="pre">RotamerLibEntry</span></code></a> of nonzero +<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/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><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 sorted by their probability</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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if no entries for <em>id</em> can be +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if no entries for <em>id</em> can be found</p> </td> </tr> @@ -300,18 +313,18 @@ found</p> <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 <a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>, +<li>For every phi/psi bin combination of a particular <a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>, 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 <a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a> must be unique</li> -<li>The configuration combinations of a particular <a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a> must +of a particular <a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a> must be unique</li> +<li>The configuration combinations of a particular <a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a> 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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if one of the points above is +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if one of the points above is not fulfilled</td> </tr> </tbody> @@ -325,7 +338,7 @@ not fulfilled</td> <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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>) – Controls behaviour when <a class="reference internal" href="#promod3.sidechain.BBDepRotamerLib.QueryLib" title="promod3.sidechain.BBDepRotamerLib.QueryLib"><code class="xref py py-meth docutils literal notranslate"><span class="pre">QueryLib()</span></code></a> +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Controls behaviour when <a class="reference internal" href="#promod3.sidechain.BBDepRotamerLib.QueryLib" title="promod3.sidechain.BBDepRotamerLib.QueryLib"><code class="xref py py-meth docutils literal"><span class="pre">QueryLib()</span></code></a> gets called</td> </tr> </tbody> @@ -355,15 +368,15 @@ functionalities.</p> <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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Probability of rotamer</li> -<li><strong>chi1</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Chi1 dihedral in range [-pi,pi[</li> -<li><strong>chi2</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Chi2 dihedral in range [-pi,pi[</li> -<li><strong>chi3</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Chi3 dihedral in range [-pi,pi[</li> -<li><strong>chi4</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Chi4 dihedral in range [-pi,pi[</li> -<li><strong>sig1</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Standard deviation for Chi1 dihedral</li> -<li><strong>sig2</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Standard deviation for Chi2 dihedral</li> -<li><strong>sig3</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Standard deviation for Chi3 dihedral</li> -<li><strong>sig4</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Standard deviation for Chi4 dihedral</li> +<li><strong>p</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Probability of rotamer</li> +<li><strong>chi1</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Chi1 dihedral in range [-pi,pi[</li> +<li><strong>chi2</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Chi2 dihedral in range [-pi,pi[</li> +<li><strong>chi3</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Chi3 dihedral in range [-pi,pi[</li> +<li><strong>chi4</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Chi4 dihedral in range [-pi,pi[</li> +<li><strong>sig1</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Standard deviation for Chi1 dihedral</li> +<li><strong>sig2</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Standard deviation for Chi2 dihedral</li> +<li><strong>sig3</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Standard deviation for Chi3 dihedral</li> +<li><strong>sig4</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Standard deviation for Chi4 dihedral</li> </ul> </td> </tr> @@ -427,8 +440,8 @@ functionalities.</p> <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 notranslate"><span class="pre">RotamerLibEntry</span></code></a> from the given <em>res</em>. -The function tries to automatically identify the <a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a> based +<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 <a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a> based on the residue name. The probability and standard deviations are set to 0.0, all not required chi angles with their corresponding standard deviations to NaN.</p> @@ -436,12 +449,12 @@ NaN.</p> <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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Source of dihedral angles</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – 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 notranslate"><span class="pre">RotamerLibEntry</span></code></a></td> +<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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if residue name cannot be -translated to <a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a> or when not all required atoms +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if residue name cannot be +translated to <a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a> or when not all required atoms are present in <em>res</em>.</td> </tr> </tbody> @@ -451,7 +464,7 @@ are present in <em>res</em>.</td> <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 notranslate"><span class="pre">RotamerLibEntry</span></code></a> from the given <em>res</em>. +<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> @@ -460,15 +473,15 @@ are NaN.</p> <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="https://www.openstructure.org/docs/1.11/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.11.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Source of dihedral angles</li> -<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>) – 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 notranslate"><span class="pre">RotamerLibEntry</span></code></a></li> +<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/2.0/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v2.0.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Source of dihedral angles</li> +<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>) – 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 notranslate"><span class="pre">RotamerLibEntry</span></code></a></p> +<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-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code> if not all required atoms are +<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code> if not all required atoms are present in <em>res</em>.</p> </td> </tr> @@ -481,7 +494,7 @@ present in <em>res</em>.</p> <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’t know the identity of the entries +for similarity. The function doesn’t know the identity of the entries and can therefore not specifically treat symmetric rotamers (TYR,PHE,ASP,GLU) or rotamers with ambiguous naming in general.</p> <table class="docutils field-list" frame="void" rules="none"> @@ -489,13 +502,13 @@ and can therefore not specifically treat symmetric rotamers <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 notranslate"><span class="pre">RotamerLibEntry</span></code></a>) – The Entry you want to compare with</li> -<li><strong>thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The max difference between two dihedrals to be +<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>) – The Entry you want to compare with</li> +<li><strong>thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – 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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a> Whether the two entries have the same +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><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> @@ -517,14 +530,14 @@ the chi2 is checked for its actual value, but also for its flipped state.</p> <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 notranslate"><span class="pre">RotamerLibEntry</span></code></a>) – The Entry you want to compare with</li> -<li><strong>thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The max difference between two dihedrals to be +<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>) – The Entry you want to compare with</li> +<li><strong>thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The max difference between two dihedrals to be considered similar</li> -<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>) – Identity of the entries to be compared</li> +<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>) – 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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a> Whether the two entries have the same +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><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> @@ -537,7 +550,7 @@ they are within the specified threshold.</p> <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’t know the identity of the entries and can therefore +The function doesn’t know the identity of the entries and can therefore not specifically treat symmetric rotamers (TYR,PHE,ASP,GLU) or rotamers with ambiguous naming in general.</p> <table class="docutils field-list" frame="void" rules="none"> @@ -545,15 +558,15 @@ not specifically treat symmetric rotamers <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 notranslate"><span class="pre">RotamerLibEntry</span></code></a>) – The Entry you want to compare with</li> -<li><strong>dihedral_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of the dihedral to be checked +<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>) – The Entry you want to compare with</li> +<li><strong>dihedral_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The max difference between two dihedrals to be +<li><strong>thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – 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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a> Whether both dihedrals are defined +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><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> @@ -573,16 +586,16 @@ for its actual value, but also for its flipped state.</p> <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 notranslate"><span class="pre">RotamerLibEntry</span></code></a>) – The Entry you want to compare with</li> -<li><strong>dihedral_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Index of the dihedral to be checked +<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>) – The Entry you want to compare with</li> +<li><strong>dihedral_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – The max difference between two dihedrals to be +<li><strong>thresh</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The max difference between two dihedrals to be considered similar</li> -<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>) – Identity of the entries to be compared</li> +<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>) – 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/3.6/library/functions.html#bool" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a> Whether both dihedrals are defined +<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/3.6/library/functions.html#bool" title="(in Python v3.6)"><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> @@ -609,7 +622,7 @@ to estimate those configurations.</p> <li>GAUCHE_PLUS - Gauche+ configuration (0 < angle < 120)</li> <li>GAUCHE_MINUS - Gauce- configuration (-120 < angle < 0)</li> <li>NON_ROTAMERIC - Dihedral without SP3-SP3 bond</li> -<li>INVALID - Invalid configuration, e.g. chi3 of ALA (doesnt exist…)</li> +<li>INVALID - Invalid configuration, e.g. chi3 of ALA (doesnt exist...)</li> </ul> </td></tr></table> </dd></dl> @@ -618,12 +631,12 @@ to estimate those configurations.</p> <dt id="promod3.sidechain.GetRotamericConfiguration"> <code class="descclassname">promod3.sidechain.</code><code class="descname">GetRotamericConfiguration</code><span class="sig-paren">(</span><em>angle</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.GetRotamericConfiguration" title="Permalink to this definition">¶</a></dt> <dd><p>Evaluates the <em>angle</em> according to the ranges specified for -<a class="reference internal" href="#promod3.sidechain.DihedralConfiguration" title="promod3.sidechain.DihedralConfiguration"><code class="xref py py-class docutils literal notranslate"><span class="pre">DihedralConfiguration</span></code></a>.</p> +<a class="reference internal" href="#promod3.sidechain.DihedralConfiguration" title="promod3.sidechain.DihedralConfiguration"><code class="xref py py-class docutils literal"><span class="pre">DihedralConfiguration</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>angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Angle to be evaluated</td> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>angle</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Angle to be evaluated</td> </tr> <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">TRANS, GAUCHE_PLUS or GAUCHE_MINUS. INVALID if <em>angle</em> is NaN.</td> @@ -636,20 +649,20 @@ INVALID if <em>angle</em> is NaN.</td> <dt id="promod3.sidechain.GetDihedralConfiguration"> <code class="descclassname">promod3.sidechain.</code><code class="descname">GetDihedralConfiguration</code><span class="sig-paren">(</span><em>entry</em>, <em>id</em>, <em>dihedral_idx</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.GetDihedralConfiguration" title="Permalink to this definition">¶</a></dt> <dd><p>Estimates configuration of a sidechain dihedral angle in a specific -<a class="reference internal" href="#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerLibEntry</span></code></a> with the knowledge of its identity. This allows +<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> with the knowledge of its identity. This allows to also return NON_ROTAMERIC (e.g. chi2 for ASN).</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>entry</strong> (<a class="reference internal" href="#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerLibEntry</span></code></a>) – Sidechain dihedral angle comes from here</li> -<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerID</span></code></a>) – Identity of rotamer</li> -<li><strong>dihedral_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Specifies angle (0 => chi1, …, 3 => chi4)</li> +<li><strong>entry</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>) – Sidechain dihedral angle comes from here</li> +<li><strong>id</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RotamerID" title="promod3.sidechain.RotamerID"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code></a>) – Identity of rotamer</li> +<li><strong>dihedral_idx</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Specifies angle (0 => chi1, ..., 3 => chi4)</li> </ul> </td> </tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Result of <a class="reference internal" href="#promod3.sidechain.GetRotamericConfiguration" title="promod3.sidechain.GetRotamericConfiguration"><code class="xref py py-meth docutils literal notranslate"><span class="pre">GetRotamericConfiguration()</span></code></a> if specified +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Result of <a class="reference internal" href="#promod3.sidechain.GetRotamericConfiguration" title="promod3.sidechain.GetRotamericConfiguration"><code class="xref py py-meth docutils literal"><span class="pre">GetRotamericConfiguration()</span></code></a> if specified angle is Rotameric, NON_ROTAMERIC if specified angle is valid and non rotameric, INVALID otherwise.</p> </td> @@ -668,45 +681,22 @@ valid and non rotameric, INVALID otherwise.</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> + <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-non-backbone-dependent-rotamer-library">The Non Backbone Dependent Rotamer Library</a></li> +<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> +<li><a class="reference internal" href="#rotamer-configurations">Rotamer Configurations</a></li> </ul> </li> </ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> <li>Previous: <a href="rotamer_constructor.html" title="previous chapter">Rotamer Constructor</a></li> <li>Next: <a href="graph.html" title="next chapter">Rotamer Graph</a></li> </ul></li> @@ -714,26 +704,23 @@ valid and non rotameric, INVALID otherwise.</p> </ul></li> </ul> </div> + <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> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -742,11 +729,11 @@ valid and non rotameric, INVALID otherwise.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/sidechain/rotamer_lib.rst.txt" + <a href="../_sources/sidechain/rotamer_lib.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/sidechain/subrotamer_optimizer.html b/doc/html/sidechain/subrotamer_optimizer.html index d39e51b0673432827a9baf6b941badfed5f205b2..8c246da7d2a01a1fdde19b112c6f94adf4419c86 100644 --- a/doc/html/sidechain/subrotamer_optimizer.html +++ b/doc/html/sidechain/subrotamer_optimizer.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Subrotamer Optimization — ProMod3 3.0.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" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="../index.html" /> + <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" /> <link rel="next" title="scoring - Loop Scoring" href="../scoring/index.html" /> <link rel="prev" title="Loading Rotamer Libraries" href="loading.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -53,7 +66,7 @@ pairwise energies to other rotamers are observed.</p> <dl class="method"> <dt id="promod3.sidechain.SubrotamerOptimizer"> <code class="descclassname">promod3.sidechain.</code><code class="descname">SubrotamerOptimizer</code><span class="sig-paren">(</span><em>rotamers, [active_internal_energy=-2.0, inactive_internal_energy=0.0, max_complexity=100000000, initial_epsilon=0.02</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.SubrotamerOptimizer" title="Permalink to this definition">¶</a></dt> -<dd><p>Takes the <strong>rotamers</strong> of type <a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamer</span></code></a>, converts all their +<dd><p>Takes the <strong>rotamers</strong> of type <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>, converts all their subrotamers into rigid rotamers, solves the sidechain reconstruction problem and assigns the ideal subrotamers as active in the input <strong>rotamers</strong>.</p> <table class="docutils field-list" frame="void" rules="none"> @@ -61,14 +74,14 @@ and assigns the ideal subrotamers as active in the input <strong>rotamers</stron <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>rotamers</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal notranslate"><span class="pre">FRMRotamer</span></code></a>) – The rotamers to be optimized</li> -<li><strong>active_internal_energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Internal energy that gets assigned to all +<li><strong>rotamers</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/stdtypes.html#list" title="(in Python v3.6)"><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.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a>) – The rotamers to be optimized</li> +<li><strong>active_internal_energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Internal energy that gets assigned to all currently active subrotamers</li> -<li><strong>inactive_internal_energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Internal energy that gets assigned to all +<li><strong>inactive_internal_energy</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Internal energy that gets assigned to all currently inactive subrotamers</li> -<li><strong>max_complexity</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) – Max complexity of the internal <a class="reference internal" href="graph.html#promod3.sidechain.RotamerGraph" title="promod3.sidechain.RotamerGraph"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerGraph</span></code></a></li> -<li><strong>initial_epsilon</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>) – Epsilon value controlling the pruning of -internal <a class="reference internal" href="graph.html#promod3.sidechain.RotamerGraph" title="promod3.sidechain.RotamerGraph"><code class="xref py py-class docutils literal notranslate"><span class="pre">RotamerGraph</span></code></a></li> +<li><strong>max_complexity</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#int" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Max complexity of the internal <a class="reference internal" href="graph.html#promod3.sidechain.RotamerGraph" title="promod3.sidechain.RotamerGraph"><code class="xref py py-class docutils literal"><span class="pre">RotamerGraph</span></code></a></li> +<li><strong>initial_epsilon</strong> (<a class="reference external" href="https://docs.python.org/3.6/library/functions.html#float" title="(in Python v3.6)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Epsilon value controlling the pruning of +internal <a class="reference internal" href="graph.html#promod3.sidechain.RotamerGraph" title="promod3.sidechain.RotamerGraph"><code class="xref py py-class docutils literal"><span class="pre">RotamerGraph</span></code></a></li> </ul> </td> </tr> @@ -84,73 +97,36 @@ internal <a class="reference internal" href="graph.html#promod3.sidechain.Rotame </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="../index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="../actions/index.html">ProMod3 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="../container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="../modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="../loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="../core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="../user_contributions.html">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="../references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> - <li><a href="index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> + <li><a href="index.html"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> <li>Previous: <a href="loading.html" title="previous chapter">Loading Rotamer Libraries</a></li> - <li>Next: <a href="../scoring/index.html" title="next chapter"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> + <li>Next: <a href="../scoring/index.html" title="next chapter"><code class="docutils literal"><span class="pre">scoring</span></code> - Loop Scoring</a></li> </ul></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="../_sources/sidechain/subrotamer_optimizer.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -159,11 +135,11 @@ internal <a class="reference internal" href="graph.html#promod3.sidechain.Rotame ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="../_sources/sidechain/subrotamer_optimizer.rst.txt" + <a href="../_sources/sidechain/subrotamer_optimizer.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/user_contributions.html b/doc/html/user_contributions.html index 32ec6a533cb3e9c3191e6e4d8d987fe3212d9f66..2a54439d115fa45102c1cc0c688a62f12963b78c 100644 --- a/doc/html/user_contributions.html +++ b/doc/html/user_contributions.html @@ -1,21 +1,33 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Contributing — ProMod3 3.0.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" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="index.html" /> + <link rel="up" title="Documentation For Users" href="users.html" /> <link rel="next" title="Documentation For Developers" href="developers.html" /> <link rel="prev" title="SetCompoundsChemlib()" href="core/setcompoundschemlib.html" /> @@ -24,7 +36,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -41,7 +54,7 @@ that you believe is worth sharing with other users. They can review the code and add it to the repository at: <a class="reference external" href="https://git.scicore.unibas.ch/schwede/ProMod3">https://git.scicore.unibas.ch/schwede/ProMod3</a>. Consider opening an account for the GitLab instance at sciCORE, University of Basel if -you directly want to contribute to ProMod3’s core features. You can find more +you directly want to contribute to ProMod3‘s core features. You can find more information on that matter in the developer section of the documentation (<a class="reference internal" href="contributing.html#how-to-contribute"><span class="std std-ref">Contributing</span></a>).</p> </div> @@ -52,71 +65,34 @@ information on that matter in the developer section of the documentation </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="users.html">Users</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="actions/index.html">ProMod3 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="container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="index.html">Documentation overview</a><ul> <li><a href="users.html">Documentation For Users</a><ul> - <li>Previous: <a href="core/setcompoundschemlib.html" title="previous chapter"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> + <li>Previous: <a href="core/setcompoundschemlib.html" title="previous chapter"><code class="docutils literal"><span class="pre">SetCompoundsChemlib()</span></code></a></li> <li>Next: <a href="developers.html" title="next chapter">Documentation For Developers</a></li> </ul></li> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="_sources/user_contributions.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -125,11 +101,11 @@ information on that matter in the developer section of the documentation ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="_sources/user_contributions.rst.txt" + <a href="_sources/user_contributions.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/html/users.html b/doc/html/users.html index 890f72d141b8ed42ee424547191d7adacebdbb10..42319962320ee59da12c3b76020f4c6543dc9d27 100644 --- a/doc/html/users.html +++ b/doc/html/users.html @@ -1,21 +1,32 @@ - <!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="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Documentation For Users — ProMod3 3.0.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" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '3.0.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> - <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="top" title="ProMod3 3.0.0 documentation" href="index.html" /> <link rel="next" title="Getting Started" href="gettingstarted.html" /> <link rel="prev" title="ProMod3" href="index.html" /> @@ -24,7 +35,8 @@ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> - </head><body> + </head> + <body role="document"> <div class="document"> @@ -63,7 +75,7 @@ scripts using the functionality of this library.</p> <li class="toctree-l2"><a class="reference internal" href="container/singularity.html">Singularity</a></li> </ul> </li> -<li class="toctree-l1"><a class="reference internal" href="modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> +<li class="toctree-l1"><a class="reference internal" href="modelling/index.html"><code class="docutils literal"><span class="pre">modelling</span></code> - Protein Modelling</a><ul> <li class="toctree-l2"><a class="reference internal" href="modelling/pipeline.html">Modelling Pipeline</a></li> <li class="toctree-l2"><a class="reference internal" href="modelling/model_checking.html">Model Checking</a></li> <li class="toctree-l2"><a class="reference internal" href="modelling/gap_handling.html">Handling Gaps</a></li> @@ -74,7 +86,7 @@ scripts using the functionality of this library.</p> <li class="toctree-l2"><a class="reference internal" href="modelling/algorithms.html">Modelling Algorithms</a></li> </ul> </li> -<li class="toctree-l1"><a class="reference internal" href="sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul> +<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.html">Representing Sidechains - Rotamers & Co.</a></li> <li class="toctree-l2"><a class="reference internal" href="sidechain/frame.html">Frame - The Rigid Part</a></li> <li class="toctree-l2"><a class="reference internal" href="sidechain/rotamer_constructor.html">Rotamer Constructor</a></li> @@ -85,31 +97,31 @@ scripts using the functionality of this library.</p> <li class="toctree-l2"><a class="reference internal" href="sidechain/subrotamer_optimizer.html">Subrotamer Optimization</a></li> </ul> </li> -<li class="toctree-l1"><a class="reference internal" href="scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a><ul> +<li class="toctree-l1"><a class="reference internal" href="scoring/index.html"><code class="docutils literal"><span class="pre">scoring</span></code> - Loop Scoring</a><ul> <li class="toctree-l2"><a class="reference internal" href="scoring/backbone_score_env.html">Backbone Score Environment</a></li> <li class="toctree-l2"><a class="reference internal" href="scoring/backbone_scorers.html">Backbone Scorers</a></li> <li class="toctree-l2"><a class="reference internal" href="scoring/all_atom_scorers.html">All Atom Scorers</a></li> <li class="toctree-l2"><a class="reference internal" href="scoring/other_scoring_functions.html">Other Scoring Functions</a></li> </ul> </li> -<li class="toctree-l1"><a class="reference internal" href="loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a><ul> +<li class="toctree-l1"><a class="reference internal" href="loop/index.html"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Handling</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">Sampling Dihedral Angles</a></li> <li class="toctree-l2"><a class="reference internal" href="loop/structure_db.html">Structural Data</a></li> <li class="toctree-l2"><a class="reference internal" href="loop/all_atom.html">Handling All Atom Positions</a></li> -<li class="toctree-l2"><a class="reference internal" href="loop/mm_system_creation.html">Generate <code class="docutils literal notranslate"><span class="pre">ost.mol.mm</span></code> systems</a></li> +<li class="toctree-l2"><a class="reference internal" href="loop/mm_system_creation.html">Generate <code class="docutils literal"><span class="pre">ost.mol.mm</span></code> systems</a></li> <li class="toctree-l2"><a class="reference internal" href="loop/load_loop_objects.html">Loading Precomputed Objects</a></li> </ul> </li> -<li class="toctree-l1"><a class="reference internal" href="core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a><ul> -<li class="toctree-l2"><a class="reference internal" href="core/pm3argparse.html"><code class="docutils literal notranslate"><span class="pre">pm3argparse</span></code> - Parsing Command Lines</a></li> -<li class="toctree-l2"><a class="reference internal" href="core/helper.html"><code class="docutils literal notranslate"><span class="pre">helper</span></code> - Shared Functionality For the Everything</a></li> +<li class="toctree-l1"><a class="reference internal" href="core/index.html"><code class="docutils literal"><span class="pre">core</span></code> - ProMod3 Core Functionality</a><ul> +<li class="toctree-l2"><a class="reference internal" href="core/pm3argparse.html"><code class="docutils literal"><span class="pre">pm3argparse</span></code> - Parsing Command Lines</a></li> +<li class="toctree-l2"><a class="reference internal" href="core/helper.html"><code class="docutils literal"><span class="pre">helper</span></code> - Shared Functionality For the Everything</a></li> <li class="toctree-l2"><a class="reference internal" href="core/geometry.html">Geometry functions</a></li> <li class="toctree-l2"><a class="reference internal" href="core/runtime_profiling.html">Runtime profiling</a></li> <li class="toctree-l2"><a class="reference internal" href="core/graph_minimizer.html">Graph Minimizer</a></li> </ul> </li> -<li class="toctree-l1"><a class="reference internal" href="core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> +<li class="toctree-l1"><a class="reference internal" href="core/setcompoundschemlib.html"><code class="docutils literal"><span class="pre">SetCompoundsChemlib()</span></code></a></li> <li class="toctree-l1"><a class="reference internal" href="user_contributions.html">Contributing</a></li> </ul> </div> @@ -121,41 +133,7 @@ scripts using the functionality of this library.</p> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> - <div class="sphinxsidebarwrapper"> -<h1 class="logo"><a href="index.html">ProMod3</a></h1> - - - - - - - - -<h3>Navigation</h3> -<ul class="current"> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Users</a><ul> -<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="actions/index.html">ProMod3 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="container/index.html">ProMod3 and Containers</a></li> -<li class="toctree-l2"><a class="reference internal" href="modelling/index.html"><code class="docutils literal notranslate"><span class="pre">modelling</span></code> - Protein Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="sidechain/index.html"><code class="docutils literal notranslate"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li> -<li class="toctree-l2"><a class="reference internal" href="scoring/index.html"><code class="docutils literal notranslate"><span class="pre">scoring</span></code> - Loop Scoring</a></li> -<li class="toctree-l2"><a class="reference internal" href="loop/index.html"><code class="docutils literal notranslate"><span class="pre">loop</span></code> - Loop Handling</a></li> -<li class="toctree-l2"><a class="reference internal" href="core/index.html"><code class="docutils literal notranslate"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li> -<li class="toctree-l2"><a class="reference internal" href="core/setcompoundschemlib.html"><code class="docutils literal notranslate"><span class="pre">SetCompoundsChemlib()</span></code></a></li> -<li class="toctree-l2"><a class="reference internal" href="user_contributions.html">Contributing</a></li> -</ul> -</li> -</ul> -<ul> -<li class="toctree-l1"><a class="reference internal" href="developers.html">Developers</a></li> -<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li> -<li class="toctree-l1"><a class="reference internal" href="references.html">References</a></li> -<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li> -</ul> - -<div class="relations"> + <div class="sphinxsidebarwrapper"><div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="index.html">Documentation overview</a><ul> @@ -164,26 +142,23 @@ scripts using the functionality of this library.</p> </ul></li> </ul> </div> + <div role="note" aria-label="source link"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="_sources/users.txt" + rel="nofollow">Show Source</a></li> + </ul> + </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> - <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> - - - - - - - - </div> </div> <div class="clearer"></div> @@ -192,11 +167,11 @@ scripts using the functionality of this library.</p> ©2013-2020, SIB - Swiss Institute of Bioinformatics and Biozentrum - University of Basel. | - Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | - <a href="_sources/users.rst.txt" + <a href="_sources/users.txt" rel="nofollow">Page source</a> </div> diff --git a/doc/tests/scripts/modelling_close_small_deletions.py b/doc/tests/scripts/modelling_close_small_deletions.py index 9a7f2daca16fd0b95e356ea74631e4c3350040f1..caf6ad6953aac0d5e15bcf4bbac3e2cd5378638f 100644 --- a/doc/tests/scripts/modelling_close_small_deletions.py +++ b/doc/tests/scripts/modelling_close_small_deletions.py @@ -3,8 +3,8 @@ from promod3 import modelling # setup tpl = io.LoadPDB('data/gly.pdb') -aln = seq.CreateAlignment(seq.CreateSequence('trg', 'GGG-GGG'), - seq.CreateSequence('tpl', 'GGGAGGG')) +aln = seq.CreateAlignment(seq.CreateSequence('trg', 'GGGG-GGGG'), + seq.CreateSequence('tpl', 'GGGGAGGGG')) aln.AttachView(1, tpl.CreateFullView()) mhandle = modelling.BuildRawModel(aln) # close small deletion diff --git a/modelling/doc/pipeline.rst b/modelling/doc/pipeline.rst index 3e90542c05f05af6398f4dd9bc514be793c4dcaf..3dd2f3128c8f90265f201114ca546b48f59b36a0 100644 --- a/modelling/doc/pipeline.rst +++ b/modelling/doc/pipeline.rst @@ -176,77 +176,9 @@ Build Raw Modelling Handle :return: A deep copy of the current handle :rtype: :class:`ModellingHandle` + - -.. function:: BuildRawModel(aln, include_ligands=False, chain_names=\ - "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz",\ - spdbv_style=False) - - Builds a raw (pseudo) model from the alignment. Can either take a single - alignment handle or an alignment handle list. Every list item is treated as a - single chain in the final raw model. - - Each alignment handle must contain exactly two sequences and the second - sequence is considered the template sequence, which must have a - :class:`~ost.mol.EntityView` attached. - - This is a basic protein core modelling algorithm that copies backbone - coordinates based on the sequence alignment. For matching residues, the - side chain coordinates are also copied. Gaps are ignored. Hydrogen an - deuterium atoms are not copied into the model. - - The function tries to reuse as much as possible from the template. Modified - residues are treated as follows: - - - Selenium methionine residues are converted to methionine - - - Side chains which contain all atoms of the parent amino acid, e.g. - phosphoserine are copied as a whole with the modifications stripped off. - - Residues with missing backbone atoms and D-peptides are generally skipped and - treated as gaps. Missing Cbeta atoms in backbone are ok and reconstructed. - If all residues are skipped (e.g. Calpha traces), we report an error and - return an empty model. - - Residue numbers are set such that missing residue in gaps are honoured and - subsequent loop modelling can insert new residues without having to renumber. - **The numbering of residues starts for every chain with the value 1**. - - The returned :class:`ModellingHandle` stores the obtained raw model as well - as information about insertions and deletions in the gaps list. - - :param aln: Single alignment handle for raw model with single chain or - list of alignment handles for raw model with multiple chains. - :type aln: :class:`~ost.seq.AlignmentHandle` / :class:`~ost.seq.AlignmentList` - - :param include_ligands: True, if we wish to include ligands in the model. This - searches for ligands in all OST handles of the views - attached to the alignments. Ligands are identified - with the `ligand` property in the handle (set by OST - based on HET records) or by the chain name '_' (as set - in SMTL). All ligands are added to a new chain named - '_'. - :type include_ligands: :class:`bool` - - :param chain_names: Chains are named by a single chanacter taken from this. - :type chain_names: :class:`str` - - :param spdbv_style: True, if we need a model in the old SPDBV style. - :type spdbv_style: :class:`bool` - - :return: Raw (pseudo) model from the alignment. - :rtype: :class:`ModellingHandle` - - :raises: A :exc:`RuntimeError` when: - - - the alignments do not have two sequences - - the second sequence does not have an attached structure - - the residues of the template structure do not match with the - alignment sequence (note that you can set an "offset" (see - :meth:`~ost.seq.AlignmentHandle.SetSequenceOffset`) for the - template sequence (but not for the target)) - - the target sequence has a non-zero offset (cannot be honored as - the resulting model will always start its residue numbering at 1) +.. autofunction:: BuildRawModel The Default Pipeline -------------------------------------------------------------------------------- @@ -443,3 +375,11 @@ Modelling Steps :members: .. autofunction:: AddModellingIssue + + +Alignment Fiddling +-------------------------------------------------------------------------------- + +.. autofunction:: DeleteGapCols + +.. autofunction:: PullTerminalDeletions diff --git a/modelling/pymod/CMakeLists.txt b/modelling/pymod/CMakeLists.txt index e75ef2691e15c3fbba1e4d6ca2d5566f49750634..58e2665c98f6d6ac1e81901a956547ddaa3a2836 100644 --- a/modelling/pymod/CMakeLists.txt +++ b/modelling/pymod/CMakeLists.txt @@ -25,6 +25,8 @@ set(MODELLING_PYMOD _reconstruct_sidechains.py _monte_carlo.py _mhandle_helper.py + _alignment_fiddling.py + _raw_model.py ) pymod(NAME modelling diff --git a/modelling/pymod/__init__.py b/modelling/pymod/__init__.py index 359767927e84ae846742430b9e8474d476273076..6cf9be125390e77c9307fdff5c346c56a2f540c0 100644 --- a/modelling/pymod/__init__.py +++ b/modelling/pymod/__init__.py @@ -15,6 +15,7 @@ """Initialise the modelling module.""" +from ._alignment_fiddling import * from ._modelling import * from ._closegaps import * from ._molprobity import * @@ -25,3 +26,4 @@ from ._denovo import * from ._fragger_handle import * from ._monte_carlo import * from ._mhandle_helper import * +from ._raw_model import * diff --git a/modelling/pymod/_alignment_fiddling.py b/modelling/pymod/_alignment_fiddling.py new file mode 100644 index 0000000000000000000000000000000000000000..4ca25aa2f80c4837db04e781aa7d176b58803950 --- /dev/null +++ b/modelling/pymod/_alignment_fiddling.py @@ -0,0 +1,198 @@ +# Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +# Biozentrum - University of Basel +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from ost import seq + + +def _PullLeftToRight(s0, s1, min_terminal_anchor_size): + + s_len = len(s0) + + # search for first seqres residue which is covered by a template residue + first_idx = None + for i in range(s_len): + if s0[i] != '-' and s1[i] != '-': + first_idx = i + break + if first_idx is None: + return False # not a single residue in SEQRES is covered by ATOMSEQ... + # nothing to do... + # search for first gap start in both sequences + try: + s0_first_gap = s0.index('-', first_idx) + except: + return False # no gap in SEQRES... nothing to do... + try: + s1_first_gap = s1.index('-', first_idx) + except: + s1_first_gap = s_len # no gap in ATOMSEQ + + if s0_first_gap < s1_first_gap: + # the first gap is in the SEQRES => its a deletion! + l = s0_first_gap - first_idx + if l < min_terminal_anchor_size: + del_end = None + for i in range(s0_first_gap, s_len): + if s0[i] != '-': + del_end = i + break + if del_end is None: + return False # gap reaches c-terminus... nothing to do... + # shift it! + anchor = list(s0[first_idx:first_idx+l]) + s0[first_idx:first_idx+l] = l*['-'] + s0[del_end-l:del_end] = anchor + return True + return False + + +def DeleteGapCols(aln): + '''Deletes alignment columns that only contain gaps. + + Columns that only contain gaps ('-') are removed. If no such column can be + identified, the input alignment gets returned. A new alignment gets + constructed otherwise. The sequences of the new alignment retain name, offset + and the potentially attached :class:`ost.mol.EntityView` from the original + sequences. + + :param aln: Input alignment + :type aln: :class:`ost.seq.AlignmentHandle` + :returns: The processed alignment + :rtype: :class:`ost.seq.AlignmentHandle` + ''' + n_sequences = aln.GetCount() + gap_cols = list() + for c_idx, c in enumerate(aln): + gaps = [int(c[idx] == '-') for idx in range(n_sequences)] + if sum(gaps) == n_sequences: + gap_cols.append(c_idx) + if len(gap_cols) == 0: + return aln # nothing to do + + # remove the found gap columns + s_lists = list() + for s_idx in range(n_sequences): + s_lists.append([c for c in str(aln.GetSequence(s_idx))]) + for gap_col_idx in reversed(gap_cols): + for sl in s_lists: + sl.pop(gap_col_idx) + + # construct a return alignment with the new sequences but names, offsets + # and attached views from the old alignment + return_aln = seq.CreateAlignment() + for s_idx in range(n_sequences): + s = aln.GetSequence(s_idx) + s_processed = seq.CreateSequence(s.GetName(), ''.join(s_lists[s_idx])) + s_processed.SetOffset(s.GetOffset()) + if s.HasAttachedView(): + s_processed.AttachView(s.GetAttachedView()) + return_aln.AddSequence(s_processed) + + return return_aln + + +def PullTerminalDeletions(aln, min_terminal_anchor_size = 4): + '''Fixes deletions close to termini. + + Some alignment tools may produce alignments with deletions close to the + termini. For example: + + .. code-block:: none + + SEQRES: A-----BCDE... + ATOMSEQ: ABCDEFGHIJ... + + where A is the anchor residue. The default loop modelling pipeline would + keep the position of A fixed and start to omit structural information from + B, C, ... until it is able to resolve the deletion. If the anchor is very + short, a shift typically results in a better model: + + .. code-block:: none + + SEQRES: -----ABCDE... + ATOMSEQ: ABCDEFGHIJ... + + This function checks whether the gap closest to any termini is a deletion + (one or several '-' in the first sequence) and estimates the anchor size + (number of aligned residues towards the respective termini from that gap). + If the anchor size is smaller than *min_terminal_anchor_size*, a shift is + applied and the deletion removed. + + This is done iteratively, until no deletion can be removed anymore. + + .. code-block:: none + + SEQRES: A-B--CDEF... + ATOMSEQ: ABCDEFGHI... + + becomes + + .. code-block:: none + + SEQRES: ---ABCDEF... + ATOMSEQ: ABCDEFGHI... + + given a *min_terminal_anchor_size*>2. If no shift can be performed, the + input alignment gets returned. A new alignment gets constructed otherwise. + The sequences of the new alignment retain name, offset and the potentially + attached :class:`ost.mol.EntityView` from the original sequences. + + :param aln: Input alignment + :type aln: :class:`ost.seq.AlignmentHandle` + :returns: The processed alignment + :rtype: :class:`ost.seq.AlignmentHandle` + ''' + if aln.GetCount() != 2: + raise RuntimeError("Expect 2 seqs for aln in PullTerminalDeletions") + + if min_terminal_anchor_size < 1: + raise RuntimeError("min_terminal_anchor_size must be > 0 in PullTerminalDeletions") + + aln_no_gap_cols = DeleteGapCols(aln) + s0 = [c for c in str(aln_no_gap_cols.GetSequence(0))] + s1 = [c for c in str(aln_no_gap_cols.GetSequence(1))] + something_happened = False + + # Pull in deletions from the n-terminus + while _PullLeftToRight(s0, s1, min_terminal_anchor_size): + something_happened = True + + # Pull in deletions from the c-terminus + s0.reverse() + s1.reverse() + while _PullLeftToRight(s0, s1, min_terminal_anchor_size): + something_happened = True + + if not something_happened: + return aln # return original alignment as no pulling happened... + + s0.reverse() + s1.reverse() + + return_aln = seq.CreateAlignment() + s = aln.GetSequence(0) + s_processed = seq.CreateSequence(s.GetName(), ''.join(s0)) + s_processed.SetOffset(s.GetOffset()) + if s.HasAttachedView(): + s_processed.AttachView(s.GetAttachedView()) + return_aln.AddSequence(s_processed) + s = aln.GetSequence(1) + s_processed = seq.CreateSequence(s.GetName(), ''.join(s1)) + s_processed.SetOffset(s.GetOffset()) + if s.HasAttachedView(): + s_processed.AttachView(s.GetAttachedView()) + return_aln.AddSequence(s_processed) + + return return_aln diff --git a/modelling/pymod/_raw_model.py b/modelling/pymod/_raw_model.py new file mode 100644 index 0000000000000000000000000000000000000000..b08ae45b3c51846a0303069c4646c1e5c64ae2fa --- /dev/null +++ b/modelling/pymod/_raw_model.py @@ -0,0 +1,146 @@ +# Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +# Biozentrum - University of Basel +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# internal +from ._modelling import * +from ._alignment_fiddling import * +# external +import ost + +def BuildRawModel(aln, chain_names = None, include_ligands = False, + spdbv_style = False, aln_preprocessing='default'): + '''Builds a raw (pseudo) model from the alignment. Can either take a single + alignment handle or an alignment handle list. Every list item is treated as a + single chain in the final raw model. + + Each alignment handle must contain exactly two sequences and the second + sequence is considered the template sequence, which must have a + :class:`~ost.mol.EntityView` attached. + + Before extracting the coordinates, the alignments are pre-processed + according to *aln_preprocessing*. + + This is a basic protein core modelling algorithm that copies backbone + coordinates based on the sequence alignment. For matching residues, the + side chain coordinates are also copied. Gaps are ignored. Hydrogen an + deuterium atoms are not copied into the model. + + The function tries to reuse as much as possible from the template. Modified + residues are treated as follows: + + - Selenium methionine residues are converted to methionine + + - Side chains which contain all atoms of the parent amino acid, e.g. + phosphoserine are copied as a whole with the modifications stripped off. + + Residues with missing backbone atoms and D-peptides are generally skipped and + treated as gaps. Missing Cbeta atoms in backbone are ok and reconstructed. + If all residues are skipped (e.g. Calpha traces), we report an error and + return an empty model. + + Residue numbers are set such that missing residue in gaps are honoured and + subsequent loop modelling can insert new residues without having to renumber. + **The numbering of residues starts for every chain with the value 1**. + + The returned :class:`ModellingHandle` stores the obtained raw model as well + as information about insertions and deletions in the gaps list. + + :param aln: Single alignment handle for raw model with single chain or + list of alignment handles for raw model with multiple chains. + :type aln: :class:`~ost.seq.AlignmentHandle` / :class:`~ost.seq.AlignmentList` + + :param include_ligands: True, if we wish to include ligands in the model. This + searches for ligands in all OST handles of the views + attached to the alignments. Ligands are identified + with the `ligand` property in the handle (set by OST + based on HET records) or by the chain name '_' (as set + in SMTL). All ligands are added to a new chain named + '_'. + :type include_ligands: :class:`bool` + + :param chain_names: If set, this overrides the default chain naming + (chains are consecutively named according to + characters in + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'). + If *aln* is of type :class:`ost.seq.AlignmentHandle`, + *chain_names* is expected to be a :class:`str`. + If *aln* is of type :class:`ost.seq.AlignmentList`, + chain_names is expected to be a :class:`list` of + :class:`str` of same size as *aln*. + :type chain_names: :class:`str` / :class:`list` + + :param spdbv_style: True, if we need a model in the old SPDBV style. + :type spdbv_style: :class:`bool` + + :param aln_preprocessing: Calls :meth:`promod3.modelling.PullTerminalDeletions` + if set to 'default'. Can be disabled when set + to False. + + :return: Raw (pseudo) model from the alignment. + :rtype: :class:`ModellingHandle` + + :raises: A :exc:`RuntimeError` when: + + - the alignments do not have two sequences + - the second sequence does not have an attached structure + - the residues of the template structure do not match with the + alignment sequence (note that you can set an "offset" (see + :meth:`~ost.seq.AlignmentHandle.SetSequenceOffset`) for the + template sequence (but not for the target)) + - the target sequence has a non-zero offset (cannot be honored as + the resulting model will always start its residue numbering at 1) + ''' + + aln_list = None + name_list = None + + if isinstance(aln, ost.seq.AlignmentHandle): + aln_list = ost.seq.AlignmentList() + aln_list.append(aln) + if chain_names is None: + name_list = ['A'] + elif isinstance(chain_names, str): + name_list = [chain_names] + else: + raise RuntimeError('Expect chain_names to be of type str if aln is'\ + ' of type ost.seq.AlignmentHandle') + elif isinstance(aln, ost.seq.AlignmentList): + aln_list = aln + if chain_names is None: + def_names = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopq'\ + 'rstuvwxyz' + if len(aln_list) > len(def_names): + raise RuntimeError('Max of ' + str(len(def_names)) + \ + ' alns if no chain_names provided') + name_list = [str(c) for c in def_names[:len(aln_list)]] + elif isinstance(chain_names, list): + if len(chain_names) != len(aln_list): + raise RuntimeError('Number of alns and chain_names must be '\ + 'consistent') + name_list = chain_names + else: + raise RuntimeError('chain_names must be list if aln is of type '\ + 'ost.seq.AlignmentList') + else: + raise RuntimeError('aln must be of type ost.seq.AlignmentHandle or '\ + 'ost.seq.AlignmentList') + + if aln_preprocessing == 'default': + temp = ost.seq.AlignmentList() + for a in aln_list: + temp.append(PullTerminalDeletions(a)) + aln_list = temp + + return MHandleFromAln(aln_list, name_list, include_ligands, spdbv_style) diff --git a/modelling/pymod/export_model.cc b/modelling/pymod/export_model.cc index a4a0670c287dc43bf46d882600010bb9fdf9a8dd..b8de2bb66947b22ed8ca5c03149b19efeb5b751f 100644 --- a/modelling/pymod/export_model.cc +++ b/modelling/pymod/export_model.cc @@ -22,15 +22,18 @@ using namespace boost::python; using namespace promod3::modelling; -ModellingHandle (*BuildRawModelHandle)(const ost::seq::AlignmentHandle&, - bool, const String&, bool) - = &BuildRawModel; -ModellingHandle (*BuildRawModelHandleList)(const ost::seq::AlignmentList&, - bool, const String&, bool) - = &BuildRawModel; namespace { +ModellingHandle WrapMHandleFromAln(const ost::seq::AlignmentList& aln, + const boost::python::list& chain_names, + bool include_ligands, + bool spdbv_style) { + std::vector<String> v_chain_names; + promod3::core::ConvertListToVector(chain_names, v_chain_names); + return MHandleFromAln(aln, v_chain_names, include_ligands, spdbv_style); +} + int WrapCountEnclosedGaps(ModellingHandle& mhandle, const StructuralGap& gap) { return CountEnclosedGaps(mhandle, gap, false); } @@ -203,14 +206,7 @@ void export_model() (arg("mhandle"), arg("bb_list"), arg("start_resnum"), arg("chain_idx"))); def("InsertLoopClearGaps", InsertLoopClearGaps, (arg("mhandle"), arg("bb_list"), arg("gap"))); - def("BuildRawModel", BuildRawModelHandle, - (arg("aln"), - arg("include_ligands")=false, - arg("chain_names")="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz", - arg("spdbv_style")=false)); - def("BuildRawModel", BuildRawModelHandleList, - (arg("aln"), - arg("include_ligands")=false, - arg("chain_names")="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz", - arg("spdbv_style")=false)); + def("MHandleFromAln", &WrapMHandleFromAln, (arg("aln"), arg("chain_names"), + arg("include_ligands")=false, + arg("spdbv_style")=false)); } diff --git a/modelling/src/model.cc b/modelling/src/model.cc index 2eafa9df60de5b57606242400f8ab632bc160d28..5d27cde5f6471f819c9bfa6fc326639a9a9aeb71 100644 --- a/modelling/src/model.cc +++ b/modelling/src/model.cc @@ -853,45 +853,29 @@ bool InsertDummyAtoms(ResidueHandle dst_res, XCSEditor& edi) { return true; } -ModellingHandle BuildRawModel(const seq::AlignmentHandle& aln, - bool include_ligands, - const String& chain_names, - bool spdbv_style) -{ - seq::AlignmentList l; - l.push_back(aln); - return BuildRawModel(l, - include_ligands, - chain_names, - spdbv_style); -} - -ModellingHandle BuildRawModel(const seq::AlignmentList& aln, - bool include_ligands, - const String& chain_names, - bool spdbv_style) +ModellingHandle MHandleFromAln(const seq::AlignmentList& aln, + const std::vector<String>& chain_names, + bool include_ligands, + bool spdbv_style) { core::ScopedTimerPtr prof = core::StaticRuntimeProfiler::StartScoped( - "modelling::BuildRawModel", 2); + "modelling::MHandleFromAln", 2); + + if(aln.size() != chain_names.size()) { + throw promod3::Error("Require exactly one chain name per alignment"); + } ModellingHandle result; EntityHandle model=CreateEntity(); XCSEditor edi=model.EditXCS(BUFFERED_EDIT); result.model=model; - uint chain_name_idx = 0; - - for(seq::AlignmentList::const_iterator it=aln.begin(); - it!=aln.end(); ++it, ++chain_name_idx) { - if(chain_name_idx >= chain_names.size()) { - throw promod3::Error("running out of chain names"); - } + for(uint i = 0; i < aln.size(); ++i) { StructuralGapList gap_list; - BuildRawChain(*it, edi, gap_list, chain_names[chain_name_idx], spdbv_style); + AddRawChain(aln[i], edi, gap_list, chain_names[i], spdbv_style); result.gaps.insert(result.gaps.end(), gap_list.begin(), gap_list.end()); - seq::SequenceHandle seqres = seq::CreateSequence( - chain_names.substr(chain_name_idx, 1), - it->GetSequence(0).GetGaplessString()); + seq::SequenceHandle seqres = seq::CreateSequence(chain_names[i], + aln[i].GetSequence(0).GetGaplessString()); result.seqres.AddSequence(seqres); } @@ -977,11 +961,11 @@ void AddLigands(const seq::AlignmentList& aln, XCSEditor& edi, } } -void BuildRawChain(const seq::AlignmentHandle& aln, - XCSEditor& edi, - StructuralGapList& gap_list, - char chain_name, - bool spdbv_style) +void AddRawChain(const seq::AlignmentHandle& aln, + XCSEditor& edi, + StructuralGapList& gap_list, + const String& chain_name, + bool spdbv_style) { core::ScopedTimerPtr prof = core::StaticRuntimeProfiler::StartScoped( @@ -997,7 +981,7 @@ void BuildRawChain(const seq::AlignmentHandle& aln, throw promod3::Error("we cannot honor non-zero offsets for targets"); } - ChainHandle chain=edi.InsertChain(String(1,chain_name)); + ChainHandle chain=edi.InsertChain(chain_name); // we enforce res. numbering for target to start at 1 int res_num = 0; diff --git a/modelling/src/model.hh b/modelling/src/model.hh index a0facde15bd65f2bdbe980afd4ec249872815aad..df1df9d6f08c59f1d1e1111b94ef1207e20a3c0f 100644 --- a/modelling/src/model.hh +++ b/modelling/src/model.hh @@ -160,9 +160,10 @@ bool CopyModified(ost::mol::ResidueView src_res, bool& has_cbeta); -/// \brief Build raw model from alignment. +/// \brief Build raw model from list of alignments. /// -/// The second sequence of aln must have a view attached. +/// Every item in the list represents a target chain and the second sequence of +/// every aln must have a view attached. /// /// Basic protein core modeling algorithm that copies backbone coordinates based /// on the sequence alignment. For matching residues, the sidechain coordinates @@ -183,31 +184,19 @@ bool CopyModified(ost::mol::ResidueView src_res, /// Conopology::Instance().SetDefaultLib) as is done by default for /// Python imports (see core __init__.py) ModellingHandle -BuildRawModel(const ost::seq::AlignmentHandle& aln, - bool include_ligands=false, - const String& chain_names="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh" - "ijklmnopqrstuvwxyz", - bool spdbv_style=false); - -/// \brief Build raw model from alignment list. -/// -/// Every item in the list represents one target chain and the -/// second sequence must have a view attached. See above. -ModellingHandle -BuildRawModel(const ost::seq::AlignmentList& aln, - bool include_ligands=false, - const String& chain_names="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh" - "ijklmnopqrstuvwxyz", - bool spdbv_style=false); - -/// \brief get called by BuildRawModel, creates one single chain. -void BuildRawChain(const ost::seq::AlignmentHandle& aln, - ost::mol::XCSEditor& edi, - StructuralGapList& gap_list, - char chain_name, - bool spdbv_style=false); - -/// \brief handles ligands and gets called by BuildRawModel if add_ligand flag +MHandleFromAln(const ost::seq::AlignmentList& aln, + const std::vector<String>& chain_names, + bool include_ligands=false, + bool spdbv_style=false); + +/// \brief get called by MHandleFromAln, adds one single chain. +void AddRawChain(const ost::seq::AlignmentHandle& aln, + ost::mol::XCSEditor& edi, + StructuralGapList& gap_list, + const String& chain_name, + bool spdbv_style=false); + +/// \brief handles ligands and gets called by MHandleFromAln if add_ligand flag /// is true. void AddLigands(const ost::seq::AlignmentList& aln, ost::mol::XCSEditor& edi, diff --git a/modelling/tests/CMakeLists.txt b/modelling/tests/CMakeLists.txt index 72ce3f9aff830412fd28f48bd6fe2b4511cf7c6e..5afe06ee9f50df622b2524d9f67c432741af04bf 100644 --- a/modelling/tests/CMakeLists.txt +++ b/modelling/tests/CMakeLists.txt @@ -5,6 +5,7 @@ set(MODELLING_UNIT_TESTS test_pipeline.py test_ring_punches.py test_sidechain_reconstruction.py + test_alignment_fiddling.py test_loop_candidates.cc test_loop_closing.cc test_sidechain_reconstructor.cc @@ -69,6 +70,8 @@ set(MODELLING_TEST_DATA data/seq.fasta data/smtl2bl4.1.pdb data/ter.fasta + data/terminal_deletion_aln.fasta + data/double_gap_aln.fasta ) promod3_unittest(MODULE modelling diff --git a/modelling/tests/data/double_gap_aln.fasta b/modelling/tests/data/double_gap_aln.fasta new file mode 100644 index 0000000000000000000000000000000000000000..51c7a742943594456123dfcbb468ad94a524b38a --- /dev/null +++ b/modelling/tests/data/double_gap_aln.fasta @@ -0,0 +1,4 @@ +>target +-ABCDE-FG-H----I- +>template +-ABCDE-FGHI-JK-L- \ No newline at end of file diff --git a/modelling/tests/data/terminal_deletion_aln.fasta b/modelling/tests/data/terminal_deletion_aln.fasta new file mode 100644 index 0000000000000000000000000000000000000000..095e547d4986c68cdfe94a9aa3daf02dced5a93a --- /dev/null +++ b/modelling/tests/data/terminal_deletion_aln.fasta @@ -0,0 +1,4 @@ +>target +GSHMGD----LK--------------YSLERLREILERLEENPSEKQIVEAIRAIVENNAQIVE--AAI-ENNAQIVENNRAIIEALEAIGVDQKILEEMKKQLKDLKRSLERG +>template +-----DAQDKLKYLVKQLERALRELKKSLDELERSLEELEKNPSEDALVENNRLNVENNKIIVEVLRIILE------------------------------------------- diff --git a/modelling/tests/test_alignment_fiddling.py b/modelling/tests/test_alignment_fiddling.py new file mode 100644 index 0000000000000000000000000000000000000000..e015cb3c2f7f6d2f7d4331764c7f87e9d108cf63 --- /dev/null +++ b/modelling/tests/test_alignment_fiddling.py @@ -0,0 +1,129 @@ +# Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and +# Biozentrum - University of Basel +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +""" +Unit tests for alignment fiddling. +""" +import unittest +from promod3 import modelling +from ost import seq, io + +class ModellingTests(unittest.TestCase): + + def testDeleteGapCols(self): + aln = io.LoadAlignment('data/double_gap_aln.fasta') + s0_orig = aln.GetSequence(0) + s1_orig = aln.GetSequence(1) + # recreate aln with added offsets and attach some random structure to + # both sequences + s0 = seq.CreateSequence(s0_orig.GetName(), str(s0_orig)) + s1 = seq.CreateSequence(s1_orig.GetName(), str(s1_orig)) + s0.SetOffset(1) + s1.SetOffset(2) + random_structure = io.LoadPDB('data/1CRN.pdb') + s0.AttachView(random_structure.CreateFullView()) + s1.AttachView(random_structure.CreateFullView()) + pimped_aln = seq.CreateAlignment() + pimped_aln.AddSequence(s0) + pimped_aln.AddSequence(s1) + processed_aln = modelling.DeleteGapCols(pimped_aln) + processed_s0 = processed_aln.GetSequence(0) + processed_s1 = processed_aln.GetSequence(1) + + # the following things should be equal between sx and processed_sx: + # - name + # - offset + # - view attached + self.assertEqual(s0.GetName(), processed_s0.GetName()) + self.assertEqual(s1.GetName(), processed_s1.GetName()) + self.assertEqual(s0.GetOffset(), processed_s0.GetOffset()) + self.assertEqual(s1.GetOffset(), processed_s1.GetOffset()) + self.assertTrue(processed_s0.HasAttachedView()) + self.assertTrue(processed_s1.HasAttachedView()) + + # the actual sequences changed and are checked with the expected outcome + self.assertEqual(str(processed_s0), 'ABCDEFG-H--I') + self.assertEqual(str(processed_s1), 'ABCDEFGHIJKL') + + + def testPullTerminalDeletions(self): + + aln = io.LoadAlignment('data/terminal_deletion_aln.fasta') + + # min_terminal_anchor_sizes which are <= 0 are disallowed + self.assertRaises(RuntimeError, modelling.PullTerminalDeletions, aln, -10) + self.assertRaises(RuntimeError, modelling.PullTerminalDeletions, aln, 0) + + # check expected results for different min_terminal_anchor_sizes + + # nothing should happen for anchor size 1 + processed_aln = modelling.PullTerminalDeletions(aln, 1) + self.assertEqual(str(aln.GetSequence(0)), str(processed_aln.GetSequence(0))) + self.assertEqual(str(aln.GetSequence(1)), str(processed_aln.GetSequence(1))) + + processed_aln = modelling.PullTerminalDeletions(aln, 2) + exp_s0 = 'GSHMG----DLK--------------YSLERLREILERLEENPSEKQIVEAIRAIVENNAQIVE--AAIE-NNAQIVENNRAIIEALEAIGVDQKILEEMKKQLKDLKRSLERG' + exp_s1 = '-----DAQDKLKYLVKQLERALRELKKSLDELERSLEELEKNPSEDALVENNRLNVENNKIIVEVLRIILE-------------------------------------------' + self.assertEqual(str(processed_aln.GetSequence(0)), exp_s0) + self.assertEqual(str(processed_aln.GetSequence(1)), exp_s1) + + processed_aln = modelling.PullTerminalDeletions(aln, 3) + exp_s0 = 'GSHMG----DLK--------------YSLERLREILERLEENPSEKQIVEAIRAIVENNAQIVE--AAIE-NNAQIVENNRAIIEALEAIGVDQKILEEMKKQLKDLKRSLERG' + exp_s1 = '-----DAQDKLKYLVKQLERALRELKKSLDELERSLEELEKNPSEDALVENNRLNVENNKIIVEVLRIILE-------------------------------------------' + self.assertEqual(str(processed_aln.GetSequence(0)), exp_s0) + self.assertEqual(str(processed_aln.GetSequence(1)), exp_s1) + + processed_aln = modelling.PullTerminalDeletions(aln, 4) + exp_s0 = 'GSHMG------------------DLKYSLERLREILERLEENPSEKQIVEAIRAIVENNAQIVE--AAIE-NNAQIVENNRAIIEALEAIGVDQKILEEMKKQLKDLKRSLERG' + exp_s1 = '-----DAQDKLKYLVKQLERALRELKKSLDELERSLEELEKNPSEDALVENNRLNVENNKIIVEVLRIILE-------------------------------------------' + self.assertEqual(str(processed_aln.GetSequence(0)), exp_s0) + self.assertEqual(str(processed_aln.GetSequence(1)), exp_s1) + + processed_aln = modelling.PullTerminalDeletions(aln, 5) + exp_s0 = 'GSHMG------------------DLKYSLERLREILERLEENPSEKQIVEAIRAIVENNAQIVEAAIE---NNAQIVENNRAIIEALEAIGVDQKILEEMKKQLKDLKRSLERG' + exp_s1 = '-----DAQDKLKYLVKQLERALRELKKSLDELERSLEELEKNPSEDALVENNRLNVENNKIIVEVLRIILE-------------------------------------------' + self.assertEqual(str(processed_aln.GetSequence(0)), exp_s0) + self.assertEqual(str(processed_aln.GetSequence(1)), exp_s1) + + # also check, whether sequence name, offsets and attached views are preserved + random_structure = io.LoadPDB('data/1CRN.pdb') + s0 = seq.CreateSequence(aln.GetSequence(0).GetName(), str(aln.GetSequence(0))) + s1 = seq.CreateSequence(aln.GetSequence(1).GetName(), str(aln.GetSequence(1))) + s0.AttachView(random_structure.CreateFullView()) + s1.AttachView(random_structure.CreateFullView()) + pimped_aln = seq.CreateAlignment() + pimped_aln.AddSequence(s0) + pimped_aln.AddSequence(s1) + processed_aln = modelling.PullTerminalDeletions(pimped_aln, 5) + processed_s0 = processed_aln.GetSequence(0) + processed_s1 = processed_aln.GetSequence(1) + + # the following things should be equal between sx and processed_sx: + # - name + # - offset + # - view attached + self.assertEqual(s0.GetName(), processed_s0.GetName()) + self.assertEqual(s1.GetName(), processed_s1.GetName()) + self.assertEqual(s0.GetOffset(), processed_s0.GetOffset()) + self.assertEqual(s1.GetOffset(), processed_s1.GetOffset()) + self.assertTrue(processed_s0.HasAttachedView()) + self.assertTrue(processed_s1.HasAttachedView()) + + +if __name__ == "__main__": + from ost import testutils + testutils.RunTests() + diff --git a/modelling/tests/test_close_gaps.py b/modelling/tests/test_close_gaps.py index f2eb48827a10c4a561e44bdb3ef37ad5154ad17a..9b88c4fb39381cb4390e1eff4181eafe8f515806 100644 --- a/modelling/tests/test_close_gaps.py +++ b/modelling/tests/test_close_gaps.py @@ -175,7 +175,8 @@ class CloseGapsTests(unittest.TestCase): aln = seq.CreateAlignment(seq.CreateSequence('trg', 'GGG-GGG'), seq.CreateSequence('tpl', 'GGGAGGG')) aln.AttachView(1, tpl.CreateFullView()) - mhandle = modelling.BuildRawModel(aln) + # disable aln_preprocessing as deletion would be removed + mhandle = modelling.BuildRawModel(aln, aln_preprocessing=False) self.assertEqual(len(mhandle.gaps), 1) # close it nlogs = len(self.log.messages['INFO']) @@ -202,7 +203,8 @@ class CloseGapsTests(unittest.TestCase): alns = seq.AlignmentList() alns.append(aln_A) alns.append(aln_B) - mhandle = modelling.BuildRawModel(alns) + # disable aln_preprocessing as one of the deletions would be removed + mhandle = modelling.BuildRawModel(alns, aln_preprocessing=False) self.assertEqual(len(mhandle.gaps), 2) # do it modelling.CloseSmallDeletions(mhandle) @@ -581,7 +583,8 @@ class CloseGapsTests(unittest.TestCase): seq.CreateSequence('trg', 'NGG----------------------RVE'), seq.CreateSequence('tpl', 'NGGTLLIPNGTYHFLGIQMKSNVHIRVE')) aln.AttachView(1, tpl.CreateFullView()) - mhandle = modelling.BuildRawModel(aln) + # disable aln_preprocessing as the deletion would be removed + mhandle = modelling.BuildRawModel(aln, aln_preprocessing=False) self.assertEqual(len(mhandle.gaps), 1) modelling.CloseLargeDeletions(mhandle, self.structure_db, num_fragments=100) @@ -596,7 +599,8 @@ class CloseGapsTests(unittest.TestCase): seq.CreateSequence('trg', 'GAGAGAGANG--LLIPNGTYHFLGIQMKSNVHIRVE'), seq.CreateSequence('tpl', '--------NGGTLLIPNGTYHFLGIQMKSNVHIRVE')) aln.AttachView(1, tpl.CreateFullView()) - mhandle = modelling.BuildRawModel(aln) + # disable aln_preprocessing as the deletion would be removed + mhandle = modelling.BuildRawModel(aln, aln_preprocessing=False) modelling.RemoveTerminalGaps(mhandle) self.assertEqual(len(mhandle.gaps), 1) modelling.CloseLargeDeletions(mhandle, self.structure_db, diff --git a/modelling/tests/test_modelling.py b/modelling/tests/test_modelling.py index 0cd6b31046f3bf433cfd5cdcdb76ee4790f95c75..f8e8b946b4120d24b820c041d12a6a1d7b65ec3d 100644 --- a/modelling/tests/test_modelling.py +++ b/modelling/tests/test_modelling.py @@ -60,6 +60,40 @@ class ModellingTests(unittest.TestCase): seq.CreateSequence('B', 'ac-ef')) self.assertRaises(RuntimeError, modelling.BuildRawModel, aln) + def testRaiseInvalidChainNames(self): + tpl = io.LoadPDB('data/gly.pdb') + aln = io.LoadAlignment('data/seq.fasta') + aln.AttachView(1, tpl.CreateFullView()) + + # perform stuff that doesn't raise, i.e. do it correctly + result = modelling.BuildRawModel(aln) + result = modelling.BuildRawModel(aln, chain_names='cheese') + self.assertEqual(result.model.chains[0].GetName(), 'cheese') + aln_lst = seq.AlignmentList() + aln_lst.append(aln) + aln_lst.append(aln) + result = modelling.BuildRawModel(aln_lst) + result = modelling.BuildRawModel(aln_lst, ['cheese', 'steak']) + self.assertEqual(result.model.chains[0].GetName(), 'cheese') + self.assertEqual(result.model.chains[1].GetName(), 'steak') + + # we only accept a string as chain_names if aln is AlignmentHandle + self.assertRaises(RuntimeError, modelling.BuildRawModel, aln, 1) + self.assertRaises(RuntimeError, modelling.BuildRawModel, aln, ['A']) + + # we only accept a list as chain_names if aln is AlignmentList + self.assertRaises(RuntimeError, modelling.BuildRawModel, aln_lst, 1) + self.assertRaises(RuntimeError, modelling.BuildRawModel, aln_lst, 'A') + # size also matters... + self.assertRaises(RuntimeError, modelling.BuildRawModel, aln_lst, ['A']) + + # increase size of aln_list => at some point we should run out of + # default chain_names + aln_lst = 100*[aln] + self.assertRaises(RuntimeError, modelling.BuildRawModel, aln_lst) + + + def testModeledSequence(self): # test if the model has the sequence we want. tpl = io.LoadPDB('data/gly.pdb') @@ -75,7 +109,8 @@ class ModellingTests(unittest.TestCase): tpl = io.LoadPDB('data/gly.pdb') aln = io.LoadAlignment('data/del.fasta') aln.AttachView(1, tpl.CreateFullView()) - result = modelling.BuildRawModel(aln) + # disable aln_preprocessing to keep the deletion in the example aln + result = modelling.BuildRawModel(aln, aln_preprocessing=False) residues = result.model.residues self.assertEqual(len(result.gaps), 1) self.assertEqual(result.gaps[0].before, residues[2]) @@ -398,7 +433,8 @@ class ModellingTests(unittest.TestCase): seq.CreateSequence('trg', 'TLNGFTVPAGNTLVLN---PDKG--ATVTM-A'), seq.CreateSequence('tpl', 'N-GG-TLLI--PNGTYHFLGIQMKSNVHIRVE')) aln.AttachView(1, tpl.CreateFullView()) - mhandle = modelling.BuildRawModel(aln) + # disable aln_preprocessing to also keep the small deletion in the end + mhandle = modelling.BuildRawModel(aln, aln_preprocessing=False) # check self.assertEqual(len(mhandle.gaps), 6) self.assertEqual(modelling.ClearGaps(mhandle, mhandle.gaps[1]), 1) diff --git a/sidechain/src/rotamer.cc b/sidechain/src/rotamer.cc index aa4a399ff804c90247a3a048de8349c3cc8f2786..7e84c43cad901685683f90c518d0db0deb6acbe3 100644 --- a/sidechain/src/rotamer.cc +++ b/sidechain/src/rotamer.cc @@ -54,6 +54,7 @@ void RRMRotamer::ApplyOnResidue(ost::mol::ResidueHandle& res, ed.RenameResidue(res, new_res_name); res.SetOneLetterCode(ost::conop::ResidueNameToOneLetterCode(new_res_name)); } + ed.UpdateICS(); }