diff --git a/doc/html/_sources/actions/index.rst.txt b/doc/html/_sources/actions/index.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..a456b7ef0bc7c2aca6da44759d93a0343791230d --- /dev/null +++ b/doc/html/_sources/actions/index.rst.txt @@ -0,0 +1,215 @@ +.. _promod-actions: + +|project| Actions +================================================================================ + +A pure command line interface of |project| is provided by actions. +You can execute ``pm help`` for a list of possible actions and for every action, +you can type ``pm <ACTION> -h`` to get a description on its usage. + +Here we list the most prominent actions with simple examples. + +.. _promod-build-model: + +Building models +-------------------------------------------------------------------------------- + +You can run a full protein homology modelling pipeline from the command line +with + +.. code-block:: console + + $ pm build-model [-h] (-f <FILE> | -c <FILE> | -j <OBJECT>|<FILE>) + (-p <FILE> | -e <FILE>) [-s <FILE>] [-o <FILENAME>] + [-r] [-t] + +Example usage: + +.. code-block:: console + + $ pm build-model -f aln.fasta -p tpl.pdb + +This reads a target-template alignment from :file:`aln.fasta` and a matching +structure from :file:`tpl.pdb` and produces a gap-less model which is stored as +:file:`model.pdb`. The output filename can be controlled with the ``-o`` flag. + +Target-template alignments can be provided in FASTA (``-f``), CLUSTAL (``-c``) +or as JSON files/objects (``-j``). 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 :meth:`~promod3.modelling.BuildRawModel`). +Notes on the input formats: + +- Leading/trailing whitespaces of sequence names will always be deleted + +- FASTA input example: + + .. code-block:: none + + >target + HGFHVHEFGDNTNGCMSSGPHFNPYGKEHGAPVDENRHLG + >2jlp-1.A|55 + RAIHVHQFGDLSQGCESTGPHYNPLAVPH------PQHPG + + 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 + +- CLUSTAL input follows the same logic as FASTA input + +- 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). + Example: + + .. code-block:: json + + {"alignmentlist": [ { + "target": { + "name": "mytrg", + "seqres": "HGFHVHEFGDNTNGCMSSGPHFNPYGKEHGAPVDENRHLG" + }, + "template": { + "name": "2jlp-1.A", + "offset": 55, + "seqres": "RAIHVHQFGDLSQGCESTGPHYNPLAVPH------PQHPG" + } + } ] } + +Structures can be provided in PDB (``-p``) or in any format readable by the +:func:`ost.io.LoadEntity` method (``-e``). In the latter case, the format is +chosen by file ending. Recognized File Extensions: ``.ent``, ``.pdb``, +``.ent.gz``, ``.pdb.gz``, ``.cif``, ``.cif.gz``. 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 +identified based on the sequence name of the templates in the alignments. Valid +sequence names are: + +- anything, if only one structure with one chain +- "<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. +- "<FILE>" if only one chain in file +- "<CHAIN>" if only one file imported +- "<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. + +Example: ``... -p data/2jlp.pdb.gz``, where the pdb file has chains ``A``, +``B``, ``C`` and the template sequence is named ``2jlp.A|55``. + + +You can optionally specify sequence profiles to be added (``-s``) 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 :meth:`ost.bindings.hhblits.HHblits.A3MToProfile` if you have a +file in a3m format at hand. + +* The profiles are mapped based on exact matches towards the gapless + target sequences from the provided alignment files, + i.e. one profile is mapped to several chains in case of homo-oligomers + +* Every profile must have a unique sequence to avoid ambiguities + +* All or nothing - You cannot provide profiles for only a subset of + target sequences + +Example usage: + +.. code-block:: console + + $ pm build-model -f aln.fasta -p tpl.pdb -s prof.hhm + +A fast torsion angle based sampling is performed in case of Monte Carlo +sampling. You can enforce the usage of structural fragments with ``-r`` +but this increases runtime due to searching the required fragments. +Setup of the according :class:`promod3.modelling.FraggerHandle` +objects is performed in the +:class:`~promod3.core.pm3argparse.PM3ArgumentParser` class as described in +detail :meth:`here <promod3.core.pm3argparse.PM3ArgumentParser.AddFragments>`. + +The default modelling pipeline in |project| 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 ``-t``. +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. + + +Possible exit codes of the action: + +- 0: all went well +- 1: an unhandled exception was raised +- 2: arguments cannot be parsed or required arguments are missing +- 3: failed to perform modelling (internal error) +- 4: failed to write results to file +- other non-zero: failure in argument checking + (see :class:`promod3.core.pm3argparse.PM3ArgumentParser`) + + +Sidechain Modelling +-------------------------------------------------------------------------------- + +You can (re-)construct the sidechains in a model from the command line. + +.. code-block:: console + + $ usage: build-sidechains [-h] (-p <FILE> | -e <FILE>) [-o <FILENAME>] [-k] [-n] + [-r] [-i] [-s] + +Example usage: + +.. code-block:: console + + $ pm build-sidechains -p input.pdb + +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 :file:`out.pdb`. +The output filename can be controlled with the ``-o`` flag. + +A structure can be provided in PDB (``-p``) or in any format readable by the +:func:`ost.io.LoadEntity` method (``-e``). In the latter case, the format is +chosen by file ending. Recognized File Extensions: ``.ent``, ``.pdb``, +``.ent.gz``, ``.pdb.gz``, ``.cif``, ``.cif.gz``. + +Several flags control the modelling behaviour: + +.. option:: -k, --keep-sidechains + + Keep existing sidechains. + +.. option:: -n, --no-disulfids + + Do not build disulfid bonds before sidechain optimization + +.. option:: -r, --rigid-rotamers + + Do not use rotamers with subrotamers + +.. option:: -i, --backbone-independent + + Use backbone independent rotamer library + (from :meth:`promod3.sidechain.LoadLib`) instead of the default backbone + dependent one (from :meth:`promod3.sidechain.LoadBBDepLib`) + +.. option:: -s, --no-subrotamer-optimization + + Dont do subrotamer optimization if flexible rotamer model is used + +.. option:: -f, --energy_function + + The energy function to be used. Default is SCWRL4, can be any function + supported by :meth:`promod3.modelling.ReconstructSidechains`. + diff --git a/doc/html/_sources/actions/index_dev.rst.txt b/doc/html/_sources/actions/index_dev.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..9373583b95f843220064846ba9d48fd6fee27e58 --- /dev/null +++ b/doc/html/_sources/actions/index_dev.rst.txt @@ -0,0 +1,234 @@ +:mod:`test_actions` - Testing Actions +================================================================================ + +.. module:: test_actions + :synopsis: Testing Actions + +.. currentmodule:: test_actions + +This module is **not** part of the |project| binary distribution. That is the +productive bit running to produce models. It is only part of the source +distribution intended to help developing |project|. Basically it supports you +creating new actions along immediate tests, which will be stored as unit tests +and stay available to monitor later changes. + +.. note:: + + A couple of different paths will be mentioned in the following. To make + things easier to tell apart, a prefix :file:`<SOURCE>` refers to the code + repository, :file:`<BUILD>` to the build directory tree. + +Inside the development environment, the module is only available to unit tests +in the :file:`<SOURCE>/actions/tests` directory. There is one special thing +about using it in your tests for an action, emerging from the way ``make`` runs +unit tests as set up via |cmake|. |python| modules are imported from the source +directory, here this is :file:`<SOURCE>/actions/tests`, while the tests run +inside :file:`<BUILD>/tests`, here this is :file:`<BUILD>/tests/actions`. 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 ``git status``. To prevent this, tell |python| to stop producing +bytecode right at the beginning of your test-script: + +.. literalinclude:: ../../../tests/doc/scripts/action_test.py + :lines: 1-5 + :emphasize-lines: 5 + :linenos: + +Line 5 does the trick. This needs to be set by you in every action unit test +file since |python| only recognises it **before** the module is imported. +Otherwise a module could disable bytecoding for all other modules loaded. + +Testing actions, basically those are commands run in a shell, is very similar +across various actions. Additionally, there are some things that should be +tested for all actions like exit codes. That is why this module exists. + +When developing an action, you will try it in the shell during the process. You +have to check that its doing what you intend, that it delivers the right +output, that it just behaves right on various kinds of input. This module +supports you by providing functionality to run scripts out of |python|. The +goal is to not trigger test runs manually in a shell but have a script that +does it for you. From there, you do not need to remember all the calls you +punched into the command line a year ago, when you come back to change +something, add new functionality, etc.. + +-------------------------------------------------------------------------------- +Creating an Action Unit Test Script +-------------------------------------------------------------------------------- +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 ``do-awesome`` for the rest of this section. + +The Test Script +-------------------------------------------------------------------------------- +The script to supervise your action needs to be placed in +:file:`<SOURCE>/actions/tests` and follow the naming convention +:file:`test_action_<NAME>.py`, where :file:`<NAME>` is the name for your +action. So here we create a file :file:`test_action_do_awesome.py` (recognise +the underscore between ``do`` and ``awesome`` instead of a hyphen, that's +|pep8|_). + +.. code-block:: console + + $ touch <SOURCE>/actions/tests/test_action_do_awesome.py + $ + +As a starter, we disable bytecode compilation in the script: + +.. literalinclude:: ../../../tests/doc/scripts/action_test.py + :lines: 1-5 + :linenos: + +|cmake| Integration +-------------------------------------------------------------------------------- +As always, when introducing new material to |project|, it has to be announced +to the |cmake| build system. For action unit tests, fire up +:file:`<SOURCE>/actions/tests/CMakeLists.txt` in your favourite text editor and +add your new script: + +.. code-block:: cmake + :emphasize-lines: 3 + :linenos: + + set(ACTION_UNIT_TESTS + test_action_help.py + test_action_do_awesome.py + test_actions.py # leave this as last item so it will be executed first! + ) + + promod3_unittest(MODULE actions SOURCES "${ACTION_UNIT_TESTS}" TARGET actions) + +The important thing is to leave :file:`test_actions.py` as last item in the +list. This script contains the tests around the +:class:`test_actions.ActionTestCase` 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. + +Creating a Test Subclass +-------------------------------------------------------------------------------- +:class:`test_actions.ActionTestCase` 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, :file:`test_actions.py` has to be loaded as a module: + +.. literalinclude:: ../../../tests/doc/scripts/action_test.py + :lines: 7 + :lineno-start: 6 + :linenos: + +To showcase, the test cases, we explain how one would (and does) test the +``help`` action of ``pm``. +First, we create the childclass for the action. +Go for :class:`<NAME>ActionTests` as a naming scheme: + +.. literalinclude:: ../../../tests/doc/scripts/action_test.py + :lines: 9-12 + :lineno-start: 7 + :linenos: + +Pay attention that in your own class, you must set :attr:`pm_action` to make +everything work. Also :meth:`__init__` needs certain parameters, as everything +is derived from the :class:`unittest.TestCase` class. + +Must Have Tests +-------------------------------------------------------------------------------- +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 :class:`test_actions.ActionTestCase` by :meth:`~ActionTestCase.RunExitStatusTest`. +As an example, testing for ``$?=0`` could work like this: + +.. literalinclude:: ../../../tests/doc/scripts/action_test.py + :lines: 14-15 + :lineno-start: 11 + :linenos: + +That will call the action stored in :attr:`pm_action` with the provided list of +parameters and check that ``0`` is returned on the command line. + +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. + +Making the Script Executable +-------------------------------------------------------------------------------- +In |project|, unit tests are run via |ost_s|_'s :mod:`ost.testutils` and |python|'s +:class:`unittest.TestCase`. Those are called when the test module is executed +as a script: + +.. literalinclude:: ../../../tests/doc/scripts/action_test.py + :lines: 17-19 + :lineno-start: 13 + :linenos: + +These three lines should be the same for all unit tests. + +Running the Test Script +-------------------------------------------------------------------------------- +Unit tests are executed via ``make check`` and so are |project| action tests. +But for every test script, we also provide a private ``make`` target, ending +with :file:`_run`. To solely run the tests for the awesome action, hit + +.. code-block:: console + + $ make test_action_do_awesome.py_run + +Output Of :class:`test_actions.ActionTestCase` +-------------------------------------------------------------------------------- +When running the test script you will notice that its not really talkative. +Basically you do not see output to :file:`stdout`/ :file:`stderr` 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 **everything** 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 :class:`test_actions.ActionTestCase` have a +parameter :attr:`verbose`. 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. + +To get the test for exit code ``0`` talking to you, just do + +.. literalinclude:: ../../../tests/doc/scripts/action_test_verbose.py + :lines: 14-15 + :lineno-start: 11 + :linenos: + +and + +.. literalinclude:: ../../../tests/doc/scripts/action_test.py + :lines: 14-15 + :lineno-start: 11 + :linenos: + +keeps it silent (:attr:`verbose` is set to ``False`` by default). If enabled, +output will be separated into :file:`stdout` and :file:`stderr`: + +.. code-block:: console + + $ make test_action_do_awesome.py_run + <Lots of output from the build process> + running checks test_action_do_awesome.py + stdout of '<BUILD>/stage/bin/pm do-awesome' + ------ + <Output to stdout> + ------ + stderr of '<BUILD>/stage/bin/pm do-awesome' + ------ + <Output to stderr> + ------ + <More output from unit test runner> + +-------------------------------------------------------------------------------- +Unit Test Actions API +-------------------------------------------------------------------------------- + +.. autoclass:: test_actions.ActionTestCase + :members: + +.. LocalWords: ActionTestCase currentmodule cmake bytecode emphasize sys py +.. LocalWords: linenos pyc dont promod unittest childclass lineno init args +.. LocalWords: ActionTests DoAwesomeActionTests kwargs attr meth TestCase +.. LocalWords: userlevel RunExitStatusTest testExit ost testutils RunTests +.. LocalWords: stdout stderr nobytecode testsetup actiontest os +.. LocalWords: getcwd pardir builtin testoutput NORMALIZE WHITESPACE API +.. LocalWords: autoclass diff --git a/doc/html/_sources/buildsystem.txt b/doc/html/_sources/buildsystem.rst.txt similarity index 89% rename from doc/html/_sources/buildsystem.txt rename to doc/html/_sources/buildsystem.rst.txt index 2ec26dc0ee6fef295ef194dba1d795681478d920..c38e76aa7af24ba3cc6c64f263255a079261c443 100644 --- a/doc/html/_sources/buildsystem.txt +++ b/doc/html/_sources/buildsystem.rst.txt @@ -1,170 +1,172 @@ -.. Copyright (c) 2013-2018, 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|. A C++11 compatible compiler is required. |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. - -The currently preferred versions are: - -* |ost_s|_ |ost_version| -* |openmm|_ 7.1.1 -* |cmake|_ 2.8.12 -* |python|_ 2.7.11 -* |boost|_ 1.53.0 -* |eigen3|_ 3.3.1 -* |sphinx|_ 1.4.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.txt b/doc/html/_sources/changelog.rst.txt similarity index 93% rename from doc/html/_sources/changelog.txt rename to doc/html/_sources/changelog.rst.txt index 0e9ceb554298f192f7dea1e1b082a380fff4a766..1fb6710efc8d360311e9eeab1e1043e3437ee240 100644 --- a/doc/html/_sources/changelog.txt +++ b/doc/html/_sources/changelog.rst.txt @@ -5,6 +5,16 @@ Changelog ================================================================================ +Release 3.0.0 +-------------------------------------------------------------------------------- + +* First release supporting Python 3. Python 2 support has been dropped. +* Updated versions of dependencies. +* Reduced amount of warnings during compilation. +* Improved and simplified use of Docker and Singularity containers. +* Several minor bug fixes, improvements, and speed-ups. + + Release 2.1.0 -------------------------------------------------------------------------------- @@ -15,7 +25,7 @@ Release 2.1.0 to parametrize arbitrary compounds. * Motif finding algorithm to identify objects in 3D space, e.g. binding sites. The algorithm is based on principles of geometric hashing. -* Several minor bug fixes, improvements, and speed-ups +* Several minor bug fixes, improvements, and speed-ups Release 2.0.0 diff --git a/doc/html/_sources/cmake/index.rst.txt b/doc/html/_sources/cmake/index.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..8bdbfff6454f7f6f7ba8cf9df4ed9aa49bd61f10 --- /dev/null +++ b/doc/html/_sources/cmake/index.rst.txt @@ -0,0 +1,300 @@ +.. _pm3-cmake-doc: + + +|project|'s Share Of |cmake| +=============================================================================== + +Introduction +-------------------------------------------------------------------------------- + +This section describes the set of |project|'s own set of |cmake| functions (or +macros) fed from the :file:`cmake_support` directory. Those could be easily put +into three categories of varying relevance for you: + +1. Functions used to integrate your contribution into |project|. Its all about + adding files to the documentation, declaring unit tests and code management. + Almost all of them have their home in the file :file:`PROMOD3.cmake`. + +2. 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 + :file:`Find<DEPENDENCY>.cmake` files. + +3. The last and probably least relevant category for you is also to be found in + :file:`PROMOD3.cmake`. 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. + +Best practices for using our home-brew |cmake| functions are found in the +various :file:`CMakeLists.txt` files in the project's directory tree. + +Functions For Module/ Action Maintenance +-------------------------------------------------------------------------------- + +Module definition +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Default dependencies in a module ``NAME``: + +- ``_NAME`` depends on ``NAME_pymod`` and ``promod3_NAME`` (if that exists) +- ``promod3_NAME`` depends on ``promod3_NAME_headers`` + +.. cmake:command:: module + + .. code-block:: cmake + + module(NAME name + SOURCES source1 source2 + HEADERS header1 header2 [IN_DIR dir] + [header3 header4 [IN_DIR dir]] + [DEPENDS_ON dep1 dep2] + [HEADER_OUTPUT_DIR dir] + [LINK link_cmds]) + + Define a |project| module from a set of |C++| files. This will define the + following make targets (where ``NAME`` is the provided module name): + + - ``promod3_NAME``: builds library :file:`libpromod3_NAME` + - ``promod3_NAME_headers``: copies all header files + + The parameters are: + + ``NAME`` + Specify the name of the module. + + ``SOURCES`` + Set of |C++| source files to be compiled. + + ``HEADERS`` + 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 ``dir`` with ``IN_DIR dir`` after listing the + header files in said directory. + + ``DEPENDS_ON`` + Add dependencies on other targets (e.g. ``promod3_MOD`` for another + |project| module). + + ``HEADER_OUTPUT_DIR`` + Define alternative folder to which to copy header files. Default is + :file:`promod3/NAME`. + + ``LINK`` + Add dependencies to external libraries. You may use some predefines set of + libraries here, such as ``${OST_LIBRARIES}`` and ``${BOOST_LIBRARIES}``. + + +.. cmake:command:: pymod + + .. code-block:: cmake + + pymod(NAME name + CPP source1 source2 + PY source source2 [IN_DIR dir] + [source3 source4 [IN_DIR dir]] + [TRANSLATE dict END_TRANSLATE] + [OUTPUT_DIR dir] + [DEPENDS_ON dep1 dep2] + [NEED_CONFIG_HEADER]) + + Define the |python| interface of a |project| module from a set of |C++| + wrappers and/or Python files. This will define the following make targets + (where ``NAME`` is the provided module name): + + - ``_NAME``: builds library :file:`_NAME` for |python| wrapper around |C++| + - ``NAME_pymod``: copies (and/or translates) all |python| files + + The parameters are: + + ``NAME`` + Specify the name of the module. + + ``CPP`` + Set of |C++| source files to be compiled. + + ``PY`` + 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 ``dir`` with ``IN_DIR dir`` after listing the + header files in said directory. + + If a |python| source file needs to be translated by |cmake|, provide the + dictionary after putting ``TRANSLATE``. This assumes a ``<FILE>.py.in`` for + ``<FILE>.py``. ``END_TRANSLATE`` marks the end of the translation + dictionary. + + ``OUTPUT_DIR`` + Define alternative folder (within Python tree) to place python files. + Default is :file:`promod3/NAME`. + + ``DEPENDS_ON`` + Add dependencies on other targets (e.g. ``promod3_MOD`` for another + |project| module). + + ``NEED_CONFIG_HEADER`` + Makes the module depending on the config_header target, which provides the + headers in the :file:`config` directory. + + +.. cmake:command:: convert_module_data + + .. code-block:: cmake + + convert_module_data(MODULE name + FILE file + SCRIPT script + [ARGS args]) + + Use a Python script to convert a portable binary file to a non-portable one. + Calls ``python SCRIPT in_path out_path ARGS`` (with access to |ost_s| and + |project|), + where ``in_path`` = :file:`portable_FILE` + (within path of current :file:`CMakeLists.txt`) + and ``out_path`` = :file:`share/promod3/MODULE_data/FILE` + (within the :file:`stage` directory). + If given, ``args`` can also be multiple arguments (must be put in "" then). + + +Unit Tests +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. cmake:command:: promod3_unittest + + .. code-block:: cmake + + promod3_unittest(MODULE name + SOURCES source1 [source2 ...] + [LINK library1/ linker flag1 [library2/ linker flag2 ...]] + [DATA data1 [data2 ...]] + [TARGET target] + [BASE_TARGET base_target]) + + Add unit tests to |project|. Unit tests should go in module-wise so all + source files containing test code go by a single call of + :cmake:command:`promod3_unittest`. 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 :cmake:command:`promod3_unittest` will + create a set of certain ``make`` targets for you, beside feeding ``codetest``. + + The parameters are: + + ``MODULE`` + Specify the name of the module these tests are made for. Needs to be set, + needs to be a single word. Ends up in ``make help`` as a prefix, nothing + will break if it does not match the name of any existing module. + + ``SOURCES`` + 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 ``make`` + targets produced. |C++| files will all be gathered in a single + ``test_suite_<MODULE>_run`` target (there is also a ``_xml`` target but + this is for tools for automated testing). |python| code works on a 'one + target per file' basis. So :file:`test_foo.py` will have own target + ``test_foo.py_run``. + + ``LINK`` + Add additional libraries and linker flags for |C++| source files. Has no + effect on |python| tests. + + ``DATA`` + Define test data. Instead of giving data directories its own + :file:`CMakeLists.txt`, those files are added here. Usually located + somewhere in a dedicated :file:`data` subtree, files need to be given with + a path relative to this directory. That path will then be created in the + build directory. + + ``TARGET`` + This defines an additional dependency for the unit test. That is, before + running this unit test, this target will be built. + + ``BASE_TARGET`` + 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 + ``codetest`` target. This can be overridden by using this argument. + +Documentation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. cmake:command:: add_doc_source + + .. code-block:: cmake + + add_doc_source(NAME name + RST rst1 [rst2...]) + + Add reStructuredText sources for the doc build system. This is most preferable + used in :file:`doc` directories for keeping the documentation sorted per + module. This does not create any ``make`` targets. Lists filled here will all + be evaluated in the :file:`doc/CMakeLists.txt` of the repository root. + + The parameters are: + + ``NAME`` + 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 :file:`doc/source` with that name in the build + root. + + ``RST`` + Describe a set of files containing the documentation. Feed it a single file + name or a |cmake| list. + +.. cmake:command:: add_doc_dependency + + .. code-block:: cmake + + add_doc_dependency(NAME name + DEP dependency1 [dependency2...]) + + Add a dependency to the doc build system. For an existing name, add some + dependencies when it comes to building documentation. Mostly for internal use. + + The parameters are: + + ``NAME`` + 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 :cmake:command:`add_doc_source` work well. Dependencies + will be create for all reStructuredText files listed by + :cmake:command:`add_doc_source` under this name and for all ``make`` + targets related to the documentation. + + ``DEP`` + Hand over a dependency here or a |cmake| list. Files work, if given with + absolute path. + +Actions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. cmake:command:: pm_action + + .. code-block:: cmake + + pm_action(ACTION action-script + TARGET target) + + Add an action to |project|. Actions are scripts called by the ``pm`` launcher + and should all live in the :file:`actions` directory as executable files. + Adding an action means connecting its file with the given target to be copied + to the :file:`libexec` directory. No dedicated ``make`` target will be + created. + + The parameters are: + + ``ACTION`` + Name of the action to be added. Should start with :file:`pm-`. Needs to be + an existing file in the same directory as the invoking + :file:`CMakeLists.txt`. + + ``TARGET`` + Provide a ``make`` target to trigger copying the action's script file. The + target has to be created **before** any action may be attached to it. + +.. Finding packages +.. ----------------- + +.. Extending |cmake| +.. ----------------- + +.. LocalWords: cmake PROMOD CMakeLists txt promod unittest codetest xml py +.. LocalWords: libexec reStructuredText RST subtree rst DEP diff --git a/doc/html/_sources/container/docker.rst.txt b/doc/html/_sources/container/docker.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..17929ab66286baafe6adcb431401caf96d1bff2f --- /dev/null +++ b/doc/html/_sources/container/docker.rst.txt @@ -0,0 +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()) + diff --git a/doc/html/_sources/container/index.rst.txt b/doc/html/_sources/container/index.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..d8d47d063bd5319dae9eea15bf73e09fb34e2b55 --- /dev/null +++ b/doc/html/_sources/container/index.rst.txt @@ -0,0 +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> + + + + + + diff --git a/doc/html/_sources/container/singularity.rst.txt b/doc/html/_sources/container/singularity.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..4166f85904ccef1c6219788fac15d8bd9ad45dd3 --- /dev/null +++ b/doc/html/_sources/container/singularity.rst.txt @@ -0,0 +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`. diff --git a/doc/html/_sources/container/singularity.txt b/doc/html/_sources/container/singularity.txt deleted file mode 100644 index 16af7e051382508f764bddb533647d423db67fd7..0000000000000000000000000000000000000000 --- a/doc/html/_sources/container/singularity.txt +++ /dev/null @@ -1,126 +0,0 @@ -.. Copyright (c) 2013-2018, 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 Singularity Image ------------------------ - - -If you built the Docker image locally you can use it as a starting point. For -this we have to fire up a local Docker registry and pull from there. Let's -assume you built the Docker image with tag promod. - -Fire the local Registry and push the promod image to it: - -.. code-block:: bash - - sudo docker run -d -p 5000:5000 --restart=always --name registry registry:2 - sudo docker tag promod localhost:5000/promod - sudo docker push localhost:5000/promod - -If port 5000 is already taken on your machine, use a different ``<PORT>`` by -using the flag ``-p <PORT>:5000`` and ``localhost:<PORT>`` in these commands. -Make sure, that on top of your Singularity recipe you have something like: - -.. code-block:: bash - - BootStrap: docker - Registry: http://localhost:5000 - Namespace: - From: promod:latest - -and build the image with: - -.. code-block:: bash - - sudo SINGULARITY_NOHTTPS=1 singularity build promod.img Singularity - - -Run scripts and actions with OST/PM ------------------------------------ - -The created container can run the ost, pm or chemdict_tool executables. -For convenience, a jupyter notebook playground with OST, ProMod3 and nglview is -available. - -To run ost, pm or chemdict_tool executables, use the exec command. -E.g. to run scripts with pm: - -.. code-block:: bash - - singularity exec <IMAGE> pm my_script.py [options] - -The jupyter notebook is setup as an app in the container. -To get help on how to run it: - -.. code-block:: bash - - singularity help --app Notebook <IMAGE> - -Within the notebook you can test OST, ProMod3 and nglview as follows: - -.. code-block:: python - - from ost import io - from promod3 import loop - import nglview - - # generate backbone with dihedrals of a helix and store it - sequence = "HELLYEAH" - bb_list = loop.BackboneList(sequence) - io.SavePDB(bb_list.ToEntity(), "test.pdb") - - # display stored file - view = nglview.show_file("test.pdb") - view - - -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 exec <IMAGE_NAME> chemdict_tool create components.cif.gz \ - compounds.chemlib - -Run some script with an updated compound library from localhost: - -.. code-block:: bash - - singularity exec -B <COMPLIB_DIR_LOCALHOST>:<COMPLIB_DIR_CONTAINER> <IMAGE_NAME> \ - pm 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/ost_complib. -<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.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..0e33e7c73cc2ad761f2de743de6706b33a8f67e8 --- /dev/null +++ b/doc/html/_sources/contributing.rst.txt @@ -0,0 +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__` diff --git a/doc/html/_sources/core/geometry.rst.txt b/doc/html/_sources/core/geometry.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..8dfdae2989b34f64917a570a51ec3371fed2ea21 --- /dev/null +++ b/doc/html/_sources/core/geometry.rst.txt @@ -0,0 +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` diff --git a/doc/html/_sources/core/graph_minimizer.rst.txt b/doc/html/_sources/core/graph_minimizer.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..918975dd4ddbac5553c429217dd414f3652a4551 --- /dev/null +++ b/doc/html/_sources/core/graph_minimizer.rst.txt @@ -0,0 +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. diff --git a/doc/html/_sources/core/helper.rst.txt b/doc/html/_sources/core/helper.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..53d6c01687eb2a557794d1e24b138f0587ce679c --- /dev/null +++ b/doc/html/_sources/core/helper.rst.txt @@ -0,0 +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 diff --git a/doc/html/_sources/core/index.rst.txt b/doc/html/_sources/core/index.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..03437d9ff39c961a37021953a60164f7a9b065e7 --- /dev/null +++ b/doc/html/_sources/core/index.rst.txt @@ -0,0 +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 diff --git a/doc/html/_sources/core/pm3argparse.rst.txt b/doc/html/_sources/core/pm3argparse.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..1269e837c8208c1e360f0327d56a1f8c27109090 --- /dev/null +++ b/doc/html/_sources/core/pm3argparse.rst.txt @@ -0,0 +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 diff --git a/doc/html/_sources/core/runtime_profiling.rst.txt b/doc/html/_sources/core/runtime_profiling.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..02146a6a5867eb7f2c724ca74b3606c879043c39 --- /dev/null +++ b/doc/html/_sources/core/runtime_profiling.rst.txt @@ -0,0 +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. diff --git a/doc/html/_sources/core/setcompoundschemlib.rst.txt b/doc/html/_sources/core/setcompoundschemlib.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..b8c23815e8ed639f9926251e2c86dace3e55cf6a --- /dev/null +++ b/doc/html/_sources/core/setcompoundschemlib.rst.txt @@ -0,0 +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 diff --git a/doc/html/_sources/dev_setup.rst.txt b/doc/html/_sources/dev_setup.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..942fe65435f39956030e2b33d72670bc706cf3f9 --- /dev/null +++ b/doc/html/_sources/dev_setup.rst.txt @@ -0,0 +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 diff --git a/doc/html/_sources/developers.rst.txt b/doc/html/_sources/developers.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..de9daf7d66b4c15ed137e913719e833540cd0934 --- /dev/null +++ b/doc/html/_sources/developers.rst.txt @@ -0,0 +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 diff --git a/doc/html/_sources/gettingstarted.rst.txt b/doc/html/_sources/gettingstarted.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..677457ad7044f9d87d022e3ffd1accb5bfee8ade --- /dev/null +++ b/doc/html/_sources/gettingstarted.rst.txt @@ -0,0 +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. diff --git a/doc/html/_sources/index.rst.txt b/doc/html/_sources/index.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..bd8288a5112bed6b768136df1fde496f4e047f47 --- /dev/null +++ b/doc/html/_sources/index.rst.txt @@ -0,0 +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> diff --git a/doc/html/_sources/license.rst.txt b/doc/html/_sources/license.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..0a5f2dfb9cabe325d4af13c4a161652e262e2477 --- /dev/null +++ b/doc/html/_sources/license.rst.txt @@ -0,0 +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 diff --git a/doc/html/_sources/loop/all_atom.rst.txt b/doc/html/_sources/loop/all_atom.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..1717ce0da7de51ec9fa62aa3f3a226a21edcdf4d --- /dev/null +++ b/doc/html/_sources/loop/all_atom.rst.txt @@ -0,0 +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) diff --git a/doc/html/_sources/loop/backbone.txt b/doc/html/_sources/loop/backbone.rst.txt similarity index 97% rename from doc/html/_sources/loop/backbone.txt rename to doc/html/_sources/loop/backbone.rst.txt index e5e2d9964cfb6cd7cce133bd1cd5869c3bd19d19..989dbc075e087eeea1ceb9ee055fd3012ad11af6 100644 --- a/doc/html/_sources/loop/backbone.txt +++ b/doc/html/_sources/loop/backbone.rst.txt @@ -1,552 +1,552 @@ -.. Copyright (c) 2013-2018, 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.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..6758e74bf902a4c591a0a173ef950053ef05b929 --- /dev/null +++ b/doc/html/_sources/loop/index.rst.txt @@ -0,0 +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 diff --git a/doc/html/_sources/loop/load_loop_objects.rst.txt b/doc/html/_sources/loop/load_loop_objects.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..55f5ba4efb5fe2b3443cba9add0383ebf54fd945 --- /dev/null +++ b/doc/html/_sources/loop/load_loop_objects.rst.txt @@ -0,0 +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` + \ 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.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..ca75edfb85aa2c25bd66ed82c9e43a0e32ba154b --- /dev/null +++ b/doc/html/_sources/loop/mm_system_creation.rst.txt @@ -0,0 +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` + diff --git a/doc/html/_sources/loop/structure_db.txt b/doc/html/_sources/loop/structure_db.rst.txt similarity index 97% rename from doc/html/_sources/loop/structure_db.txt rename to doc/html/_sources/loop/structure_db.rst.txt index 756afe78cd46954025953926e787eb618c2f5f58..2ec4e098ba8ae341be674183b769b629d26a786c 100644 --- a/doc/html/_sources/loop/structure_db.txt +++ b/doc/html/_sources/loop/structure_db.rst.txt @@ -1,1045 +1,1045 @@ -.. Copyright (c) 2013-2018, 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 ProMod3 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.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..3ae7510c0adc80c968d2ef6fd5a52dbf5c71fa76 --- /dev/null +++ b/doc/html/_sources/loop/torsion_sampler.rst.txt @@ -0,0 +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` diff --git a/doc/html/_sources/modelling/algorithms.txt b/doc/html/_sources/modelling/algorithms.rst.txt similarity index 96% rename from doc/html/_sources/modelling/algorithms.txt rename to doc/html/_sources/modelling/algorithms.rst.txt index 7c775b0a1ba537244c4f7e22bdff9a38cb5ef582..541a31d48c1523d067a8c67df49ac7d701271f94 100644 --- a/doc/html/_sources/modelling/algorithms.txt +++ b/doc/html/_sources/modelling/algorithms.rst.txt @@ -1,328 +1,328 @@ -.. Copyright (c) 2013-2018, 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 --------------------------------------------------------------------------------- - -ProMod3 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, ProMod3 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.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..7d637350ef00a7e1df2d45727bbffa77c21503db --- /dev/null +++ b/doc/html/_sources/modelling/gap_handling.rst.txt @@ -0,0 +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 + 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.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..1896900433c5345ca9b30775f032f8c8022c0bca --- /dev/null +++ b/doc/html/_sources/modelling/index.rst.txt @@ -0,0 +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 + diff --git a/doc/html/_sources/modelling/loop_candidates.rst.txt b/doc/html/_sources/modelling/loop_candidates.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..dc55259f6f88c747a31cedce16839d9b1902a494 --- /dev/null +++ b/doc/html/_sources/modelling/loop_candidates.rst.txt @@ -0,0 +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 diff --git a/doc/html/_sources/modelling/loop_closing.rst.txt b/doc/html/_sources/modelling/loop_closing.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..5199272f7948695124008b96a868633899c5ccd9 --- /dev/null +++ b/doc/html/_sources/modelling/loop_closing.rst.txt @@ -0,0 +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` + + + diff --git a/doc/html/_sources/modelling/model_checking.rst.txt b/doc/html/_sources/modelling/model_checking.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..7af14d04fa2ffd0c9f9442937908e3afc2bb272a --- /dev/null +++ b/doc/html/_sources/modelling/model_checking.rst.txt @@ -0,0 +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 + +.. 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.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..ad1420fe003c6b5ceff1c4a00703028d5f16bc58 --- /dev/null +++ b/doc/html/_sources/modelling/monte_carlo.rst.txt @@ -0,0 +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 diff --git a/doc/html/_sources/modelling/pipeline.rst.txt b/doc/html/_sources/modelling/pipeline.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..3e5b83497356697c0dc5ed3dbd2a86f395102c34 --- /dev/null +++ b/doc/html/_sources/modelling/pipeline.rst.txt @@ -0,0 +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 diff --git a/doc/html/_sources/modelling/sidechain_reconstruction.rst.txt b/doc/html/_sources/modelling/sidechain_reconstruction.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..2997410a9f7b2f66d73f233940d32cb34f1a441f --- /dev/null +++ b/doc/html/_sources/modelling/sidechain_reconstruction.rst.txt @@ -0,0 +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` diff --git a/doc/html/_sources/portableIO.rst.txt b/doc/html/_sources/portableIO.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..ada636e54962bd9de85ce61c42b909deb637d029 --- /dev/null +++ b/doc/html/_sources/portableIO.rst.txt @@ -0,0 +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). diff --git a/doc/html/_sources/references.txt b/doc/html/_sources/references.rst.txt similarity index 96% rename from doc/html/_sources/references.txt rename to doc/html/_sources/references.rst.txt index 18a5a3b25ba4779ccd336b9bbfdae278f04735ab..99547e426db5e03a4828755eb99b6120ed8a18c6 100644 --- a/doc/html/_sources/references.txt +++ b/doc/html/_sources/references.rst.txt @@ -1,90 +1,90 @@ -.. Copyright (c) 2013-2018, 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.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..a4b86c4178b69fd4cbbad13cafb88ae11ddb5052 --- /dev/null +++ b/doc/html/_sources/scoring/all_atom_scorers.rst.txt @@ -0,0 +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` diff --git a/doc/html/_sources/scoring/backbone_score_env.rst.txt b/doc/html/_sources/scoring/backbone_score_env.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..7b5cf46a9905c7990e8603d34b9b1dd8a9f01a33 --- /dev/null +++ b/doc/html/_sources/scoring/backbone_score_env.rst.txt @@ -0,0 +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 + \ No newline at end of file diff --git a/doc/html/_sources/scoring/backbone_scorers.rst.txt b/doc/html/_sources/scoring/backbone_scorers.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..ec6de8d36adf5d8b4055da5ab803248e91490148 --- /dev/null +++ b/doc/html/_sources/scoring/backbone_scorers.rst.txt @@ -0,0 +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` diff --git a/doc/html/_sources/scoring/index.rst.txt b/doc/html/_sources/scoring/index.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..d05d49391869751dca1f7d6915849bec2bf26c9c --- /dev/null +++ b/doc/html/_sources/scoring/index.rst.txt @@ -0,0 +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 diff --git a/doc/html/_sources/scoring/other_scoring_functions.rst.txt b/doc/html/_sources/scoring/other_scoring_functions.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..25716e1c798b530c0fb8e8a558613700f98b8496 --- /dev/null +++ b/doc/html/_sources/scoring/other_scoring_functions.rst.txt @@ -0,0 +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` + + + diff --git a/doc/html/_sources/sidechain/disulfid.rst.txt b/doc/html/_sources/sidechain/disulfid.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..e815df4f17911f74ad42fa1a5a367afd3039a5c2 --- /dev/null +++ b/doc/html/_sources/sidechain/disulfid.rst.txt @@ -0,0 +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. diff --git a/doc/html/_sources/sidechain/frame.txt b/doc/html/_sources/sidechain/frame.rst.txt similarity index 94% rename from doc/html/_sources/sidechain/frame.txt rename to doc/html/_sources/sidechain/frame.rst.txt index 94a3150d0361fa6fe2b468b35752f0f19d57cebb..7e0942f2bdd9508ca6d9225e7e9e1b14f58c5be0 100644 --- a/doc/html/_sources/sidechain/frame.txt +++ b/doc/html/_sources/sidechain/frame.rst.txt @@ -1,68 +1,68 @@ -.. Copyright (c) 2013-2018, 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.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..249724b6d2a6edd2d834dc406d9ade930f7b639a --- /dev/null +++ b/doc/html/_sources/sidechain/graph.rst.txt @@ -0,0 +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` + + diff --git a/doc/html/_sources/sidechain/index.txt b/doc/html/_sources/sidechain/index.rst.txt similarity index 89% rename from doc/html/_sources/sidechain/index.txt rename to doc/html/_sources/sidechain/index.rst.txt index 192257b499d3826c3ed5891cadb39ede1f7a7291..8ff7c3006fe28f0f176fb835df4c7d0333440ffa 100644 --- a/doc/html/_sources/sidechain/index.txt +++ b/doc/html/_sources/sidechain/index.rst.txt @@ -1,54 +1,54 @@ -.. Copyright (c) 2013-2018, 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 ProMod3 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.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..f76d11ed8a80fbd990de8dbba2469c73d746b170 --- /dev/null +++ b/doc/html/_sources/sidechain/loading.rst.txt @@ -0,0 +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` diff --git a/doc/html/_sources/sidechain/rotamer.txt b/doc/html/_sources/sidechain/rotamer.rst.txt similarity index 96% rename from doc/html/_sources/sidechain/rotamer.txt rename to doc/html/_sources/sidechain/rotamer.rst.txt index 56b95301448e5a955ef38ee0105c9d60b9de291f..ddad795d41085768c713bbfabd3000580adb867e 100644 --- a/doc/html/_sources/sidechain/rotamer.txt +++ b/doc/html/_sources/sidechain/rotamer.rst.txt @@ -1,861 +1,861 @@ -.. Copyright (c) 2013-2018, 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, -ProMod3 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 ProMod3, 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.txt b/doc/html/_sources/sidechain/rotamer_constructor.rst.txt similarity index 97% rename from doc/html/_sources/sidechain/rotamer_constructor.txt rename to doc/html/_sources/sidechain/rotamer_constructor.rst.txt index c8cca8deb12f3b56c889c32e9c9bcc954d38599f..734e9c78f86bb6ee760eb896c187780319336f41 100644 --- a/doc/html/_sources/sidechain/rotamer_constructor.txt +++ b/doc/html/_sources/sidechain/rotamer_constructor.rst.txt @@ -1,489 +1,489 @@ -.. Copyright (c) 2013-2018, 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 ProMod3. - - -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.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..847d1e78e13ef164449ef35d8bdccc84c698ba91 --- /dev/null +++ b/doc/html/_sources/sidechain/rotamer_lib.rst.txt @@ -0,0 +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. + + diff --git a/doc/html/_sources/sidechain/subrotamer_optimizer.rst.txt b/doc/html/_sources/sidechain/subrotamer_optimizer.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..d2bdf91b30638ecfc632cb541fb8deec0d739219 --- /dev/null +++ b/doc/html/_sources/sidechain/subrotamer_optimizer.rst.txt @@ -0,0 +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` diff --git a/doc/html/_sources/user_contributions.rst.txt b/doc/html/_sources/user_contributions.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..7cbdf6afa17d13c03780cb2781dca4f9b7377330 --- /dev/null +++ b/doc/html/_sources/user_contributions.rst.txt @@ -0,0 +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`). diff --git a/doc/html/_sources/users.rst.txt b/doc/html/_sources/users.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..7a0c400c902a776d8ce0446f022f6fe25406afcf --- /dev/null +++ b/doc/html/_sources/users.rst.txt @@ -0,0 +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 diff --git a/doc/html/_static/documentation_options.js b/doc/html/_static/documentation_options.js new file mode 100644 index 0000000000000000000000000000000000000000..bac11efa4e9888d39efac7d7b0beeae3a7368e1b --- /dev/null +++ b/doc/html/_static/documentation_options.js @@ -0,0 +1,296 @@ +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/jquery-3.2.1.js b/doc/html/_static/jquery-3.2.1.js new file mode 100644 index 0000000000000000000000000000000000000000..d2d8ca4790e52b0537f3cbb7dcd766099b789583 --- /dev/null +++ b/doc/html/_static/jquery-3.2.1.js @@ -0,0 +1,10253 @@ +/*! + * jQuery JavaScript Library v3.2.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2017-03-20T18:59Z + */ +( function( global, factory ) { + + "use strict"; + + 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`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// 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 = []; + +var document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +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", + + // 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 + // 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, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // 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 ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = 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 ) ) { + target = {}; + } + + // 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 ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && Array.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type( obj ) === "function"; + }, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + + // 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 ) ); + }, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // 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 ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + 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" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + // 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; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // 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 ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // 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 ) { + 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, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + 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/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-08-08 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + 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 ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // 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 + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // 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; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + 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 { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + 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 ) { + + 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 )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // 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" ) { + + // 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) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @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 + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === 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 + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + 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 ); + } + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // 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"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( el ) { + el.appendChild( document.createComment("") ); + return !el.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-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; + }); + + // ID filter and find + if ( support.getById ) { + 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 { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + 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" ) { + 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 + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // 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 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( el ) { + // 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>"; + + // 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 ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.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 ) { + 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>"; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement("input"); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.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 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( el ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!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) ) { + return -1; + } + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === document ? -1 : + b === document ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + !compilerCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return (sel + "").replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + 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") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + 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 === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // 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 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ 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 ] = {}); + + // 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; + } + + // 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; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + 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(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + 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 ]) && + 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; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !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++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context === document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // 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) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `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. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + 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) + if ( match.length === 1 ) { + + // Reduce context if the leading compound 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 ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +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 ) { + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement("fieldset") ) & 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") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// 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" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +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 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 = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + 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 ); + } + + // 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; + } ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( 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; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + 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; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // 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-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + 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 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + 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 ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + 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 ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + 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 ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( 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 ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +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 ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // 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, + + // 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; + } + } + } + + // 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 ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // 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 ) { + jQuery.each( args, function( _, arg ) { + if ( jQuery.isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + 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--; + } + } + } ); + 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; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + 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; + } + }; + + return self; +}; + + +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( { + + 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" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + 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 */ ) { + var fns = arguments; + + 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 returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + 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(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 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 ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // 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 ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // 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 ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + 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 ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +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 ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// 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 { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// 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; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + 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 < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + 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 ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // 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 + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // 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 { + + // 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 ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // 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 ); + } + + // 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 ); + + // 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 ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // 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 ); + + // 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 ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // 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 ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// 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 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // 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 ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // 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 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( 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; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( 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 ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return 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 ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + 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 ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || 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"; + }; + +var 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; +}; + + + + +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" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + do { + + // 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"; + + // Adjust and apply + initialInUnit = initialInUnit / scale; + jQuery.style( elem, prop, initialInUnit + unit ); + + // 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 + ); + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // 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; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + 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 = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + 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 ) ) { + events = elemData.events = {}; + } + 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; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + 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 ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + 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 ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + 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 ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // 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 ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle 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 ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + 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.rnamespace || event.rnamespace.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, + 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 && + + // 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 ) { + + // 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 = {}; + 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 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: jQuery.isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + 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; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + 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" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + 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; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// 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 +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 && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// 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( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/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 ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + 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 ) { + + // ( 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 ); + } ); + } +} ); + + +var + + /* eslint-disable max-len */ + + // 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, + + /* eslint-enable */ + + // 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, + + // checked="checked" or checked + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + rscriptTypeMasked = /^true\/(.*)/, + rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; + +// 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" ) ) { + + return jQuery( ">tbody", elem )[ 0 ] || elem; + } + + return elem; +} + +// 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 ); + + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// 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; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + 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 collection.each( function( index ) { + var self = collection.eq( index ); + if ( isFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // 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; + + // 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 ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ 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 || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src ) { + + // 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 ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html.replace( rxhtmlTag, "<$1></$2>" ); + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://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 ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + 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; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, 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 ) { + 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 ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + 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 + 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 ) { + + // 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; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + 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 ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = divStyle.marginLeft === "2px"; + boxSizingReliableVal = divStyle.width === "4px"; + + // 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 pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // 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"; + + container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + + "padding:0;margin-top:1px;position:absolute"; + container.appendChild( div ); + + jQuery.extend( support, { + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelMarginRight: function() { + computeStyleTests(); + return pixelMarginRightVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, 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 ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var + + // 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 = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in emptyStyle ) { + return name; + } + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// 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; + } + return ret; +} + +function setPositiveNumber( elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.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" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i, + val = 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; + } + + for ( ; i < 4; i += 2 ) { + + // 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 + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + + // 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 + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with computed style + var valueIsBorderBox, + styles = getStyles( elem ), + val = curCSS( elem, name, styles ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test( val ) ) { + return val; + } + + // 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 ] ); + + // 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 ) ]; + } + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + + // Use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +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; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + "float": "cssFloat" + }, + + // 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; + } + + // 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 ); + } + + // Gets hook for the prefixed version, then 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 ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#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" ); + } + + // background-* props affect original clone's values + 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 ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } 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 ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = jQuery.camelCase( name ), + isCustomProp = rcustomProp.test( 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 ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // 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 + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +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 ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = extra && getStyles( elem ), + subtract = extra && augmentWidthOrHeight( + elem, + name, + extra, + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + styles + ); + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ name ] = value; + value = jQuery.css( elem, name ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( !rmargin.test( prefix ) ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + 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 ) { + 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. + 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. + 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 ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// 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 ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + 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 +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.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 }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // 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, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( 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 ( 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" ); + } + 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 ] ); + } + } + + // 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"; + } + } + } + + 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 ); + } + + /* 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 ] ); + } + } ); + } + + // 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; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // 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) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // 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( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // 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++ ) { + animation.tweens[ index ].run( 1 ); + } + + // 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 ); + if ( result ) { + if ( jQuery.isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + jQuery.proxy( result.stop, result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + 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; +} + +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 ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + 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; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +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() + + // 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" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + 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. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // 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 + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // 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 + delete data.finish; + } ); + } +} ); + +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" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + 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; + + fxNow = jQuery.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = 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/ +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 ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +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 ret, hooks, + nType = elem.nodeType; + + // 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 ); + } + + // 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 ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + 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; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + 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 ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +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(); + + if ( !isXML ) { + + // 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; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +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 ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // 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 ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + 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/ + // 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; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// 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 +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; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // 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" ) || ""; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnothtmlwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + 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 ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + 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 ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + 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 ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // 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 + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +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 ); + } + } +} ); + + +jQuery.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( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; +} ); + +jQuery.fn.extend( { + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +} ); + + + + +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 ) { + + // 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.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ); + + 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; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = jQuery.now(); + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + 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 ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +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 ) { + + // 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, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( jQuery.isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +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(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + 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: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + 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" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + 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, + + // 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, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + 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 + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // 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 + "//" ); + + // 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 ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + 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; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + 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; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // 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, "" ); + + // 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; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // 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, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // 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.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + 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" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + 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 + 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( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + + +jQuery._evalUrl = function( url ) { + 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( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( jQuery.isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } 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 ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // 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 + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // 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 ) { + xhr.setRequestHeader( i, headers[ 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( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } 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() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = callback( "error" ); + + // 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(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// 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( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + 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 ); + } + } + ); + + // Use native DOM manipulation to avoid our domManip AJAX trickery + document.head.appendChild( script[ 0 ] ); + }, + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +var oldCallbacks = [], + rjsonp = /(=)\?(?=&|$)|\?\?/; + +// Default jsonp settings +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 ) { + + 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" + ); + + // Handle iff the expected data type is "jsonp" or we have a parameter to set + if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { + + // Get callback name, remembering preexisting value associated with it + callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ? + s.jsonpCallback() : + s.jsonpCallback; + + // Insert callback into url or form data + if ( jsonProp ) { + s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); + } else if ( s.jsonp !== false ) { + s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; + } + + // Use data converter to retrieve json after script execution + s.converters[ "script json" ] = function() { + if ( !responseContainer ) { + jQuery.error( callbackName + " was not called" ); + } + return responseContainer[ 0 ]; + }; + + // Force json dataType + s.dataTypes[ 0 ] = "json"; + + // Install callback + overwritten = window[ callbackName ]; + window[ callbackName ] = function() { + responseContainer = arguments; + }; + + // 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; + } + + // Save back as free + if ( s[ callbackName ] ) { + + // Make sure that re-using the options doesn't screw things around + s.jsonpCallback = originalSettings.jsonpCallback; + + // Save the callback name for future use + oldCallbacks.push( callbackName ); + } + + // Call if it was a function and we have a response + if ( responseContainer && jQuery.isFunction( overwritten ) ) { + overwritten( responseContainer[ 0 ] ); + } + + 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 +// keepScripts (optional): If true, will include scripts passed in the html string +jQuery.parseHTML = function( data, context, keepScripts ) { + if ( typeof data !== "string" ) { + return []; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + + 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 && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[ 1 ] ) ]; + } + + parsed = buildFragment( [ data ], context, scripts ); + + if ( scripts && scripts.length ) { + jQuery( scripts ).remove(); + } + + return jQuery.merge( [], parsed.childNodes ); +}; + + +/** + * Load a url into a page + */ +jQuery.fn.load = function( url, params, callback ) { + var selector, type, response, + self = this, + off = url.indexOf( " " ); + + if ( off > -1 ) { + selector = stripAndCollapse( url.slice( off ) ); + url = url.slice( 0, off ); + } + + // If it's a function + if ( jQuery.isFunction( params ) ) { + + // We assume that it's the callback + callback = params; + params = undefined; + + // Otherwise, build a param string + } else if ( params && typeof params === "object" ) { + type = "POST"; + } + + // If we have elements to modify, make the request + if ( self.length > 0 ) { + 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", + dataType: "html", + data: params + } ).done( function( responseText ) { + + // Save response for use in complete callback + response = arguments; + + self.html( selector ? + + // 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 ) : + + // 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 ] ); + } ); + } ); + } + + return this; +}; + + + + +// 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.pseudos.animated = function( elem ) { + return jQuery.grep( jQuery.timers, function( fn ) { + return elem === fn.elem; + } ).length; +}; + + + + +jQuery.offset = { + setOffset: function( elem, options, i ) { + var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, + position = jQuery.css( elem, "position" ), + curElem = jQuery( elem ), + props = {}; + + // Set position first, in-case top/left are set even on static elem + if ( position === "static" ) { + elem.style.position = "relative"; + } + + curOffset = curElem.offset(); + curCSSTop = jQuery.css( elem, "top" ); + curCSSLeft = jQuery.css( elem, "left" ); + calculatePosition = ( position === "absolute" || position === "fixed" ) && + ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1; + + // 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 ) ); + } + + if ( options.top != null ) { + props.top = ( options.top - curOffset.top ) + curTop; + } + if ( options.left != null ) { + props.left = ( options.left - curOffset.left ) + curLeft; + } + + if ( "using" in options ) { + options.using.call( elem, props ); + + } else { + curElem.css( props ); + } + } +}; + +jQuery.fn.extend( { + offset: function( options ) { + + // Preserve chaining for setter + if ( arguments.length ) { + return options === undefined ? + this : + this.each( function( i ) { + jQuery.offset.setOffset( this, options, i ); + } ); + } + + var doc, docElem, rect, win, + elem = this[ 0 ]; + + if ( !elem ) { + 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; + + return { + top: rect.top + win.pageYOffset - docElem.clientTop, + left: rect.left + win.pageXOffset - docElem.clientLeft + }; + }, + + position: function() { + if ( !this[ 0 ] ) { + return; + } + + var offsetParent, offset, + elem = this[ 0 ], + parentOffset = { top: 0, left: 0 }; + + // 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 + offset = elem.getBoundingClientRect(); + + } else { + + // Get *real* offsetParent + offsetParent = this.offsetParent(); + + // Get correct offsets + offset = this.offset(); + if ( !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 ) + }; + } + + // Subtract parent offsets and element margins + return { + 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; + + while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) { + offsetParent = offsetParent.offsetParent; + } + + return offsetParent || documentElement; + } ); + } +} ); + +// Create scrollLeft and scrollTop methods +jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { + var top = "pageYOffset" === 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; + } + + if ( val === undefined ) { + return win ? win[ prop ] : elem[ method ]; + } + + if ( win ) { + win.scrollTo( + !top ? val : win.pageXOffset, + top ? val : win.pageYOffset + ); + + } else { + elem[ method ] = val; + } + }, method, val, arguments.length ); + }; +} ); + +// 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 +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 + 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.fn[ funcName ] = function( margin, value ) { + var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), + extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + + return access( this, function( elem, type, value ) { + 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 ]; + } + + // 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 + return Math.max( + elem.body[ "scroll" + name ], doc[ "scroll" + name ], + elem.body[ "offset" + name ], doc[ "offset" + name ], + doc[ "client" + name ] + ); + } + + 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 ); + }; + } ); +} ); + + +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 ); + } +}; +jQuery.isArray = Array.isArray; +jQuery.parseJSON = JSON.parse; +jQuery.nodeName = nodeName; + + + + +// Register as a named AMD module, since jQuery can be concatenated with other +// files that may use define, but not via a proper concatenation script that +// understands anonymous AMD modules. A named AMD is safest and most robust +// way to register. Lowercase jquery is used because AMD module names are +// derived from file names, and jQuery is normally delivered in a lowercase +// file name. Do this after creating the global so that if an AMD module wants +// to call noConflict to hide this version of jQuery, it will work. + +// Note that for maximum portability, libraries that are not jQuery should +// declare themselves as anonymous modules, and avoid setting a global if an +// AMD loader is present. jQuery is a special case. For more information, see +// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon + +if ( typeof define === "function" && define.amd ) { + define( "jquery", [], function() { + return jQuery; + } ); +} + + + + +var + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$; + +jQuery.noConflict = function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; +}; + +// 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 ) { + window.jQuery = window.$ = jQuery; +} + + + + +return jQuery; +} ); diff --git a/doc/html/actions/index.html b/doc/html/actions/index.html index 69750957944772b6b4066158ccdeef61dd11cc4f..ed184c653b33ac5193797b4a9080f3280310114d 100644 --- a/doc/html/actions/index.html +++ b/doc/html/actions/index.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>ProMod3 Actions — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>ProMod3 Actions — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="Documentation For Users" href="../users.html" /> ->>>>>>> develop <link rel="next" title="Building ProMod3" href="../buildsystem.html" /> <link rel="prev" title="Getting Started" href="../gettingstarted.html" /> @@ -127,17 +103,10 @@ Example:</p> </div> </li> </ul> -<<<<<<< HEAD <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/io/io/#ost.io.LoadEntity" title="(in OpenStructure v1.10.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 ->>>>>>> develop 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 @@ -162,11 +131,7 @@ 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. -<<<<<<< HEAD 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/bindings/hhblits/#ost.bindings.hhblits.HHblits.A3MToProfile" title="(in OpenStructure v1.10.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.bindings.hhblits.HHblits.A3MToProfile()</span></code></a> if you have a ->>>>>>> develop file in a3m format at hand.</p> <ul class="simple"> <li>The profiles are mapped based on exact matches towards the gapless @@ -218,21 +183,12 @@ won’t be modelled.</p> </div> <p>This reads a structure stored in in.pdb, strips all sidechains, detects and models disulfid bonds and reconstructs all sidechains with the -<<<<<<< HEAD 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/io/io/#ost.io.LoadEntity" title="(in OpenStructure v1.10.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> ->>>>>>> develop <p>Several flags control the modelling behaviour:</p> <dl class="option"> <dt id="cmdoption-k"> @@ -358,6 +314,9 @@ supported by <a class="reference internal" href="../modelling/sidechain_reconstr Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/actions/index.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/actions/index_dev.html b/doc/html/actions/index_dev.html index 51aa0136c2567818f132cdcc57ee1ca48874285a..3da75334a8eb905913d22b739d3cc26764f432c2 100644 --- a/doc/html/actions/index_dev.html +++ b/doc/html/actions/index_dev.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>test_actions - Testing Actions — ProMod3 2.0.0 documentation</title> + <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> @@ -18,30 +17,6 @@ <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" /> -======= - - <title>test_actions - Testing Actions — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.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" /> ->>>>>>> develop <link rel="prev" title="Contributing" href="../contributing.html" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" /> @@ -211,13 +186,8 @@ 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> -<<<<<<< HEAD <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/base/testutils/#module-ost.testutils" title="(in OpenStructure v1.10.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/2.7/library/unittest.html#unittest.TestCase" title="(in Python v2.7)"><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 ->>>>>>> develop as a script:</p> <div class="highlight-default notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>13 14 @@ -446,6 +416,9 @@ file (also complains if a directory is found instead).</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/actions/index_dev.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/buildsystem.html b/doc/html/buildsystem.html index 0739d7010be02caaad2e2a469f3f5bd2ea861a3b..c558b9f49de0d324d1f326f43f796f88c134fe36 100644 --- a/doc/html/buildsystem.html +++ b/doc/html/buildsystem.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Building ProMod3 — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> -======= - - <title>Building ProMod3 — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: './', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="index.html" /> - <link rel="up" title="Documentation For Users" href="users.html" /> ->>>>>>> develop <link rel="next" title="ProMod3 and Containers" href="container/index.html" /> <link rel="prev" title="ProMod3 Actions" href="actions/index.html" /> @@ -63,38 +39,22 @@ <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 -<<<<<<< HEAD -1.10.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 notranslate"><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 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 to be compiled with Python 2.7.</p> -======= -1.11.0. A C++11 compatible compiler is required. 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 required.</p> ->>>>>>> develop <p>The currently preferred versions are:</p> <ul class="simple"> -<li><a class="reference external" href="https://www.OpenStructure.org">OST</a> 1.11.0</li> +<li><a class="reference external" href="https://www.OpenStructure.org">OST</a> 2.0.0</li> <li><a class="reference external" href="http://openmm.org">OpenMM</a> 7.1.1</li> -<<<<<<< HEAD <li><a class="reference external" href="https://cmake.org/">CMake</a> 3.12.1</li> <li><a class="reference external" href="https://www.python.org/">Python</a> 3.6.0</li> <li><a class="reference external" href="https://www.boost.org/">Boost</a> 1.68.0</li> <li><a class="reference external" href="http://eigen.tuxfamily.org/index.php?title=Main_Page">Eigen 3</a> 3.3.1</li> <li><a class="reference external" href="http://sphinx-doc.org/">Sphinx</a> 1.3.1</li> -======= -<li><a class="reference external" href="https://cmake.org/">CMake</a> 2.8.12</li> -<li><a class="reference external" href="https://www.python.org/">Python</a> 2.7.11</li> -<li><a class="reference external" href="https://www.boost.org/">Boost</a> 1.53.0</li> -<li><a class="reference external" href="http://eigen.tuxfamily.org/index.php?title=Main_Page">Eigen 3</a> 3.3.1</li> -<li><a class="reference external" href="http://sphinx-doc.org/">Sphinx</a> 1.4.1</li> ->>>>>>> develop </ul> </div> <div class="section" id="using-cmake"> @@ -271,6 +231,9 @@ safely delete the whole source folder.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="_sources/buildsystem.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/changelog.html b/doc/html/changelog.html index 0e61d869b775f14c9d2cfc20e0fe7d9b41298f4c..884961adc8141e93b58c605a8a6b2fdc0535b9c1 100644 --- a/doc/html/changelog.html +++ b/doc/html/changelog.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Changelog — ProMod3 2.0.0 documentation</title> + <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> @@ -17,28 +16,6 @@ <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> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> -======= - - <title>Changelog — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: './', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="index.html" /> ->>>>>>> develop <link rel="prev" title="References" href="references.html" /> <link rel="stylesheet" href="_static/custom.css" type="text/css" /> @@ -58,17 +35,21 @@ <div class="section" id="changelog"> <h1>Changelog<a class="headerlink" href="#changelog" title="Permalink to this headline">¶</a></h1> -<<<<<<< HEAD -<div class="section" id="release-2-x-x"> -<h2>Release 2.x.x<a class="headerlink" href="#release-2-x-x" title="Permalink to this headline">¶</a></h2> +<div class="section" id="release-3-0-0"> +<h2>Release 3.0.0<a class="headerlink" href="#release-3-0-0" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -======= +<li>First release supporting Python 3. Python 2 support has been dropped.</li> +<li>Updated versions of dependencies.</li> +<li>Reduced amount of warnings during compilation.</li> +<li>Improved and simplified use of Docker and Singularity containers.</li> +<li>Several minor bug fixes, improvements, and speed-ups.</li> +</ul> +</div> <div class="section" id="release-2-1-0"> <h2>Release 2.1.0<a class="headerlink" href="#release-2-1-0" title="Permalink to this headline">¶</a></h2> <ul class="simple"> <li>This is expected to be the last release supporting Python 2.</li> <li>This project now requires a C++11 compatible compiler.</li> ->>>>>>> develop <li>Introduced VINA scoring function in the sidechain module. A scoring function specific RotamerConstructor is provided that comes with extensive heuristics to parametrize arbitrary compounds.</li> @@ -183,7 +164,6 @@ selected loops, reconstruct hydrogens and minimize energy with MM</li> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<<<<<<< HEAD <h1 class="logo"><a href="index.html">ProMod3</a></h1> @@ -196,17 +176,6 @@ selected loops, reconstruct hydrogens and minimize energy with MM</li> <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-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> ->>>>>>> develop </ul> <ul class="current"> <li class="toctree-l1"><a class="reference internal" href="developers.html">Developers</a></li> @@ -254,6 +223,9 @@ selected loops, reconstruct hydrogens and minimize energy with MM</li> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="_sources/changelog.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/cmake/index.html b/doc/html/cmake/index.html index 44d7189adf15d8d5a7c9f0a2380a1de38c5b3d35..31637ea7048b9e59d9f4e78a45e52189d9a380a9 100644 --- a/doc/html/cmake/index.html +++ b/doc/html/cmake/index.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>ProMod3’s Share Of CMake — ProMod3 2.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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>ProMod3‘s Share Of CMake — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="Documentation For Developers" href="../developers.html" /> ->>>>>>> develop <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" /> @@ -405,6 +381,9 @@ target has to be created <strong>before</strong> any action may be attached to i Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/cmake/index.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/container/docker.html b/doc/html/container/docker.html index a5688a90c466932c40bab5c5e58ef24b49614056..902e498e011cd6a2694bbe103c3b6307feebfb18 100644 --- a/doc/html/container/docker.html +++ b/doc/html/container/docker.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Docker — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Docker — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="ProMod3 and Containers" href="index.html" /> ->>>>>>> develop <link rel="next" title="Singularity" href="singularity.html" /> <link rel="prev" title="ProMod3 and Containers" href="index.html" /> @@ -60,10 +36,20 @@ <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> +<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> +</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>sudo docker build --tag <IMAGE_NAME> -f Dockerfile <PATH_TO_DOCKERFILE_DIR> +<div class="highlight-bash notranslate"><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> @@ -76,27 +62,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>sudo docker run --rm -v /home/<USER>:/home <IMAGE_NAME> script.py <span class="se">\</span> - pdbs/struct.pdb +<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> +pdbs/struct.pdb </pre></div> </div> <p>or with absolute paths:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo docker run --rm -v /home/<USER>:/home <IMAGE_NAME> /home/script.py <span class="se">\</span> - /home/pdbs/struct.pdb +<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> +/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>sudo 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 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 </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> -<<<<<<< HEAD <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/conop/compoundlib/#ost.conop.CompoundLib" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">CompoundLib</span></code></a> is generated. ->>>>>>> develop 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 @@ -111,22 +93,22 @@ mount it into the container where the original compound lib resides to override it.</p> <p>The simplest way to create a compound library is to use the <strong class="program">chemdict_tool</strong> available in the container. The program allows you -to import the chemical description of the compounds from a MMCIF dictionary, +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 <a class="reference external" href="http://www.wwpdb.org/ccd.html">wwPDB site</a>. 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>sudo 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 +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> +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>sudo docker run --rm -v /home/<USER>:/home <span class="se">\</span> - -v <COMPLIB_DIR_LOCALHOST>:<COMPLIB_DIR_CONTAINER> <span class="se">\</span> - <IMAGE_NAME> script.py pdbs/struct.pdb +<div class="highlight-bash notranslate"><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> </div> <p>with COMPLIB_DIR_LOCALHOST being the directory that contains the newly generated @@ -229,6 +211,9 @@ output when running a Python script with following code in the container:</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/container/docker.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/container/index.html b/doc/html/container/index.html index 62d6a65b04a57ea72ba591e7b4d4fefad755fec3..e3fb30aaba394e6feb6fbe34926086f03315884f 100644 --- a/doc/html/container/index.html +++ b/doc/html/container/index.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>ProMod3 and Containers — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>ProMod3 and Containers — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="Documentation For Users" href="../users.html" /> ->>>>>>> develop <link rel="next" title="Docker" href="docker.html" /> <link rel="prev" title="Building ProMod3" href="../buildsystem.html" /> @@ -58,8 +34,8 @@ <div class="body" role="main"> - <div class="section" id="promod3-and-containers"> -<h1>ProMod3 and Containers<a class="headerlink" href="#promod3-and-containers" title="Permalink to this headline">¶</a></h1> + <div class="section" id="project-and-containers"> +<h1>ProMod3 and Containers<a class="headerlink" href="#project-and-containers" title="Permalink to this headline">¶</a></h1> <p>ProMod3 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 @@ -154,6 +130,9 @@ some sugar on top.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/container/index.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/container/singularity.html b/doc/html/container/singularity.html index 20141888ef215867c430c62db3a8cdac3b49ebed..350fdff0995327d654d06a3e7786669061c5742f 100644 --- a/doc/html/container/singularity.html +++ b/doc/html/container/singularity.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Singularity — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Singularity — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="ProMod3 and Containers" href="index.html" /> ->>>>>>> develop <link rel="next" title="modelling - Protein Modelling" href="../modelling/index.html" /> <link rel="prev" title="Docker" href="docker.html" /> @@ -62,29 +38,8 @@ <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 Docker image.</p> -<<<<<<< HEAD <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="section" id="build-singularity-image"> -<h2>Build Singularity Image<a class="headerlink" href="#build-singularity-image" title="Permalink to this headline">¶</a></h2> -<p>If you built the Docker image locally you can use it as a starting point. For -this we have to fire up a local Docker registry and pull from there. Let’s -assume you built the Docker image with tag promod.</p> -<p>Fire the local Registry and push the promod image to it:</p> -<div class="highlight-bash"><div class="highlight"><pre><span></span>sudo docker run -d -p 5000:5000 --restart<span class="o">=</span>always --name registry registry:2 -sudo docker tag promod localhost:5000/promod -sudo docker push localhost:5000/promod -</pre></div> -</div> -<p>If port 5000 is already taken on your machine, use a different <code class="docutils literal"><span class="pre"><PORT></span></code> by -using the flag <code class="docutils literal"><span class="pre">-p</span> <span class="pre"><PORT>:5000</span></code> and <code class="docutils literal"><span class="pre">localhost:<PORT></span></code> in these commands. -Make sure, that on top of your Singularity recipe you have something like:</p> -<div class="highlight-bash"><div class="highlight"><pre><span></span>BootStrap: docker -Registry: http://localhost:5000 -Namespace: -From: promod:latest ->>>>>>> develop </pre></div> </div> <div class="section" id="available-apps"> @@ -103,36 +58,15 @@ From: promod:latest </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 <span class="nb">help</span> --app <APP NAME> <PATH TO PROMOD IMAGE> +<div class="highlight-bash notranslate"><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 <span class="nb">help</span> --app PM promod.img +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>singularity run-help --app PM promod.img </pre></div> </div> -<<<<<<< HEAD <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> -======= -<p>The jupyter notebook is setup as an app in the container. -To get help on how to run it:</p> -<div class="highlight-bash"><div class="highlight"><pre><span></span>singularity <span class="nb">help</span> --app Notebook <IMAGE> -</pre></div> -</div> -<p>Within the notebook you can test OST, ProMod3 and nglview as follows:</p> -<div class="highlight-python"><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="kn">import</span> <span class="nn">nglview</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> -<span class="n">bb_list</span> <span class="o">=</span> <span class="n">loop</span><span class="o">.</span><span class="n">BackboneList</span><span class="p">(</span><span class="n">sequence</span><span class="p">)</span> -<span class="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> - -<span class="c1"># display stored file</span> -<span class="n">view</span> <span class="o">=</span> <span class="n">nglview</span><span class="o">.</span><span class="n">show_file</span><span class="p">(</span><span class="s2">"test.pdb"</span><span class="p">)</span> -<span class="n">view</span> ->>>>>>> develop </pre></div> </div> </div> @@ -146,12 +80,13 @@ 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> - compounds.chemlib +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 -B <COMPLIB_DIR_LOCALHOST>:<COMPLIB_DIR_CONTAINER> --app PM <span class="se">\</span> - <IMAGE> my_script.py +<div class="highlight-bash notranslate"><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, @@ -247,6 +182,9 @@ in the Docker documentation: <a class="reference internal" href="docker.html#doc Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/container/singularity.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/contributing.html b/doc/html/contributing.html index 4872a17bbcae0638556788550d43e260d18d86a5..3a7b0fc95a68d2a1682f37ea2f1e1133054042c5 100644 --- a/doc/html/contributing.html +++ b/doc/html/contributing.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Contributing — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> -======= - - <title>Contributing — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: './', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="index.html" /> - <link rel="up" title="Documentation For Developers" href="developers.html" /> ->>>>>>> develop <link rel="next" title="test_actions - Testing Actions" href="actions/index_dev.html" /> <link rel="prev" title="ProMod3 Setup" href="dev_setup.html" /> @@ -487,7 +463,7 @@ available for a given residue</li> <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/python2.7/site-packages</span></code> folders of the <code class="file docutils literal notranslate"><span class="pre">stage</span></code> folders of +<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 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> @@ -604,7 +580,7 @@ module, for example</p> <a class="reference external" href="https://docs.python.org/3.6/library/">standard library</a></li> </ul> <p>Modules from the Python standard library are covered by the Python -<a class="reference external" href="https://www.python.org/download/releases/2.7.5/license">license</a> and +<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 @@ -692,6 +668,9 @@ contributions to web pages using ProMod3.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="_sources/contributing.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/core/geometry.html b/doc/html/core/geometry.html index 9be32bac6e0da09a49268fbcead10a6892bee54a..549a54395d65cd0183ac781d6fa05707a81d0722 100644 --- a/doc/html/core/geometry.html +++ b/doc/html/core/geometry.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Geometry functions — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Geometry functions — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="core - ProMod3 Core Functionality" href="index.html" /> ->>>>>>> develop <link rel="next" title="Runtime profiling" href="runtime_profiling.html" /> <link rel="prev" title="helper - Shared Functionality For the Everything" href="helper.html" /> @@ -70,26 +46,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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Gromacs rule</li> -<li><strong>number</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Desired number of positions (max. 3)</li> -<li><strong>anchors</strong> (<code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://www.openstructure.org/docs/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Anchor positions (max. 4)</li> ->>>>>>> develop </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> -<<<<<<< HEAD <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"><code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://www.openstructure.org/docs/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a></p> ->>>>>>> develop </td> </tr> </tbody> @@ -105,26 +71,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"> -<<<<<<< HEAD <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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Position of C-alpha atom</li> ->>>>>>> develop </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> -<<<<<<< HEAD <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"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code> of <a class="reference external" href="https://www.openstructure.org/docs/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a></p> ->>>>>>> develop </td> </tr> </tbody> @@ -141,32 +97,19 @@ dihedral (A-B-C-D).</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"> -<<<<<<< HEAD <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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Bond length (C-D)</li> -<li><strong>angle</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Angle (B-C-D)</li> -<li><strong>dihedral</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Dihedral (A-B-C-D)</li> ->>>>>>> develop </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> -<<<<<<< HEAD <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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a></p> ->>>>>>> develop </td> </tr> </tbody> @@ -183,26 +126,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"> -<<<<<<< HEAD <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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) – Position of C atom</li> ->>>>>>> develop </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> -<<<<<<< HEAD <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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a></p> ->>>>>>> develop </td> </tr> </tbody> @@ -219,26 +152,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"> -<<<<<<< HEAD <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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Angle (in radians in range [-pi,pi]) of rotation</li> ->>>>>>> develop </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> -<<<<<<< HEAD <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/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">Mat4</span></code></a></p> ->>>>>>> develop </td> </tr> </tbody> @@ -255,24 +178,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"> -<<<<<<< HEAD <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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Angle (in radians in range [-pi,pi]) of rotation</li> ->>>>>>> develop </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> -<<<<<<< HEAD <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/geom/mat/#ost.geom.Mat3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">Mat3</span></code></a></p> ->>>>>>> develop </td> </tr> </tbody> @@ -289,11 +203,7 @@ going through the origin.</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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> ->>>>>>> develop </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 atoms.</td> @@ -312,11 +222,7 @@ atoms.</td> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a></td> ->>>>>>> develop </tr> </tbody> </table> @@ -477,6 +383,9 @@ angles and one distance and is used in the fragment database for fast lookups.</ Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/core/geometry.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/core/graph_minimizer.html b/doc/html/core/graph_minimizer.html index 5564a1be439e2f42ffb8e39c473efb585e297376..534831a463a99b982f73147acb9448345ed2b028 100644 --- a/doc/html/core/graph_minimizer.html +++ b/doc/html/core/graph_minimizer.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Graph Minimizer — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Graph Minimizer — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="core - ProMod3 Core Functionality" href="index.html" /> ->>>>>>> develop <link rel="next" title="SetCompoundsChemlib()" href="setcompoundschemlib.html" /> <link rel="prev" title="Runtime profiling" href="runtime_profiling.html" /> @@ -433,6 +409,9 @@ The second element is the according energy value.</td> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/core/graph_minimizer.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/core/helper.html b/doc/html/core/helper.html index 3be5e7d4f1fee2e3c1ddd8dca38cbec871725e21..12d90c4637174f3596cb567dd1d6ce5e3ae32ce3 100644 --- a/doc/html/core/helper.html +++ b/doc/html/core/helper.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>helper - Shared Functionality For the Everything — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>helper - Shared Functionality For the Everything — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="core - ProMod3 Core Functionality" href="index.html" /> ->>>>>>> develop <link rel="next" title="Geometry functions" href="geometry.html" /> <link rel="prev" title="pm3argparse - Parsing Command Lines" href="pm3argparse.html" /> @@ -297,6 +273,9 @@ script will terminate if a gzip file is found.</li> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/core/helper.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/core/index.html b/doc/html/core/index.html index da3a666ab5ea2660b68c4eaf4d887950d0e8512c..bec69259020622738fa637cf6533ae1a28a0aed5 100644 --- a/doc/html/core/index.html +++ b/doc/html/core/index.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>core - ProMod3 Core Functionality — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>core - ProMod3 Core Functionality — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="Documentation For Users" href="../users.html" /> ->>>>>>> develop <link rel="next" title="pm3argparse - Parsing Command Lines" href="pm3argparse.html" /> <link rel="prev" title="Loading Precomputed Objects" href="../loop/load_loop_objects.html" /> @@ -59,7 +35,7 @@ <div class="body" role="main"> <div class="section" id="module-promod3.core"> -<span id="core-promod3-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 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> <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> @@ -165,6 +141,9 @@ modeling per se but cover standard programming issues.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/core/index.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/core/pm3argparse.html b/doc/html/core/pm3argparse.html index fdb4147a99598db35a6134cf2166aaa10684d192..5118d459773eb3fd238090e235d3d44bbfb1ac2c 100644 --- a/doc/html/core/pm3argparse.html +++ b/doc/html/core/pm3argparse.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>pm3argparse - Parsing Command Lines — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>pm3argparse - Parsing Command Lines — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="core - ProMod3 Core Functionality" href="index.html" /> ->>>>>>> develop <link rel="next" title="helper - Shared Functionality For the Everything" href="helper.html" /> <link rel="prev" title="core - ProMod3 Core Functionality" href="index.html" /> @@ -268,11 +244,7 @@ input is post processed and checked in <a class="reference internal" href="#prom by the <code class="xref py py-meth docutils literal notranslate"><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 -<<<<<<< HEAD <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/bindings/hhblits/#ost.bindings.hhblits.HHblits.A3MToProfile" title="(in OpenStructure v1.10.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 ->>>>>>> develop in a3m format at hand.</li> </ul> <p>Notes:</p> @@ -286,11 +258,7 @@ 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> <ul class="simple"> -<<<<<<< HEAD <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> - <code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://www.openstructure.org/docs/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a>, ->>>>>>> develop ordered to match the target sequences.</li> </ul> <p>Exit codes related to profile input:</p> @@ -483,6 +451,9 @@ and with the right constraints.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/core/pm3argparse.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/core/runtime_profiling.html b/doc/html/core/runtime_profiling.html index 12845f5ae91e3ab3dc92625e0ae0927e86fadec9..2e5f4455a450370701fddcca53adacac2b309cea 100644 --- a/doc/html/core/runtime_profiling.html +++ b/doc/html/core/runtime_profiling.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Runtime profiling — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Runtime profiling — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="core - ProMod3 Core Functionality" href="index.html" /> ->>>>>>> develop <link rel="next" title="Graph Minimizer" href="graph_minimizer.html" /> <link rel="prev" title="Geometry functions" href="geometry.html" /> @@ -261,6 +237,9 @@ will fail miserably if timers are currently running.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/core/runtime_profiling.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/core/setcompoundschemlib.html b/doc/html/core/setcompoundschemlib.html index 07370ed8f78b7c23dbde899f1485b79953a408c7..482366790a6d108add5ceb6b41e1c469c07178c3 100644 --- a/doc/html/core/setcompoundschemlib.html +++ b/doc/html/core/setcompoundschemlib.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>SetCompoundsChemlib() — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>SetCompoundsChemlib() — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="Documentation For Users" href="../users.html" /> ->>>>>>> develop <link rel="next" title="Contributing" href="../user_contributions.html" /> <link rel="prev" title="Graph Minimizer" href="graph_minimizer.html" /> @@ -166,6 +142,9 @@ enabled globally.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/core/setcompoundschemlib.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/dev_setup.html b/doc/html/dev_setup.html index f3e5901a825af869736d45d50eaf0e1fc1ae087c..678dce82e4ff599616619f7cf29a9977cfc6f487 100644 --- a/doc/html/dev_setup.html +++ b/doc/html/dev_setup.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>ProMod3 Setup — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> -======= - - <title>ProMod3 Setup — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: './', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="index.html" /> - <link rel="up" title="Documentation For Developers" href="developers.html" /> ->>>>>>> develop <link rel="next" title="Contributing" href="contributing.html" /> <link rel="prev" title="Documentation For Developers" href="developers.html" /> @@ -328,6 +304,9 @@ modules from there, use the binaries from <code class="file docutils literal not Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="_sources/dev_setup.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/developers.html b/doc/html/developers.html index 00a80535f4b3c8a18a1e36c4c9a3560e1fdc9d49..97269f313208a80681449537ae4643514c61a68c 100644 --- a/doc/html/developers.html +++ b/doc/html/developers.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Documentation For Developers — ProMod3 2.0.0 documentation</title> + <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> @@ -17,28 +16,6 @@ <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> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> -======= - - <title>Documentation For Developers — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: './', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="index.html" /> ->>>>>>> develop <link rel="next" title="ProMod3 Setup" href="dev_setup.html" /> <link rel="prev" title="Contributing" href="user_contributions.html" /> @@ -172,6 +149,9 @@ new features.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="_sources/developers.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/genindex.html b/doc/html/genindex.html index 3566dce3af5a1e8c77a9d875f86131996e197255..e55bf73c158b355213f82a752f774d6deca624a5 100644 --- a/doc/html/genindex.html +++ b/doc/html/genindex.html @@ -7,8 +7,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Index — ProMod3 2.0.0 documentation</title> + <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> @@ -18,28 +17,6 @@ <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> <link rel="index" title="Index" href="#" /> <link rel="search" title="Search" href="search.html" /> -======= - - <title>Index — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: './', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="index.html" /> ->>>>>>> develop <link rel="stylesheet" href="_static/custom.css" type="text/css" /> @@ -193,7 +170,6 @@ <h2 id="A">A</h2> <table style="width: 100%" class="indextable genindextable"><tr> -<<<<<<< HEAD <td style="width: 33%; vertical-align: top;"><ul> <li><a href="sidechain/rotamer.html#promod3.sidechain.AAToRotID">AAToRotID() (in module promod3.sidechain)</a> </li> @@ -208,33 +184,6 @@ </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> ->>>>>>> develop add_doc_dependency <ul> @@ -244,7 +193,6 @@ <li> add_doc_source -<<<<<<< HEAD <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> @@ -429,73 +377,6 @@ </ul></li> </ul></td> </tr></table> -======= - - <dt><a href="loop/structure_db.html#promod3.loop.Fragger.AddSeqSimParameters">AddSeqSimParameters() (promod3.loop.Fragger method)</a> - </dt> - - - <dt><a href="loop/structure_db.html#promod3.loop.Fragger.AddSequenceProfileParameters">AddSequenceProfileParameters() (promod3.loop.Fragger method)</a> - </dt> - - - <dt><a href="loop/structure_db.html#promod3.loop.Fragger.AddSSAgreeParameters">AddSSAgreeParameters() (promod3.loop.Fragger method)</a> - </dt> - - - <dt><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.AddStructure">AddStructure() (promod3.core.pm3argparse.PM3ArgumentParser method)</a> - </dt> - - - <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> - - - <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> - - </dl></td> - <td style="width: 33%" valign="top"><dl> - - <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> - - - <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> ->>>>>>> develop <h2 id="B">B</h2> <table style="width: 100%" class="indextable genindextable"><tr> @@ -2363,27 +2244,7 @@ -<<<<<<< HEAD - -======= - <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> ->>>>>>> develop @@ -2423,3413 +2284,8 @@ -<<<<<<< HEAD -======= - - <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> ->>>>>>> develop - - -<<<<<<< HEAD -======= - - <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> - </dl></td> - <td style="width: 33%" valign="top"><dl> - - <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> - - <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> - - </dl></td> - <td style="width: 33%" valign="top"><dl> - - <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> - - <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> - - - <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> - - </dl></td> - <td style="width: 33%" valign="top"><dl> - - <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> - </dl></td> - <td style="width: 33%" valign="top"><dl> - - <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> - - <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> - - <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> - - </dl></td> - <td style="width: 33%" valign="top"><dl> - - <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> - - - <dt><a href="modelling/loop_closing.html#promod3.modelling.KIC.KIC">KIC() (promod3.modelling.KIC method)</a> - </dt> - - </dl></td> - <td style="width: 33%" valign="top"><dl> - - <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> - - - <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> - - </dl></td> - <td style="width: 33%" valign="top"><dl> - - <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> - - - <dt><a href="modelling/pipeline.html#promod3.modelling.MergeMHandle">MergeMHandle() (in module promod3.modelling)</a> - </dt> - - </dl></td> - <td style="width: 33%" valign="top"><dl> - - <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> - - - <dt><a href="core/graph_minimizer.html#promod3.core.GraphMinimizer.NaiveSolve">NaiveSolve() (promod3.core.GraphMinimizer method)</a> - </dt> - - </dl></td> - <td style="width: 33%" valign="top"><dl> - - <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> - - </dl></td> - <td style="width: 33%" valign="top"><dl> - - <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.probability">probability (promod3.sidechain.RotamerLibEntry attribute)</a> - </dt> - - - <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> - - - <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> - - </dl></td> - <td style="width: 33%" valign="top"><dl> - - <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> - - <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> - - </dl></td> - <td style="width: 33%" valign="top"><dl> - - <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"> - <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> -<script type="text/javascript">$('#searchbox').show(0);</script> ->>>>>>> develop </div> </div> <div class="clearer"></div> diff --git a/doc/html/gettingstarted.html b/doc/html/gettingstarted.html index 9743c497ab00421c6d8bf7a1a2eabe0913d74f17..983f421491abfffc470e9a5b45d167eb32c4eeca 100644 --- a/doc/html/gettingstarted.html +++ b/doc/html/gettingstarted.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Getting Started — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> -======= - - <title>Getting Started — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: './', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="index.html" /> - <link rel="up" title="Documentation For Users" href="users.html" /> ->>>>>>> develop <link rel="next" title="ProMod3 Actions" href="actions/index.html" /> <link rel="prev" title="Documentation For Users" href="users.html" /> @@ -114,11 +90,7 @@ 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>Minimize energy of final model using molecular mechanics -<<<<<<< HEAD (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/mol/mm/molmm/#module-ost.mol.mm" title="(in OpenStructure v1.10.0)"><code class="xref py py-mod docutils literal"><span class="pre">ost.mol.mm</span></code></a> from OST)</li> ->>>>>>> develop </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 @@ -212,6 +184,9 @@ not set, 1 thread will be used by default.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="_sources/gettingstarted.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/index.html b/doc/html/index.html index 0588f724d39cfcbbb93d775a1c39e57f0a0a193c..b8eb80d2c2c6cd0dab6805eaa4dacea1cf15a5cc 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>ProMod3 — ProMod3 2.0.0 documentation</title> + <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> @@ -17,28 +16,6 @@ <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> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> -======= - - <title>ProMod3 — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: './', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="#" /> ->>>>>>> develop <link rel="next" title="Documentation For Users" href="users.html" /> <link rel="stylesheet" href="_static/custom.css" type="text/css" /> @@ -58,7 +35,7 @@ <div class="section" id="promod3"> <h1>ProMod3<a class="headerlink" href="#promod3" title="Permalink to this headline">¶</a></h1> -<p>ProMod3 is a modelling engine based on the OpenStructure <a class="reference internal" href="references.html#biasini2013" id="id1">[biasini2013]</a> +<p>ProMod3 is a modelling engine based on the <a class="reference external" href="https://openstructure.org">OpenStructure</a> <a class="reference internal" href="references.html#biasini2013" id="id1">[biasini2013]</a> 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 @@ -161,6 +138,9 @@ algorithms.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="_sources/index.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/license.html b/doc/html/license.html index 7a0930f24e588fc2795b82d5e94f68192024cca7..3706d3bc0534cbbdd79a35d97cd608dced80261c 100644 --- a/doc/html/license.html +++ b/doc/html/license.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>License — ProMod3 2.0.0 documentation</title> + <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> @@ -17,28 +16,6 @@ <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> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> -======= - - <title>License — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: './', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="index.html" /> ->>>>>>> develop <link rel="next" title="References" href="references.html" /> <link rel="prev" title="Using Binary Files In ProMod3" href="portableIO.html" /> @@ -340,6 +317,9 @@ doc/Copyright_cmake.py.txt Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="_sources/license.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/loop/all_atom.html b/doc/html/loop/all_atom.html index 7dbb189008c6ca00fdd18f5afa391446f0970a60..5092649eae89470936fcd8a8e3c1a1b578f38377 100644 --- a/doc/html/loop/all_atom.html +++ b/doc/html/loop/all_atom.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Handling All Atom Positions — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Handling All Atom Positions — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="loop - Loop Handling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Generate ost.mol.mm systems" href="mm_system_creation.html" /> <link rel="prev" title="Structural Data" href="structure_db.html" /> @@ -107,13 +83,8 @@ new loop is being added.</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.SequenceHandle</span></code></a> / -<code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/seq/base/seq/#ost.seq.SequenceList" title="(in OpenStructure v1.10.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 ->>>>>>> develop chain). Whenever setting structural data, consistency with this SEQRES is enforced.</td> </tr> </tbody> @@ -135,11 +106,7 @@ concatenated one after each other (indexing starts at 0)</li> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop in <em>env_structure</em> are expected to be in the same order as the SEQRES items provided in constructor.</td> </tr> @@ -166,19 +133,11 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResNum" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of chain the structural data belongs to.</li> ->>>>>>> develop </ul> </td> </tr> @@ -254,11 +213,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> -<<<<<<< HEAD <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/seq/base/seq/#ost.seq.SequenceList" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.SequenceList</span></code></a></td> ->>>>>>> develop </tr> </tbody> </table> @@ -391,13 +346,8 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index</li> -<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Residue providing atoms</li> ->>>>>>> develop </ul> </td> </tr> @@ -442,13 +392,8 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Set position at that index.</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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> ->>>>>>> develop </ul> </td> </tr> @@ -498,11 +443,7 @@ 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> -<<<<<<< HEAD <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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a></td> ->>>>>>> develop </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> @@ -606,11 +547,7 @@ 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> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a></td> ->>>>>>> develop </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> @@ -889,15 +826,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. -<<<<<<< HEAD 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> </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> -======= -Connectivity resolved with <a class="reference external" href="https://www.openstructure.org/docs/conop/connectivity/#ost.conop.HeuristicProcessor" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityHandle</span></code></a></td> ->>>>>>> develop </tr> </tbody> </table> @@ -916,15 +847,9 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index</li> -<li><strong>chain</strong> (<a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ChainHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResNum" title="(in OpenStructure v1.10.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> ->>>>>>> develop </ul> </td> </tr> @@ -1017,13 +942,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 -<<<<<<< HEAD (<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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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> ->>>>>>> develop <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> @@ -1035,11 +955,7 @@ hydrogen types (<a class="reference internal" href="#promod3.loop.AminoAcidHydro </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> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</td> ->>>>>>> develop </tr> </tbody> </table> @@ -1061,15 +977,9 @@ hydrogen types (<a class="reference internal" href="#promod3.loop.AminoAcidHydro </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Atom index (in [0, GetNumAtoms(aa)-1])</li> -<li><strong>atom_name</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Atom name</li> ->>>>>>> develop </ul> </td> </tr> @@ -1097,15 +1007,9 @@ hydrogen types (<a class="reference internal" href="#promod3.loop.AminoAcidHydro </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Atom index (in [0, GetNumHydrogens(aa)-1])</li> -<li><strong>atom_name</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Atom name</li> ->>>>>>> develop </ul> </td> </tr> @@ -1132,13 +1036,8 @@ atom.</p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Atom name</li> ->>>>>>> develop </ul> </td> </tr> @@ -1165,13 +1064,8 @@ and atom.</p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Atom name</li> ->>>>>>> develop </ul> </td> </tr> @@ -1194,11 +1088,7 @@ hydrogens of <em>aa</em>.</p> </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> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</td> ->>>>>>> develop </tr> </tbody> </table> @@ -1230,11 +1120,7 @@ hydrogens of <em>aa</em>.</p> </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> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</td> ->>>>>>> develop </tr> </tbody> </table> @@ -1267,11 +1153,7 @@ 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> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">AminoAcid</span></code></a></p> ->>>>>>> develop </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> @@ -1365,11 +1247,7 @@ 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> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</td> ->>>>>>> develop </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> @@ -1393,11 +1271,7 @@ 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> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">AminoAcid</span></code></a>) – Amino acid type</td> ->>>>>>> develop </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> @@ -1494,6 +1368,9 @@ when residue is N terminal.</td> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/loop/all_atom.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/loop/backbone.html b/doc/html/loop/backbone.html index e3c58cc1a5f48bb51f8ce6525c3cce925a7957e6..781f0ffd68e243f65acbe3e779d1c5485b1b4b63 100644 --- a/doc/html/loop/backbone.html +++ b/doc/html/loop/backbone.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Representing Loops — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Representing Loops — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="loop - Loop Handling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Sampling Dihedral Angles" href="torsion_sampler.html" /> <link rel="prev" title="loop - Loop Handling" href="index.html" /> @@ -63,13 +39,8 @@ <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 residues. They provide structural manipulations, they can be manipulated and -<<<<<<< HEAD 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> -======= -converted from, to, or inserted to a <a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.10.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="k">import</span> <span class="n">io</span> ->>>>>>> develop <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> @@ -180,19 +151,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"> -<<<<<<< HEAD <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 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-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">list</span></code>) – List of <a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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"><a class="reference external" href="https://docs.python.org/2.7/library/exceptions.html#exceptions.RuntimeError" title="(in Python v2.7)"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code></a> if a residue in <em>residues</em> ->>>>>>> develop 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> @@ -211,13 +174,8 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Sequence of created BackboneList</li> -<li><strong>residues</strong> (<code class="xref py py-class docutils literal"><span class="pre">list</span></code>) – List of <a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a> objects from ->>>>>>> develop which the backbone positions are extracted.</li> </ul> </td> @@ -241,11 +199,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> -<<<<<<< HEAD <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/img/base/img/#ost.img.ImageHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.img.ImageHandle</span></code></a></td> ->>>>>>> develop </tr> </tbody> </table> @@ -254,17 +208,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"> -<<<<<<< HEAD <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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – </li> -<li><strong>sampling</strong> (<a class="reference external" href="https://www.openstructure.org/docs/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – </li> -<li><strong>high_resolution</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – </li> ->>>>>>> develop </ul> </td> </tr> @@ -281,11 +228,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> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityHandle</span></code></a></td> ->>>>>>> develop </tr> </tbody> </table> @@ -302,13 +245,8 @@ 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"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ChainHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResNum" title="(in OpenStructure v1.10.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> ->>>>>>> develop </ul> </td> </tr> @@ -324,15 +262,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"> -<<<<<<< HEAD <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/img/base/img/#ost.img.ImageHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – </li> -<li><strong>high_resolution</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – </li> ->>>>>>> develop </ul> </td> </tr> @@ -349,11 +281,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"></td> </tr> -<<<<<<< HEAD <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/geom/composite/#ost.geom.AlignedCuboid" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.AlignedCuboid</span></code></a></td> ->>>>>>> develop </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> @@ -457,11 +385,7 @@ 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> -<<<<<<< HEAD <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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a></td> ->>>>>>> develop </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> @@ -485,13 +409,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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index.</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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 ->>>>>>> develop / oxygen atom to this.</li> </ul> </td> @@ -543,11 +462,7 @@ 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> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a></td> ->>>>>>> develop </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> @@ -563,13 +478,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 simple"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index.</li> -<li><strong>aa</strong> (<a class="reference external" href="https://www.openstructure.org/docs/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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> ->>>>>>> develop </ul> </td> </tr> @@ -594,7 +504,6 @@ 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"> -<<<<<<< HEAD <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> @@ -603,16 +512,6 @@ and set the amino acid type according to the given one letter code.</p> <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index.</li> -<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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> ->>>>>>> develop </ul> </td> </tr> @@ -681,7 +580,6 @@ 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"> -<<<<<<< HEAD <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> @@ -689,15 +587,6 @@ to the given one letter code.</p> <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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> ->>>>>>> develop </ul> </td> </tr> @@ -760,11 +649,7 @@ reconstructed if the residue handle is valid.</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop element of this backbone list)</td> </tr> </tbody> @@ -780,13 +665,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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index.</li> -<li><strong>transform</strong> (<a class="reference external" href="https://www.openstructure.org/docs/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a>) – The transformation</li> ->>>>>>> develop </ul> </td> </tr> @@ -804,15 +684,9 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Start index.</li> -<li><strong>to</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – End index (one past last residue to transform).</li> -<li><strong>transform</strong> (<a class="reference external" href="https://www.openstructure.org/docs/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a>) – The transformation</li> ->>>>>>> develop </ul> </td> </tr> @@ -828,11 +702,7 @@ element of this backbone list)</td> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a>) – The transformation</td> ->>>>>>> develop </tr> </tbody> </table> @@ -852,7 +722,6 @@ residue <em>other_index</em> of <em>other</em> backbone list considering the positions of the N, CA and C atoms.</p> </td> </tr> -<<<<<<< HEAD <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> </td> </tr> @@ -861,16 +730,6 @@ positions of the N, CA and C atoms.</p> <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> -======= -<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/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index.</li> -<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Residue index in <em>other</em> backbone list.</li> ->>>>>>> develop </ul> </td> </tr> @@ -888,11 +747,7 @@ 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> -<<<<<<< HEAD <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/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a></td> ->>>>>>> develop </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> @@ -1200,6 +1055,9 @@ backbone list.</td> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/loop/backbone.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/loop/index.html b/doc/html/loop/index.html index da2c34e4d987b29e4a4cc7569fcacf3f46231147..63370d5478e7abe9e288748ee9e72d168c4316d5 100644 --- a/doc/html/loop/index.html +++ b/doc/html/loop/index.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>loop - Loop Handling — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>loop - Loop Handling — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="Documentation For Users" href="../users.html" /> ->>>>>>> develop <link rel="next" title="Representing Loops" href="backbone.html" /> <link rel="prev" title="Other Scoring Functions" href="../scoring/other_scoring_functions.html" /> @@ -223,6 +199,9 @@ loops. The following example should give you an idea of what can be done:</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/loop/index.rst.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 25fbff4594a65a6dcc3c66cd6b7ebb93e099e267..ee23109893c737c3bf64d4e571bfcd188954096c 100644 --- a/doc/html/loop/load_loop_objects.html +++ b/doc/html/loop/load_loop_objects.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Loading Precomputed Objects — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Loading Precomputed Objects — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="loop - Loop Handling" href="index.html" /> ->>>>>>> develop <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" /> @@ -264,6 +240,9 @@ returned by <a class="reference internal" href="#promod3.loop.LoadStructureDB" t Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/loop/load_loop_objects.rst.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 9791f6df0f2d01dbbd23af592514b0a60e588a18..dceee02b650a9d1a12cfa4723b756a1adb3036df 100644 --- a/doc/html/loop/mm_system_creation.html +++ b/doc/html/loop/mm_system_creation.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Generate ost.mol.mm systems — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Generate ost.mol.mm systems — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="loop - Loop Handling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Loading Precomputed Objects" href="load_loop_objects.html" /> <link rel="prev" title="Handling All Atom Positions" href="all_atom.html" /> @@ -59,17 +35,10 @@ <div class="body" role="main"> <div class="section" id="generate-ost-mol-mm-systems"> -<<<<<<< HEAD <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/mol/mm/molmm/#module-ost.mol.mm" title="(in OpenStructure v1.10.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/mol/mm/molmm/#module-ost.mol.mm" title="(in OpenStructure v1.10.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> ->>>>>>> develop <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> @@ -312,11 +281,7 @@ acid types for <em>out_pos[res_indices[i]]</em> and <em>all_pos[res_indices[i]]< <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 MM simulations.</td> </tr> -<<<<<<< HEAD <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/mol/mm/simulation/#ost.mol.mm.Simulation" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.mm.Simulation</span></code></a></td> ->>>>>>> develop </tr> </tbody> </table> @@ -463,11 +428,7 @@ FF specific data for amino acids in a protein. We distinguish amino acid types <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> -<<<<<<< HEAD <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/mol/mm/simulation/#ost.mol.mm.Simulation" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.mm.Simulation</span></code></a> objects. Specifically, we can:</p> ->>>>>>> develop <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 @@ -580,11 +541,7 @@ 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> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a></td> ->>>>>>> develop </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> @@ -700,11 +657,7 @@ 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 -<<<<<<< HEAD <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/mol/mm/topology/#ost.mol.mm.Topology.SetFudgeLJ" title="(in OpenStructure v1.10.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.SetFudgeLJ()</span></code></a>)</td> ->>>>>>> develop </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> @@ -720,11 +673,7 @@ 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 -<<<<<<< HEAD <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/mol/mm/topology/#ost.mol.mm.Topology.SetFudgeQQ" title="(in OpenStructure v1.10.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.SetFudgeQQ()</span></code></a>)</td> ->>>>>>> develop </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> @@ -739,11 +688,7 @@ for details.</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/mol/mm/topology/#ost.mol.mm.Topology.SetMasses" title="(in OpenStructure v1.10.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.SetMasses()</span></code></a>)</p> ->>>>>>> develop </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> @@ -767,11 +712,7 @@ for details.</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/mol/mm/topology/#ost.mol.mm.Topology.SetCharges" title="(in OpenStructure v1.10.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.SetCharges()</span></code></a>)</p> ->>>>>>> develop </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> @@ -796,11 +737,7 @@ 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 -<<<<<<< HEAD (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/mol/mm/topology/#ost.mol.mm.Topology.SetSigmas" title="(in OpenStructure v1.10.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.SetSigmas()</span></code></a>)</p> ->>>>>>> develop </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> @@ -825,11 +762,7 @@ 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 -<<<<<<< HEAD (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/mol/mm/topology/#ost.mol.mm.Topology.SetEpsilons" title="(in OpenStructure v1.10.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.SetEpsilons()</span></code></a>)</p> ->>>>>>> develop </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> @@ -975,11 +908,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 -<<<<<<< HEAD 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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a>. Additionally, ->>>>>>> develop 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> @@ -995,13 +924,8 @@ 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 -<<<<<<< HEAD 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/mol/mm/topology/#ost.mol.mm.Topology" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.mm.Topology</span></code></a>. ->>>>>>> develop 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 residues, atoms of the first residue are in [<em>0, N1-1</em>] and atoms of the @@ -1111,11 +1035,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> -<<<<<<< HEAD <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/mol/mm/topology/#ost.mol.mm.Topology.AddHarmonicBond" title="(in OpenStructure v1.10.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.AddHarmonicBond()</span></code></a>)</p> ->>>>>>> develop <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> @@ -1177,11 +1097,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> -<<<<<<< HEAD <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/mol/mm/topology/#ost.mol.mm.Topology.AddHarmonicAngle" title="(in OpenStructure v1.10.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.AddHarmonicAngle()</span></code></a>)</p> ->>>>>>> develop <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> @@ -1258,11 +1174,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 -<<<<<<< HEAD (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/mol/mm/topology/#ost.mol.mm.Topology.AddUreyBradleyAngle" title="(in OpenStructure v1.10.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.AddUreyBradleyAngle()</span></code></a>)</p> ->>>>>>> develop <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> @@ -1367,13 +1279,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 -<<<<<<< HEAD <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/mol/mm/topology/#ost.mol.mm.Topology.AddPeriodicDihedral" title="(in OpenStructure v1.10.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/mol/mm/topology/#ost.mol.mm.Topology.AddPeriodicImproper" title="(in OpenStructure v1.10.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.AddPeriodicImproper()</span></code></a>)</p> ->>>>>>> develop <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> @@ -1477,11 +1384,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> -<<<<<<< HEAD <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/mol/mm/topology/#ost.mol.mm.Topology.AddHarmonicImproper" title="(in OpenStructure v1.10.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.AddHarmonicImproper()</span></code></a>)</p> ->>>>>>> develop <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> @@ -1571,11 +1474,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> -<<<<<<< HEAD <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/mol/mm/topology/#ost.mol.mm.Topology.AddLJPair" title="(in OpenStructure v1.10.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.mol.mm.Topology.AddLJPair()</span></code></a>)</p> ->>>>>>> develop <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> @@ -1721,6 +1620,9 @@ False, False)</em>.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/loop/mm_system_creation.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/loop/structure_db.html b/doc/html/loop/structure_db.html index 95b97d50249611786bac08a20f599a2b972c6297..08783a97cdbff8238ce60579153e31aadb710366 100644 --- a/doc/html/loop/structure_db.html +++ b/doc/html/loop/structure_db.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Structural Data — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Structural Data — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="loop - Loop Handling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Handling All Atom Positions" href="all_atom.html" /> <link rel="prev" title="Sampling Dihedral Angles" href="torsion_sampler.html" /> @@ -142,11 +118,7 @@ stuff to the structure db. (<a class="reference external" href="https://docs.pyt <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 -<<<<<<< HEAD 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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>)</p> ->>>>>>> develop </dd></dl> </dd></dl> @@ -288,11 +260,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> -<<<<<<< HEAD <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/seq/base/seq/#ost.seq.ProfileDB" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileDB</span></code></a> to gather profiles produced from jobs ->>>>>>> develop running in parallel</li> </ol> <dl class="class"> @@ -307,11 +275,7 @@ 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: If you enable AAFrequenciesStruct, the actual information is not automatically assigned. Only the according memory is allocated and set to zero, the actual -<<<<<<< HEAD information must be assigned manually (see example script again…).</p> -======= -information must be assigned manually (see example script again...).</p> ->>>>>>> develop <p>Minimal, All, Dihedrals, SolventAccessibilities, ResidueDepths, DSSP, AAFrequencies, AAFrequenciesStruct</p> </dd></dl> @@ -429,7 +393,6 @@ in the according <a class="reference internal" href="#promod3.loop.CoordInfo" ti <col 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"> -<<<<<<< HEAD <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> / @@ -437,15 +400,6 @@ in the according <a class="reference internal" href="#promod3.loop.CoordInfo" ti 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>id</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – identifier of the added structure (e.g. pdb id)</li> -<li><strong>chain_name</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – 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/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v1.10.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/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.10.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/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop <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 connected stretch of residues are all connected @@ -576,7 +530,6 @@ full entry at <em>coord_idx</em></p> </td> </tr> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<<<<<<< HEAD <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 @@ -585,25 +538,11 @@ 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 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>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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of entry from which to extract positions.</li> -<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – 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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop superposed onto.</li> </ul> </td> </tr> -<<<<<<< HEAD <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"><a class="reference external" href="https://docs.python.org/2.7/library/exceptions.html#exceptions.RuntimeError" title="(in Python v2.7)"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code></a> if the length of <em>sequence</em> does ->>>>>>> develop 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 @@ -627,7 +566,6 @@ 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> -<<<<<<< HEAD <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> </td> </tr> @@ -638,18 +576,6 @@ stretches of residues in the database.</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 fragment or coord_idx is -======= -<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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></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"><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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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"><a class="reference external" href="https://docs.python.org/2.7/library/exceptions.html#exceptions.RuntimeError" title="(in Python v2.7)"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code></a> if fragment or coord_idx is ->>>>>>> develop invalid. Fragment can be invalid when it does not fully fit into one of the connected stretches of residues in the database.</p> </td> @@ -670,7 +596,6 @@ 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> -<<<<<<< HEAD <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> </td> </tr> @@ -681,18 +606,6 @@ one of the connected stretches of residues in the database.</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 database does not contain dssp -======= -<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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></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"><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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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"><a class="reference external" href="https://docs.python.org/2.7/library/exceptions.html#exceptions.RuntimeError" title="(in Python v2.7)"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code></a> if database does not contain dssp ->>>>>>> develop 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> @@ -715,7 +628,6 @@ residues in the database.</p> or full entry at <em>coord_idx</em></p> </td> </tr> -<<<<<<< HEAD <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> </td> </tr> @@ -726,18 +638,6 @@ or full entry at <em>coord_idx</em></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 database does not contain -======= -<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><code class="xref py py-class docutils literal"><span class="pre">list</span></code> of pairs (<code class="xref py py-class docutils literal"><span class="pre">tuple</span></code>)</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"><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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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"><a class="reference external" href="https://docs.python.org/2.7/library/exceptions.html#exceptions.RuntimeError" title="(in Python v2.7)"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code></a> if database does not contain ->>>>>>> develop 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> @@ -760,7 +660,6 @@ connected stretches of residues in the database.</p> at <em>coord_idx</em></p> </td> </tr> -<<<<<<< HEAD <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> </td> </tr> @@ -772,19 +671,6 @@ depths</li> </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">Return type:</th><td class="field-body"><p class="first"><code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></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"><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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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"><a class="reference external" href="https://docs.python.org/2.7/library/exceptions.html#exceptions.RuntimeError" title="(in Python v2.7)"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code></a> if database does not contain ->>>>>>> develop 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> @@ -805,7 +691,6 @@ 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 -<<<<<<< HEAD <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 the database.</p> </td> @@ -817,28 +702,11 @@ the database.</p> <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 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 -======= -<a class="reference external" href="https://www.openstructure.org/docs/mol/alg/molalg/#ost.mol.alg.Accessibility" title="(in OpenStructure v1.10.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"><code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></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"><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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of entry from which to extract the solvent ->>>>>>> develop accessibilities</li> </ul> </td> </tr> -<<<<<<< HEAD <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"><a class="reference external" href="https://docs.python.org/2.7/library/exceptions.html#exceptions.RuntimeError" title="(in Python v2.7)"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code></a> if database does not contain ->>>>>>> develop 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> @@ -862,7 +730,6 @@ full entry at <em>coord_idx</em> with the BLOSUM62 probabilities as NULL model.</p> </td> </tr> -<<<<<<< HEAD <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> </td> </tr> @@ -874,19 +741,6 @@ profile</li> </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">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://www.openstructure.org/docs/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.10.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"><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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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"><a class="reference external" href="https://docs.python.org/2.7/library/exceptions.html#exceptions.RuntimeError" title="(in Python v2.7)"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code></a> if database does not contain ->>>>>>> develop 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> @@ -910,7 +764,6 @@ full entry at <em>coord_idx</em> with the BLOSUM62 probabilities as NULL model.</p> </td> </tr> -<<<<<<< HEAD <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> </td> </tr> @@ -922,19 +775,6 @@ profile</li> </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">Return type:</th><td class="field-body"><p class="first"><a class="reference external" href="https://www.openstructure.org/docs/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.10.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"><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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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"><a class="reference external" href="https://docs.python.org/2.7/library/exceptions.html#exceptions.RuntimeError" title="(in Python v2.7)"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code></a> if database does not contain ->>>>>>> develop 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> @@ -965,11 +805,7 @@ containing that data.</li> probabilities as NULL model.</p> </td> </tr> -<<<<<<< HEAD <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/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a></p> ->>>>>>> develop </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 @@ -991,15 +827,9 @@ 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"> -<<<<<<< HEAD <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/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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> ->>>>>>> develop </ul> </td> </tr> @@ -1300,17 +1130,10 @@ 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"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of residues of the fragment</li> -<li><strong>extra_bins</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Whether to extend the search to include fragments from ->>>>>>> develop <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> @@ -1531,13 +1354,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"> -<<<<<<< HEAD <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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – linear weight</li> -<li><strong>prof</strong> (<a class="reference external" href="https://www.openstructure.org/docs/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.10.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> ->>>>>>> develop </ul> </td> </tr> @@ -1554,13 +1372,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"> -<<<<<<< HEAD <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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – linear weight</li> -<li><strong>prof</strong> (<a class="reference external" href="https://www.openstructure.org/docs/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.10.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> ->>>>>>> develop </ul> </td> </tr> @@ -2046,6 +1859,9 @@ to <strong>to</strong>, not including <strong>to</strong> itself</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/loop/structure_db.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/loop/torsion_sampler.html b/doc/html/loop/torsion_sampler.html index 40a21e9c8cbf51f320b7d64ddf85da94c3cd0daf..d5798378f1acb589850ce3f91e9980bdddfac24c 100644 --- a/doc/html/loop/torsion_sampler.html +++ b/doc/html/loop/torsion_sampler.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Sampling Dihedral Angles — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Sampling Dihedral Angles — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="loop - Loop Handling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Structural Data" href="structure_db.html" /> <link rel="prev" title="Representing Loops" href="backbone.html" /> @@ -155,11 +131,7 @@ acids not matching any of the group definitions.</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v1.10.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> ->>>>>>> develop </tr> </tbody> </table> @@ -231,15 +203,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"> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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> ->>>>>>> develop </ul> </td> </tr> @@ -279,15 +245,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"> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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> ->>>>>>> develop </ul> </td> </tr> @@ -323,17 +283,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"> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – <em>psi</em> angle</li> ->>>>>>> develop </ul> </td> </tr> @@ -374,17 +327,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"> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – <em>phi</em> angle</li> ->>>>>>> develop </ul> </td> </tr> @@ -425,19 +371,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"> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – phi angle</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – psi angle</li> ->>>>>>> develop </ul> </td> </tr> @@ -479,19 +417,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"> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – phi angle</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – psi angle</li> ->>>>>>> develop </ul> </td> </tr> @@ -511,19 +441,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"> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – phi angle</li> -<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – psi angle</li> ->>>>>>> develop </ul> </td> </tr> @@ -695,6 +617,9 @@ standard amino acid</td> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/loop/torsion_sampler.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/algorithms.html b/doc/html/modelling/algorithms.html index dfdd0610bee8007919959bbcb1aa0934d0159d13..a9e06a856ac887ca2a0e4574cc21ec033a2dd9ac 100644 --- a/doc/html/modelling/algorithms.html +++ b/doc/html/modelling/algorithms.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Modelling Algorithms — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Modelling Algorithms — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="modelling - Protein Modelling" href="index.html" /> ->>>>>>> develop <link rel="next" title="sidechain - Sidechain Modelling" href="../sidechain/index.html" /> <link rel="prev" title="Sidechain Reconstruction" href="sidechain_reconstruction.html" /> @@ -109,15 +85,9 @@ of the solutions</li> <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 indices of the common subsets (rigid blocks) relative -<<<<<<< HEAD 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 <code class="xref py py-class docutils literal"><span class="pre">list</span></code> of -<a class="reference external" href="https://www.openstructure.org/docs/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a> defining the transformations to ->>>>>>> develop superpose the according positions in <strong>bb_list_one</strong> onto <strong>bb_list_two</strong></p> </td> @@ -135,11 +105,7 @@ 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"> -<<<<<<< HEAD <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/seq/base/seq/#ost.seq.AlignmentHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityView</span></code></a> ->>>>>>> develop 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 positions will be extracted</li> @@ -160,15 +126,9 @@ of the solutions</li> <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 column indices of the common subsets (rigid blocks) -<<<<<<< HEAD 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/seq/base/seq/#ost.seq.AlignmentHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.AlignmentHandle</span></code></a> -and the second element being a <code class="xref py py-class docutils literal"><span class="pre">list</span></code> of -<a class="reference external" href="https://www.openstructure.org/docs/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a> defining the transformations to ->>>>>>> develop superpose the according positions from the first sequence onto the second sequence.</p> </td> @@ -203,15 +163,9 @@ of the solutions</li> <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 indices of the common subsets (rigid blocks) relative -<<<<<<< HEAD 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 <code class="xref py py-class docutils literal"><span class="pre">list</span></code> of -<a class="reference external" href="https://www.openstructure.org/docs/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a> defining the transformations to ->>>>>>> develop superpose the according positions in <strong>pos_one</strong> onto <strong>pos_two</strong></p> </td> @@ -274,19 +228,11 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>/<a class="reference external" href="https://www.openstructure.org/docs/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.10.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/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Length (num. residues) of fragments to be extracted.</li> -<li><strong>fragments_per_position</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of fragments to be extracted at each ->>>>>>> develop 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 at a given position will have RMSD below <cite>rmsd_thresh</cite>.</li> @@ -375,11 +321,7 @@ want to generate</li> <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> -<<<<<<< HEAD <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/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop 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 increases the fragment search performance</li> @@ -426,11 +368,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 -<<<<<<< HEAD specific orthogonal vector basis. That’s 6 numbers in total.</p> -======= -specific orthogonal vector basis. That’s 6 numbers in total.</p> ->>>>>>> develop <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 @@ -466,11 +404,7 @@ 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> -<<<<<<< HEAD <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> ->>>>>>> develop <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> @@ -546,7 +480,6 @@ 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"> -<<<<<<< HEAD <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 @@ -557,28 +490,12 @@ 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>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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Descriptor of the query</li> -<li><strong>min_triangle_edge_length</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – 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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – 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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Bin size in A, relevant to generate hash map keys</li> -<li><strong>flags</strong> (<code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Flag in range [0,63] for every coordinate in <em>positions</em>. -They’re also added to the hash map keys (default: 0). ->>>>>>> develop 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> -<<<<<<< HEAD <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> (<code class="xref py py-class docutils literal"><span class="pre">list</span></code> 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> ->>>>>>> develop </ul> </td> </tr> @@ -592,11 +509,7 @@ only coordinates matter.</li> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – filename</td> ->>>>>>> develop </tr> </tbody> </table> @@ -610,11 +523,7 @@ only coordinates matter.</li> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – filename</td> ->>>>>>> develop </tr> </tbody> </table> @@ -628,11 +537,7 @@ only coordinates matter.</li> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Query from which you want the positions</td> ->>>>>>> develop </tr> </tbody> </table> @@ -655,11 +560,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> -<<<<<<< HEAD <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> ->>>>>>> develop <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> @@ -690,7 +591,6 @@ 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"> -<<<<<<< HEAD <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> @@ -698,15 +598,6 @@ algorithm.</p> <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, ->>>>>>> develop this can be ignored. Only the actual coordinates matter in this case.</li> </ul> @@ -715,11 +606,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> -<<<<<<< HEAD <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"><code class="xref py py-class docutils literal"><span class="pre">list</span></code> 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> ->>>>>>> develop </td> </tr> </tbody> @@ -736,7 +623,6 @@ matter in this case.</li> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<<<<<<< HEAD <h1 class="logo"><a href="../index.html">ProMod3</a></h1> @@ -760,14 +646,6 @@ matter in this case.</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> ->>>>>>> develop </ul> </li> </ul> @@ -822,6 +700,9 @@ matter in this case.</li> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/modelling/algorithms.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/gap_handling.html b/doc/html/modelling/gap_handling.html index 638d8e6964ead1c33e2be44a4cfe4f500cb9b4f6..a4e852feba21a38e6a861e7e95841969a1d77c0d 100644 --- a/doc/html/modelling/gap_handling.html +++ b/doc/html/modelling/gap_handling.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Handling Gaps — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Handling Gaps — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="modelling - Protein Modelling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Handling Loop Candidates" href="loop_candidates.html" /> <link rel="prev" title="Model Checking" href="model_checking.html" /> @@ -77,15 +53,9 @@ 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"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – 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> ->>>>>>> develop </ul> </td> </tr> @@ -139,11 +109,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> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ChainHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ChainHandle</span></code></a></td> ->>>>>>> develop </tr> </tbody> </table> @@ -294,21 +260,13 @@ extend the gap past another gap.</p> <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> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>)</p> ->>>>>>> develop </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> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>)</p> ->>>>>>> develop </dd></dl> <dl class="attribute"> @@ -352,13 +310,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"> -<<<<<<< HEAD <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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.10.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> ->>>>>>> develop </ul> </td> </tr> @@ -398,15 +351,9 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – <ul> ->>>>>>> develop <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> @@ -455,21 +402,12 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Penalty for length of gap.</li> -<li><strong>penalties</strong> (<code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Penalty for each residue added to gap.</li> -<li><strong>seqres</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – <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> ->>>>>>> develop (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) @@ -741,6 +679,9 @@ gaps of different chains or an N-terminal gap with a C-terminal gap.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/modelling/gap_handling.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/index.html b/doc/html/modelling/index.html index 86a0195979534b5289d0f4509833a57f410960ff..001bebb26f1f395089e0a59225ef85eb719502cd 100644 --- a/doc/html/modelling/index.html +++ b/doc/html/modelling/index.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>modelling - Protein Modelling — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>modelling - Protein Modelling — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="Documentation For Users" href="../users.html" /> ->>>>>>> develop <link rel="next" title="Modelling Pipeline" href="pipeline.html" /> <link rel="prev" title="Singularity" href="../container/singularity.html" /> @@ -219,6 +195,9 @@ a model fully automatically as follows:</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/modelling/index.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/loop_candidates.html b/doc/html/modelling/loop_candidates.html index c6e8c2ce3a3d7dd085480d10ca50720180e51037..b8582fa79027330f10532c5a8a5e8bdb5fb18f9e 100644 --- a/doc/html/modelling/loop_candidates.html +++ b/doc/html/modelling/loop_candidates.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Handling Loop Candidates — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Handling Loop Candidates — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="modelling - Protein Modelling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Fitting Loops Into Gaps" href="loop_closing.html" /> <link rel="prev" title="Handling Gaps" href="gap_handling.html" /> @@ -149,15 +125,9 @@ a fragment database.</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"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – The sequence of residues to be added including the ->>>>>>> develop <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> @@ -267,21 +237,12 @@ 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"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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> / <code class="xref py py-class docutils literal"><span class="pre">list</span></code> -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 ->>>>>>> develop 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 @@ -320,15 +281,9 @@ 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"> -<<<<<<< HEAD <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</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>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop 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> @@ -402,11 +357,7 @@ 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 -<<<<<<< HEAD <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/seq/base/seq/#ost.seq.ProfileHandle.GetAverageScore" title="(in OpenStructure v1.10.0)"><code class="xref py py-meth docutils literal"><span class="pre">ost.seq.ProfileHandle.GetAverageScore()</span></code></a> for ->>>>>>> develop 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 combining this to other scores, where it is commonly the other way around.</p> @@ -419,19 +370,11 @@ 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"> -<<<<<<< HEAD <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/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Loop starts at index <em>offset</em> in <em>prof</em>.</li> ->>>>>>> develop </ul> </td> </tr> @@ -460,17 +403,10 @@ positions and the corresponding atoms in <em>c_stem</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"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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> ->>>>>>> develop </ul> </td> </tr> @@ -1230,6 +1166,9 @@ scoring routines, <a class="reference internal" href="#promod3.modelling.ScoreCo Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/modelling/loop_candidates.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/loop_closing.html b/doc/html/modelling/loop_closing.html index db9b7c7b40ba26b6174b1bed8e3d3253c6761376..4888947584b6edb6f887569e01449069c155fcae 100644 --- a/doc/html/modelling/loop_closing.html +++ b/doc/html/modelling/loop_closing.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Fitting Loops Into Gaps — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Fitting Loops Into Gaps — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="modelling - Protein Modelling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Generating Loops De Novo" href="monte_carlo.html" /> <link rel="prev" title="Handling Loop Candidates" href="loop_candidates.html" /> @@ -99,7 +75,6 @@ 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"> -<<<<<<< HEAD <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 @@ -107,15 +82,6 @@ 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>sequence</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – Sequence of the backbones to be closed</li> -<li><strong>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop 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> @@ -151,17 +117,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"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Maximal number of iterations</li> -<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The algorithm stops as soon as the c_stem of the loop to ->>>>>>> develop be closed has RMSD below the given <em>c_stem</em></li> </ul> </td> @@ -359,15 +318,9 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of residue</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Force constant in kJ/mol/nm^2</li> ->>>>>>> develop </ul> </td> </tr> @@ -387,15 +340,9 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of residue</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Force constant in kJ/mol/nm^2</li> ->>>>>>> develop </ul> </td> </tr> @@ -416,15 +363,9 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of residue</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Force constant in kJ/mol/nm^2</li> ->>>>>>> develop </ul> </td> </tr> @@ -444,15 +385,9 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of residue</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Force constant in kJ/mol/nm^2</li> ->>>>>>> develop </ul> </td> </tr> @@ -472,15 +407,9 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Idx of residue</li> -<li><strong>pos</strong> (<a class="reference external" href="https://www.openstructure.org/docs/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Force constant in kJ/mol/nm^2</li> ->>>>>>> develop </ul> </td> </tr> @@ -739,6 +668,9 @@ the one given in the constructor.</td> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/modelling/loop_closing.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/model_checking.html b/doc/html/modelling/model_checking.html index 2d5e32283cb25465b38a2fbc8dece8160dd035e2..540cd0cc03b32b1aa8a17d2fd66fc43c7a0ccdaa 100644 --- a/doc/html/modelling/model_checking.html +++ b/doc/html/modelling/model_checking.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Model Checking — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Model Checking — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="modelling - Protein Modelling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Handling Gaps" href="gap_handling.html" /> <link rel="prev" title="Modelling Pipeline" href="pipeline.html" /> @@ -74,25 +50,14 @@ three of the atoms exist (center and radii are estimated then).</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">EntityView</span></code></a>) – Structure for which to detect rings.</td> ->>>>>>> develop </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 tuple with: -<<<<<<< HEAD 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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/composite/#ost.geom.Plane" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>), -residue (<a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ResidueHandle</span></code></a>).</td> ->>>>>>> develop </tr> </tbody> </table> @@ -107,21 +72,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"> -<<<<<<< HEAD <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> </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 -======= -<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/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v1.10.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"><code class="xref py py-class docutils literal"><span class="pre">list</span></code> of residues (<a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ResidueHandle</span></code></a>) which ->>>>>>> develop have a punched ring.</p> </td> </tr> @@ -139,13 +95,8 @@ 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 simple"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">EntityView</span></code></a>) – Structure for which to detect punches.</li> ->>>>>>> develop </ul> </td> </tr> @@ -170,15 +121,9 @@ This check is faster than using <a class="reference internal" href="#promod3.mod <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>. Offending candidates are removed from this list.</li> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.10.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> (<code class="xref py py-class docutils literal"><span class="pre">list</span></code>) – Mapping to old indexing of candidates. If given, it ->>>>>>> develop must have as many elements as <em>candidates</em>.</li> </ul> </td> @@ -241,11 +186,7 @@ with <code class="docutils literal notranslate"><span class="pre">MolProbity</sp <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> </td> </tr> -<<<<<<< HEAD <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/base/settings/#ost.settings.FileNotFound" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">FileNotFound</span></code></a> if the “phenix.molprobity” ->>>>>>> develop executable is not found.</p> </td> </tr> @@ -262,11 +203,7 @@ executable is not found.</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">Entity</span></code></a>) – OST entity on which to do analysis.</td> ->>>>>>> develop </tr> </tbody> </table> @@ -373,6 +310,9 @@ executable is not found.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/modelling/model_checking.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/monte_carlo.html b/doc/html/modelling/monte_carlo.html index cff5e54de23986e168e68c7e99dfd1ca5dd65595..805407b2d8b550c205b9b3d23ebcf34681fdbfe0 100644 --- a/doc/html/modelling/monte_carlo.html +++ b/doc/html/modelling/monte_carlo.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Generating Loops De Novo — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Generating Loops De Novo — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="modelling - Protein Modelling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Sidechain Reconstruction" href="sidechain_reconstruction.html" /> <link rel="prev" title="Fitting Loops Into Gaps" href="loop_closing.html" /> @@ -522,7 +498,6 @@ 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"> -<<<<<<< HEAD <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 @@ -530,15 +505,6 @@ should adapt. See <a class="reference internal" href="loop_closing.html#promod3. <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – 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> / <code class="xref py py-class docutils literal"><span class="pre">list</span></code> -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 ->>>>>>> develop can also pass a list of sampler objects to assign a unique torsion sampler to every residue of the conformation to be closed.</li> @@ -582,15 +548,9 @@ dihedral angles as it is the case for the <a class="reference internal" href="#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"> -<<<<<<< HEAD <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.</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>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Defining stem positions the closed conformation ->>>>>>> develop should adapt.</li> </ul> </td> @@ -630,15 +590,9 @@ 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"> -<<<<<<< HEAD <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.</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>n_stem</strong> (<a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop 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> </ul> @@ -677,11 +631,7 @@ superposing the c_stem with the desired positions.</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop adapt.</td> </tr> </tbody> @@ -719,11 +669,7 @@ superposing the n_stem with the desired positions.</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop adapt.</td> </tr> </tbody> @@ -1019,6 +965,9 @@ internal counter to 0</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/modelling/monte_carlo.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/pipeline.html b/doc/html/modelling/pipeline.html index 328a3d8fb5a62005d090107c249ab6bf74e7f6b0..88958f472146febd1697cfce3df6fa14ebf560a0 100644 --- a/doc/html/modelling/pipeline.html +++ b/doc/html/modelling/pipeline.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Modelling Pipeline — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Modelling Pipeline — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="modelling - Protein Modelling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Model Checking" href="model_checking.html" /> <link rel="prev" title="modelling - Protein Modelling" href="index.html" /> @@ -134,11 +110,7 @@ chain follows afterwards.</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">EntityHandle</span></code></a></td> ->>>>>>> develop </tr> </tbody> </table> @@ -164,21 +136,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> -<<<<<<< HEAD <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/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">SequenceHandle</span></code></a> for each chain ->>>>>>> develop 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"> -<<<<<<< HEAD <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/seq/base/seq/#ost.seq.SequenceList" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">SequenceList</span></code></a></td> ->>>>>>> develop </tr> </tbody> </table> @@ -187,26 +151,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> -<<<<<<< HEAD <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/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop 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> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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"><code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://www.openstructure.org/docs/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a></td> ->>>>>>> develop </tr> </tbody> </table> @@ -393,11 +347,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 -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">EntityView</span></code></a> attached.</p> ->>>>>>> develop <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 @@ -425,11 +375,7 @@ as information about insertions and deletions in the gaps list.</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"> -<<<<<<< HEAD <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/seq/base/seq/#ost.seq.AlignmentHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop 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 searches for ligands in all OST handles of the views @@ -454,13 +400,8 @@ in SMTL). All ligands are added to a new chain named <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 -<<<<<<< HEAD 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/seq/base/seq/#ost.seq.AlignmentHandle.SetSequenceOffset" title="(in OpenStructure v1.10.0)"><code class="xref py py-meth docutils literal"><span class="pre">SetSequenceOffset()</span></code></a>) for the ->>>>>>> develop 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> @@ -503,7 +444,6 @@ return an incomplete model.</p> <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 alignment.</li> -<<<<<<< HEAD <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>). @@ -511,15 +451,6 @@ 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>use_amber_ff</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – if True, use the AMBER force field instead of the def. -CHARMM one (see <a class="reference external" href="https://www.openstructure.org/docs/mol/mm/forcefield/#ost.mol.mm.LoadAMBERForcefield" title="(in OpenStructure v1.10.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/mol/mm/forcefield/#ost.mol.mm.LoadCHARMMForcefield" title="(in OpenStructure v1.10.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> (<code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://www.openstructure.org/docs/mol/mm/forcefield/#ost.mol.mm.Forcefield" title="(in OpenStructure v1.10.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 ->>>>>>> develop (ligand) residue cannot be parametrized with the default force field. The force fields are tried in the order as given and ligands without an @@ -540,11 +471,7 @@ limited. Termini of length 1 won’t be modelled.</li> <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> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">Entity</span></code></a></p> ->>>>>>> develop </td> </tr> </tbody> @@ -713,7 +640,6 @@ 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"> -<<<<<<< HEAD <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> @@ -722,16 +648,6 @@ environments get updated in <strong>target_mhandle</strong>.</p> <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – This is the chain where the info goes to</li> -<li><strong>start_resnum</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – First residue of the copied stretch</li> -<li><strong>end_resnum</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Last residue of the copied stretch</li> -<li><strong>transform</strong> (<a class="reference external" href="https://www.openstructure.org/docs/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.10.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> ->>>>>>> develop </ul> </td> </tr> @@ -760,13 +676,8 @@ while ensuring consistency with the <a class="reference internal" href="#promod3 <col 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"> -<<<<<<< HEAD <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> (<code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://www.openstructure.org/docs/seq/base/seq/#ost.seq.ProfileHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.ProfileHandle</span></code></a>) – The sequence profiles to attach</li> ->>>>>>> develop </ul> </td> </tr> @@ -923,15 +834,9 @@ 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 called (e.g. with -<<<<<<< HEAD <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/mol/alg/molalg/#ost.mol.alg.AssignSecStruct" title="(in OpenStructure v1.10.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/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – 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 ->>>>>>> develop with <cite>use_scoring_extender</cite>. This allows the gap extender to skip neighboring gaps and to correctly handle gaps close to termini.</li> @@ -1030,21 +935,12 @@ 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"> -<<<<<<< HEAD <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 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>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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Define how many candidates are ‘enough’ to be ->>>>>>> develop evaluated per loop. The actual found candidates may be more (if we found ‘enough’) or less (if not enough candidates exist) of this number.</li> @@ -1145,17 +1041,10 @@ 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"> -<<<<<<< HEAD <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 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>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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Define how many candidates are ‘enough’ to be ->>>>>>> develop 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> @@ -1316,11 +1205,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> -<<<<<<< HEAD <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/mol/mm/molmm/#module-ost.mol.mm" title="(in OpenStructure v1.10.0)"><code class="xref py py-mod docutils literal"><span class="pre">ost.mol.mm</span></code></a> to perform energy minimization. ->>>>>>> develop 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> @@ -1342,7 +1227,6 @@ minimization is aborted. This issue is logged and added as a major issue to <col 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"> -<<<<<<< HEAD <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> @@ -1351,27 +1235,13 @@ minimization is aborted. This issue is logged and added as a major issue to 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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Max. number of iterations for SD+LBFGS</li> -<li><strong>max_iter_sd</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Max. number of iterations within SD method</li> -<li><strong>max_iter_lbfgs</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Max. number of iterations within LBFGS method</li> -<li><strong>use_amber_ff</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – 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> (<code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://www.openstructure.org/docs/mol/mm/forcefield/#ost.mol.mm.Forcefield" title="(in OpenStructure v1.10.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> ->>>>>>> develop </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> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">Entity</span></code></a></p> ->>>>>>> develop </td> </tr> </tbody> @@ -1459,13 +1329,8 @@ set to True, if the problem affects backbone atoms.</li> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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"><code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/mol/base/entity/#ost.mol.ResidueView" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ResidueView</span></code></a></td> ->>>>>>> develop </tr> </tbody> </table> @@ -1616,6 +1481,9 @@ attribute yet, it is added.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/modelling/pipeline.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/modelling/sidechain_reconstruction.html b/doc/html/modelling/sidechain_reconstruction.html index aeb52dafe8310b8308a227a07e9fbbe09dd21c97..bf8ae04e9de57a457fecf476cf8fc5e3986a52ed 100644 --- a/doc/html/modelling/sidechain_reconstruction.html +++ b/doc/html/modelling/sidechain_reconstruction.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Sidechain Reconstruction — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Sidechain Reconstruction — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="modelling - Protein Modelling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Modelling Algorithms" href="algorithms.html" /> <link rel="prev" title="Generating Loops De Novo" href="monte_carlo.html" /> @@ -62,15 +38,9 @@ <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"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop and used to reconstruct sidechains of single loops</li> </ul> <p>Example usage:</p> @@ -124,11 +94,7 @@ 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"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop 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. containing all required atoms) should be kept rigid @@ -240,21 +206,12 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResNum" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Length of loop.</li> -<li><strong>chain_idx</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Chain the loop belongs to.</li> -<li><strong>start_resnum_list</strong> (<code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Starts of loops.</li> -<li><strong>num_residues_list</strong> (<code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Lengths of loops.</li> -<li><strong>chain_idx_list</strong> (<code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Chains the loops belong to.</li> ->>>>>>> develop </ul> </td> </tr> @@ -510,6 +467,9 @@ in the environment (same length as <em>env_pos.res_indices</em>)</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/modelling/sidechain_reconstruction.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/objects.inv b/doc/html/objects.inv index bf039128b174cbaceaa311eb4f454adcdda30285..ab2026943f8701647d55765b8ce88e980a39a3d4 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 47cf43600c2b0bae3824bed63cda4bdff39bc0a0..b6c70238d53b0743f9414f90aeb800493295ab39 100644 --- a/doc/html/portableIO.html +++ b/doc/html/portableIO.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Using Binary Files In ProMod3 — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> -======= - - <title>Using Binary Files In ProMod3 — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: './', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="index.html" /> - <link rel="up" title="Documentation For Developers" href="developers.html" /> ->>>>>>> develop <link rel="next" title="License" href="license.html" /> <link rel="prev" title="ProMod3’s Share Of CMake" href="cmake/index.html" /> @@ -514,6 +490,9 @@ in the <code class="file docutils literal notranslate"><span class="pre">extras/ Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="_sources/portableIO.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/py-modindex.html b/doc/html/py-modindex.html index 1026cd5289d88ef78ee9494e8eaddcbd828da9c0..0a62e9a138e6fd36fecee421831233a60150d7de 100644 --- a/doc/html/py-modindex.html +++ b/doc/html/py-modindex.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Python Module Index — ProMod3 2.0.0 documentation</title> + <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> @@ -17,28 +16,6 @@ <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> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> -======= - - <title>Python Module Index — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: './', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="index.html" /> ->>>>>>> develop <link rel="stylesheet" href="_static/custom.css" type="text/css" /> diff --git a/doc/html/references.html b/doc/html/references.html index 8f39ae974f8192768d1b7585a488c331303effbb..26adecb2d55c79436b45bd4f0bba9c62592e14ab 100644 --- a/doc/html/references.html +++ b/doc/html/references.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>References — ProMod3 2.0.0 documentation</title> + <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> @@ -17,28 +16,6 @@ <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> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> -======= - - <title>References — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: './', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="index.html" /> ->>>>>>> develop <link rel="next" title="Changelog" href="changelog.html" /> <link rel="prev" title="License" href="license.html" /> @@ -267,6 +244,9 @@ Fragments. Proteins.</td></tr> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="_sources/references.rst.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 781c37f012cc868c64e75ae721d8870a62fc32d2..3023ea9d47cef67ce63b8fc526a78a62b20306c1 100644 --- a/doc/html/scoring/all_atom_scorers.html +++ b/doc/html/scoring/all_atom_scorers.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>All Atom Scorers — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>All Atom Scorers — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="scoring - Loop Scoring" href="index.html" /> ->>>>>>> develop <link rel="next" title="Other Scoring Functions" href="other_scoring_functions.html" /> <link rel="prev" title="Backbone Scorers" href="backbone_scorers.html" /> @@ -720,6 +696,9 @@ of residues in the input loop. True by default.</td> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/scoring/all_atom_scorers.rst.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 043c78896951c7170cfaf8aad9df355cd597c5e5..e5ebe0260d917dd51b60d07ec59266e23b94d375 100644 --- a/doc/html/scoring/backbone_score_env.html +++ b/doc/html/scoring/backbone_score_env.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Backbone Score Environment — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Backbone Score Environment — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="scoring - Loop Scoring" href="index.html" /> ->>>>>>> develop <link rel="next" title="Backbone Scorers" href="backbone_scorers.html" /> <link rel="prev" title="scoring - Loop Scoring" href="index.html" /> @@ -85,13 +61,8 @@ task.</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.SequenceHandle</span></code></a> / -<code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/seq/base/seq/#ost.seq.SequenceList" title="(in OpenStructure v1.10.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 ->>>>>>> develop chain). Whenever setting structural data, consistency with this SEQRES is enforced.</td> </tr> </tbody> @@ -128,11 +99,7 @@ structural data was already set, all the existing data gets cleared first.</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop in <em>env_structure</em> are expected to be in the same order as the SEQRES items provided in constructor.</td> </tr> @@ -155,15 +122,9 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a> / <a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResNum" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Index of chain the structural data belongs to.</li> ->>>>>>> develop </ul> </td> </tr> @@ -311,11 +272,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> -<<<<<<< HEAD <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/seq/base/seq/#ost.seq.SequenceList" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.seq.SequenceList</span></code></a></td> ->>>>>>> develop </tr> </tbody> </table> @@ -422,13 +379,8 @@ The constraint functions are built after the principle of QMEANDisCo.</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"> -<<<<<<< HEAD <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/seq/base/seq/#ost.seq.SequenceHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop or CB atoms</li> </ul> </td> @@ -442,11 +394,7 @@ or CB atoms</li> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/seq/base/seq/#ost.seq.AlignmentHandle" title="(in OpenStructure v1.10.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 ->>>>>>> develop SEQRES and the second sequence the actual structural info. The second sequence must have a view attached.</td> </tr> @@ -586,6 +534,9 @@ inconsistent with SEQRES you initialized the DiscoContainer with</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/scoring/backbone_score_env.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/scoring/backbone_scorers.html b/doc/html/scoring/backbone_scorers.html index a32dbb8456b000e47fc0cfa520be7daa4b975532..b272d74f103e9717f9ea8ec489243e9dba3ea960 100644 --- a/doc/html/scoring/backbone_scorers.html +++ b/doc/html/scoring/backbone_scorers.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Backbone Scorers — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Backbone Scorers — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="scoring - Loop Scoring" href="index.html" /> ->>>>>>> develop <link rel="next" title="All Atom Scorers" href="all_atom_scorers.html" /> <link rel="prev" title="Backbone Score Environment" href="backbone_score_env.html" /> @@ -397,15 +373,9 @@ 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"> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Number of surrounding CB positions for which to set energy.</li> -<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</li> ->>>>>>> develop </ul> </td> </tr> @@ -537,17 +507,10 @@ 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"> -<<<<<<< HEAD <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the interaction distance.</li> -<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</li> ->>>>>>> develop </ul> </td> </tr> @@ -724,7 +687,6 @@ 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"> -<<<<<<< HEAD <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> @@ -732,15 +694,6 @@ SetEnergy(aa2, aa1, dist_bin, beta_bin, alpha_bin, energy).</p> <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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the interaction distance.</li> -<li><strong>alpha_bin</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the alpha angle.</li> -<li><strong>beta_bin</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the beta angle.</li> -<li><strong>gamma_bin</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Discrete bin describing the gamma dihedral.</li> -<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Energy to set for those parameters.</li> ->>>>>>> develop </ul> </td> </tr> @@ -1454,6 +1407,9 @@ of residues to be scored. True by default.</td> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/scoring/backbone_scorers.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/scoring/index.html b/doc/html/scoring/index.html index 09cdbbb7c3fd0d763304fee599b612ae044471b7..4b03019ce400a0d8cbbb6a1eafcae797d5448717 100644 --- a/doc/html/scoring/index.html +++ b/doc/html/scoring/index.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>scoring - Loop Scoring — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>scoring - Loop Scoring — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="Documentation For Users" href="../users.html" /> ->>>>>>> develop <link rel="next" title="Backbone Score Environment" href="backbone_score_env.html" /> <link rel="prev" title="Subrotamer Optimization" href="../sidechain/subrotamer_optimizer.html" /> @@ -212,6 +188,9 @@ scorers to it and finally score some loops:</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/scoring/index.rst.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 5e81b54f4d1d0aa91310db2df1a79e4c4485479e..6fd0d56f118a02981dda69f849799570edb7c3c3 100644 --- a/doc/html/scoring/other_scoring_functions.html +++ b/doc/html/scoring/other_scoring_functions.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Other Scoring Functions — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Other Scoring Functions — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="scoring - Loop Scoring" href="index.html" /> ->>>>>>> develop <link rel="next" title="loop - Loop Handling" href="../loop/index.html" /> <link rel="prev" title="All Atom Scorers" href="all_atom_scorers.html" /> @@ -211,6 +187,9 @@ construction algorithm <a class="reference internal" href="../references.html#ca Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/scoring/other_scoring_functions.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/search.html b/doc/html/search.html index b9cbb85db22a479bc286f69865bf0988351e43d8..470a4f7e2cd2f8cf05ff95d2a2f34f8dce8ac240 100644 --- a/doc/html/search.html +++ b/doc/html/search.html @@ -6,40 +6,18 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Search — ProMod3 2.0.0 documentation</title> + <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> -======= - - <title>Search — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: './', - VERSION: '2.1.0', - COLLAPSE_INDEX: false, - FILE_SUFFIX: '.html', - HAS_SOURCE: true - }; - </script> ->>>>>>> develop <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="_static/searchtools.js"></script> -<<<<<<< HEAD <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="#" /> -======= - <link rel="top" title="ProMod3 2.1.0 documentation" href="index.html" /> ->>>>>>> develop <script type="text/javascript"> jQuery(function() { Search.loadIndex("searchindex.js"); }); </script> diff --git a/doc/html/searchindex.js b/doc/html/searchindex.js index 695d1bb37563b6378fdc54258514a3ff03735981..427e01fd29dec04f51ee064c4bad60265c3e5c68 100644 --- a/doc/html/searchindex.js +++ b/doc/html/searchindex.js @@ -1,5 +1 @@ -<<<<<<< HEAD -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,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:[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,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,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: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,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,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,7,21,25,26,35,36,40,44,50,52],expens:26,experiment:35,explain:[1,8],explan:8,explicit:2,explicitli:20,explor: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,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: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,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,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,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,5,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,8,16],prolin:[22,33,49],promin:[0,20],promod3:[1,3,5,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:[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,python2: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,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,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:[8,18,19,38,53],sci:38,scicor:[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:[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: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:[5,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:[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:[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: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,6,8,12,16,18,19,37],protein:30,psipredpredict:26,punch:33,quick:8,raw:35,reconstruct:36,reducedscor:41,refer:38,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}}) -======= -Search.setIndex({envversion:47,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":{"__init__":[13,4,1,""],AddAlignment:[13,4,1,""],AddFragments:[13,4,1,""],AddProfile:[13,4,1,""],AddStructure:[13,4,1,""],AssembleParser:[13,4,1,""],Parse:[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":{"__len__":[22,4,1,""],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,""],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":{"__getitem__":[26,4,1,""],"__len__":[26,4,1,""],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,""]},"promod3.loop.FraggerMap":{"__getitem__":[26,4,1,""],"__setitem__":[26,4,1,""],Contains:[26,4,1,""],Load:[26,4,1,""],LoadBB:[26,4,1,""],Save:[26,4,1,""],SaveBB:[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":{"__len__":[26,4,1,""],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,""]},"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":{"__getitem__":[39,4,1,""],"__setitem__":[39,4,1,""],AttachEnvironment:[39,4,1,""],CalculateLinearCombination:[39,4,1,""],Contains:[39,4,1,""],Get:[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":{"__getitem__":[41,4,1,""],"__setitem__":[41,4,1,""],AttachEnvironment:[41,4,1,""],Calculate:[41,4,1,""],CalculateLinearCombination:[41,4,1,""],Contains:[41,4,1,""],Get:[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":{"__getitem__":[49,4,1,""],"__len__":[49,4,1,""],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,""]},"promod3.sidechain.FRMRotamerGroup":{"__getitem__":[49,4,1,""],"__len__":[49,4,1,""],AddFrameEnergy:[49,4,1,""],ApplyOnResidue:[49,4,1,""],ApplySelfEnergyThresh:[49,4,1,""],Merge:[49,4,1,""],SetFrameEnergy:[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":{"__getitem__":[49,4,1,""],"__len__":[49,4,1,""],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,""]},"promod3.sidechain.RRMRotamerGroup":{"__getitem__":[49,4,1,""],"__len__":[49,4,1,""],AddFrameEnergy:[49,4,1,""],ApplyOnResidue:[49,4,1,""],ApplySelfEnergyThresh:[49,4,1,""],Merge:[49,4,1,""],SetFrameEnergy:[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,"__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,"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,7,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],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],acknowledg:8,across:[1,51],act:[20,32],acta:38,action_nam:16,action_unit_test:1,actiontest:1,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,addedg:10,addendum:20,addfrag:[13,26],addfragmentinfo:31,addframeenergi:49,addharmonicangl:25,addharmonicbond:25,addharmonicimprop:25,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,22,23,26],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,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,7,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,7,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:[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],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],app:7,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],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,7,8,20,25,26,32,35,37,40,41,44,50],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,3,5,7,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],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: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,20,28,32,34,48],basic:[1,2,8,11,16,27,34,35,47,51],bb_dep_lib:37,bb_list:[7,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_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],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_disulfid:36,builder:2,buildfromrawmodel:[30,35],buildrawmodel:[0,30,31,35],buildsidechain:35,buildup:[47,49],built:[4,7,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,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_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],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_dupl:28,check_io:37,check_xml:8,checkbasetyp:37,checkfinalmodel:35,checkmagicnumb:37,checkout:[8,16],checktypes:37,chem:38,chemdict_tool:[5,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,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,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_contain:[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],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_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],definem: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,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],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,8],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:[7,11,13,14,20],dissimilar:28,dist:41,dist_bin:41,dist_bin_s:26,distanc:[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],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: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,21,32,35,37,45,51],dynam:51,dynamicspatialorgan:3,e_cut:10,e_thresh:[10,35],e_tresh:10,each:[0,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],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,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],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,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],exec:7,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:38,exponenti:34,exponentialcool:34,expos:26,express:[20,44],ext:11,extend:[1,4,8,16,17,24,26,28],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],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_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],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,8,10,16,21,23],findatom:28,findchain:42,findeigen3:20,findmotif:28,findwithin:[8,28],fine:8,finish:52,fire:[1,7],first:[0,1,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],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,7,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,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_minu:51,gauche_plu: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,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:[0,1,2,3,4,5,8,9,10,11,12,13,14,15],gitignor:8,gitlab: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,headlin:8,heavi:[21,25,36,39,49,50],heavili:[26,47],helic:[22,24,25,28,35,41],helix:[7,18,22,34,47],hell:28,hello:37,hello_world:8,hellyeah:[7,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,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:[7,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],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,image_nam:[5,7],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,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:[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,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],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],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,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,istermin:29,isvalid:47,item:[1,8,16,21,22,25,26,35,40],iter:[10,26,27,28,31,32,34,35,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],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,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,7,8],latter:[0,5,16,35],launcher:[4,8],law:20,lawsuit:20,layer:44,layout:[26,37],lbfg:35,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,7,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],library1:4,library2:4,licenc:48,licens:3,licensor:20,life:16,ligand:[3,35,36,49,50],like:[0,1,4,7,8,16,35,37,48],limit:[0,3,20,26,32,35],line:[0,1,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,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,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],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,lysin:49,m_idx:28,m_vinaparticl:[49,50],machin:[7,25,26,27,37,39,41,51],macro:[4,8],macromolecul:38,made:[4,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],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],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_data:4,mol:[8,9,18,21,22,23],molecular:[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,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:[7,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,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,8,16,25,28,31,32,34,46,51,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_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,47,48,51],optimis:8,optimize_subrotam:[36,44],option:[0,2,3,5,7,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],ost_complib:[5,7],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],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,5],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,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,7,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_thread:[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,pna:38,png:27,pocket:28,pocket_view:28,point:[2,7,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:7,port_str_db:26,portabl:[4,17,25,26,27],portable_binary_seri:37,portable_fil: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: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,8,16],prolin:[22,33,49],promin:[0,20],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,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_confid:41,psipred_pr:28,psipred_predict:[26,28,35],psipred_st:41,psipredpredict:23,pssm:[0,13],publicli:20,pull:[7,8,16,18],punch:[1,3,30],pure:0,purpos:[8,10,20,35,51],push:[7,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,python2: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:[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,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,7],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],registri:7,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,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,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],restart:7,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,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,runact: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:[7,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:[8,18,19,38,53],sci:38,scicor:[8,18,19,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],scriptnam: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,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],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,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],show_fil:7,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_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:[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,singularity_nohttp:7,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,7,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],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,ssagre:26,ssagreementscor:37,sse:2,sstream:37,stabil:38,stabl: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,7,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:[5,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,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,7],tail:22,tailor:[21,35],take:[8,10,21,26,27,28,31,32,34,35,37,41,44,50,52],taken:[0,7,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_: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:[20,27],tlc:[21,49],tlc_an:21,tlctorotid:[47,49],tmp_buf:37,todens:22,toentiti:[7,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,7,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],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,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:[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:[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,urei:25,urey_bradley_angl:25,usabl:16,usag:[0,3,10,13,24,26,31,32,36],use_amber_ff:35,use_bbdep_lib:36,use_frm:36,use_full_extend:35,use_scoring_extend:35,user:[1,5,8,28,53],userlevel:1,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:[7,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:[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,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,7,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_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],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,7,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,argument:13,atom:[21,32,39],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,7,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,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,7],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:[5,7,25],other:43,output:1,own: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,6,8,12,16,18,19,37],protein:30,psipredpredict:26,punch:33,quick:8,raw:35,reconstruct:36,reducedscor:41,refer:38,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,7,18],runtim:14,sampl:27,sampler:[27,34],score:[31,40,42,43,49,50],scorer:[8,34,39,41],script:[1,5,7,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}}) ->>>>>>> develop +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 diff --git a/doc/html/sidechain/disulfid.html b/doc/html/sidechain/disulfid.html index ea239ac102aa329782fa46d7052cfc2c09bdf174..3d02ef1ec8ffc6426c84a7c3cf89881988ed3442 100644 --- a/doc/html/sidechain/disulfid.html +++ b/doc/html/sidechain/disulfid.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Disulfid Bond Evaluation — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Disulfid Bond Evaluation — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Loading Rotamer Libraries" href="loading.html" /> <link rel="prev" title="Rotamer Graph" href="graph.html" /> @@ -91,21 +67,12 @@ 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"> -<<<<<<< HEAD <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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – CB position of second rotamer</li> ->>>>>>> develop </ul> </td> </tr> @@ -136,19 +103,11 @@ 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"> -<<<<<<< HEAD <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> (<code class="xref py py-class docutils literal"><span class="pre">list</span></code> 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> (<code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://www.openstructure.org/docs/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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> (<code class="xref py py-class docutils literal"><span class="pre">list</span></code> of <a class="reference external" href="https://www.openstructure.org/docs/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The score two rotamers must have to be considered ->>>>>>> develop 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 rotamer groups, the active subrotamers get @@ -257,6 +216,9 @@ describe the optimal rotamers in the according rotamer groups.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/sidechain/disulfid.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/sidechain/frame.html b/doc/html/sidechain/frame.html index 4ed58839870434ab5eb75d292abb7db534b9e57d..b7b6ff0321387fe61abe2f8182da3e328dd0fae8 100644 --- a/doc/html/sidechain/frame.html +++ b/doc/html/sidechain/frame.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Frame - The Rigid Part — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Frame - The Rigid Part — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Rotamer Constructor" href="rotamer_constructor.html" /> <link rel="prev" title="Representing Sidechains - Rotamers & Co." href="rotamer.html" /> @@ -144,7 +120,6 @@ can be passed to rotamer groups for calculating frame energies.</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<<<<<<< HEAD <h1 class="logo"><a href="../index.html">ProMod3</a></h1> @@ -168,12 +143,6 @@ can be passed to rotamer groups for calculating frame energies.</p> <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> ->>>>>>> develop </ul> </li> </ul> @@ -189,11 +158,7 @@ can be passed to rotamer groups for calculating frame energies.</p> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> -<<<<<<< HEAD <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> ->>>>>>> develop <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> @@ -232,6 +197,9 @@ can be passed to rotamer groups for calculating frame energies.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/sidechain/frame.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/sidechain/graph.html b/doc/html/sidechain/graph.html index 1b34c8a51b4be6ba233a88aa7a123663a659ee15..798f88c8236460c9d977bc7681787e25a5c705d6 100644 --- a/doc/html/sidechain/graph.html +++ b/doc/html/sidechain/graph.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Rotamer Graph — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Rotamer Graph — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Disulfid Bond Evaluation" href="disulfid.html" /> <link rel="prev" title="Rotamer Library" href="rotamer_lib.html" /> @@ -141,11 +117,7 @@ conformations for every amino acid position.</td> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> -<<<<<<< HEAD <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> ->>>>>>> develop <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> @@ -184,6 +156,9 @@ conformations for every amino acid position.</td> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/sidechain/graph.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/sidechain/index.html b/doc/html/sidechain/index.html index a68ee21166054a444bfa7413e073e27052874b55..b9e908dded601ed00b9a5c58dc06704c2f81b8e9 100644 --- a/doc/html/sidechain/index.html +++ b/doc/html/sidechain/index.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>sidechain - Sidechain Modelling — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>sidechain - Sidechain Modelling — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="Documentation For Users" href="../users.html" /> ->>>>>>> develop <link rel="next" title="Representing Sidechains - Rotamers & Co." href="rotamer.html" /> <link rel="prev" title="Modelling Algorithms" href="../modelling/algorithms.html" /> @@ -274,6 +250,9 @@ pipelines available in the modelling module.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/sidechain/index.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/sidechain/loading.html b/doc/html/sidechain/loading.html index e89c99d6518a6353c015a5a07c3c1e6f73a36e02..30375f0155d3ba7917c8e73e98c8158f8e96446b 100644 --- a/doc/html/sidechain/loading.html +++ b/doc/html/sidechain/loading.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Loading Rotamer Libraries — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Loading Rotamer Libraries — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Subrotamer Optimization" href="subrotamer_optimizer.html" /> <link rel="prev" title="Disulfid Bond Evaluation" href="disulfid.html" /> @@ -60,7 +36,7 @@ <div class="section" id="loading-rotamer-libraries"> <h1>Loading Rotamer Libraries<a class="headerlink" href="#loading-rotamer-libraries" title="Permalink to this headline">¶</a></h1> -<p>There are several rotamer libraries that can be used in ProMod3. ProMod3 +<p>There are several rotamer libraries that can be used in ProMod3 . ProMod3 is optimized for the use with backbone dependent rotamer libraries such as the 2010 library provided by the Dunbrack lab <a class="reference internal" href="../references.html#shapovalov2011" id="id1">[shapovalov2011]</a>. You can request a licence <a class="reference external" href="http://dunbrack.fccc.edu/bbdep2010/">here</a> @@ -219,6 +195,9 @@ incomplete if the last problem gets triggered.</td> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/sidechain/loading.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/sidechain/rotamer.html b/doc/html/sidechain/rotamer.html index 09860d3753da9c5a72cc2c37f05422e1dd3010ae..d2c66d03eb3e3b0677a3a1954fddbaecf30cc4ee 100644 --- a/doc/html/sidechain/rotamer.html +++ b/doc/html/sidechain/rotamer.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Representing Sidechains - Rotamers & Co. — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Representing Sidechains - Rotamers & Co. — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Frame - The Rigid Part" href="frame.html" /> <link rel="prev" title="sidechain - Sidechain Modelling" href="index.html" /> @@ -60,7 +36,6 @@ <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> -<<<<<<< HEAD <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>. @@ -68,15 +43,6 @@ 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>. 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> -======= -<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"><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"><span class="pre">Frame</span></code></a> object.</p> ->>>>>>> develop <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 @@ -96,11 +62,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> -<<<<<<< HEAD <li>CYH - “free” Cystein</li> -======= -<li>CYH - “free” Cystein</li> ->>>>>>> develop <li>CYD - disulfid bonded Cystein</li> <li>MET - Methionine</li> <li>TRP - Tryptophane</li> @@ -123,23 +85,14 @@ that affect the hbond term or different versions of proline/cysteine.</p> <li>XXX - Invalid</li> </ul> </td></tr></table> -<<<<<<< HEAD <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> ->>>>>>> develop </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 -<<<<<<< HEAD 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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a> enum ->>>>>>> develop or from amino acid three letter codes.</p> <dl class="method"> <dt id="promod3.sidechain.TLCToRotID"> @@ -150,15 +103,9 @@ exactly the naming convention defined above.</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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> <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-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>tlc</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – 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"><span class="pre">RotamerID</span></code></a>, XXX if <strong>tlc</strong> cannot be recoginzed.</td> ->>>>>>> develop </tr> </tbody> </table> @@ -169,26 +116,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 -<<<<<<< HEAD (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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></a></p> ->>>>>>> develop <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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> <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-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/conop/aminoacid/#ost.conop.AminoAcid" title="(in OpenStructure v1.10.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"><span class="pre">RotamerID</span></code></a>, XXX if <strong>aa</strong> is invalid.</td> ->>>>>>> develop </tr> </tbody> </table> @@ -284,11 +220,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> -<<<<<<< HEAD <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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a></td> ->>>>>>> develop </tr> </tbody> </table> @@ -344,31 +276,18 @@ 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"> -<<<<<<< HEAD <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 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>name</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – 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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – 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"><span class="pre">ost.geom.Vec3List</span></code>) – Direction of all possible lone pairs of the particle, ->>>>>>> develop 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> -<<<<<<< HEAD <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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – The polar direction of the particle, ->>>>>>> develop 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 @@ -390,28 +309,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> -<<<<<<< HEAD <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 ->>>>>>> develop 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"> -<<<<<<< HEAD <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 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>name</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – The name of the particle</li> -<li><strong>radius</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – 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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – The position of the particle</li> ->>>>>>> develop </ul> </td> </tr> @@ -426,11 +334,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 -<<<<<<< HEAD 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 ->>>>>>> develop 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> @@ -456,37 +360,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> -<<<<<<< HEAD <li>INVALID_VINAParticle - Invalid particle…</li> -======= -<li>INVALID_VINAParticle - Invalid particle...</li> ->>>>>>> develop </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> -<<<<<<< HEAD <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 ->>>>>>> develop 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) – 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/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) – The position of the particle</li> ->>>>>>> develop </ul> </td> </tr> @@ -564,13 +454,8 @@ 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"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Flag, whether polar hydrogens should be added to ->>>>>>> develop <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> @@ -845,13 +730,8 @@ 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"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Flag, whether polar hydrogens should be added to ->>>>>>> develop 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> @@ -1249,15 +1129,9 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Rotamer index</li> -<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Flag, whether polar hydrogens should be added to ->>>>>>> develop 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> @@ -1389,15 +1263,9 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Rotamer index</li> -<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Flag, whether polar hydrogens should be added to ->>>>>>> develop 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> @@ -1477,7 +1345,6 @@ 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"> -<<<<<<< HEAD <h1 class="logo"><a href="../index.html">ProMod3</a></h1> @@ -1501,23 +1368,6 @@ rotamers with <em>self_energy</em> > <em>l_e</em> + <em>thresh</em></p> <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> -</li> -<li><a class="reference internal" href="#rotamers">Rotamers</a></li> -<li><a class="reference internal" href="#rotamer-groups">Rotamer Groups</a></li> ->>>>>>> develop </ul> </li> </ul> @@ -1533,13 +1383,8 @@ rotamers with <em>self_energy</em> > <em>l_e</em> + <em>thresh</em></p> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> -<<<<<<< HEAD <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> ->>>>>>> develop <li>Next: <a href="frame.html" title="next chapter">Frame - The Rigid Part</a></li> </ul></li> </ul></li> @@ -1577,6 +1422,9 @@ rotamers with <em>self_energy</em> > <em>l_e</em> + <em>thresh</em></p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/sidechain/rotamer.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/sidechain/rotamer_constructor.html b/doc/html/sidechain/rotamer_constructor.html index 8f6344cddaad7f00c3d342832f9869b54a3cc604..58bf6321ebc7fe542313dad7b4a4a2f791eb9ced 100644 --- a/doc/html/sidechain/rotamer_constructor.html +++ b/doc/html/sidechain/rotamer_constructor.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Rotamer Constructor — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Rotamer Constructor — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Rotamer Library" href="rotamer_lib.html" /> <link rel="prev" title="Frame - The Rigid Part" href="frame.html" /> @@ -69,11 +45,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 -<<<<<<< HEAD (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> ->>>>>>> develop <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> @@ -99,7 +71,6 @@ an interface implemented by scoring function specific constructors <col 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"> -<<<<<<< HEAD <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 @@ -107,15 +78,6 @@ 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>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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"><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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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 ->>>>>>> develop 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> @@ -164,7 +126,6 @@ don’t show up 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"> -<<<<<<< HEAD <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 @@ -172,15 +133,6 @@ 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>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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"><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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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 ->>>>>>> develop 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> @@ -217,7 +169,6 @@ 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"> -<<<<<<< HEAD <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 @@ -225,15 +176,6 @@ 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>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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"><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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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 ->>>>>>> develop 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> @@ -269,13 +211,8 @@ to the energy function specific constructors to override that behaviour.</p> <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 to be assigned</li> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The index of the residue which is represented by ->>>>>>> develop <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> @@ -320,11 +257,7 @@ 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> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>. ->>>>>>> develop 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 @@ -334,15 +267,9 @@ 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"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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> ->>>>>>> develop </ul> </td> </tr> @@ -356,11 +283,7 @@ 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> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a> using ->>>>>>> develop 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>, which will be called by this function if the residue is not known by the given @@ -378,17 +301,10 @@ 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"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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/conop/compoundlib/#ost.conop.CompoundLib" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.conop.CompoundLib</span></code></a>) – OST compound library to use</li> ->>>>>>> develop </ul> </td> </tr> @@ -531,127 +447,8 @@ is already called at construction and the energies are properly assigned.</p> <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 to be assigned</li> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> -<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is n-terminal</li> -<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is c-terminal</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<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"><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/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – 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.</td> -</tr> -</tbody> -</table> -<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"><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 -rotamer specific and max_p is the maximum probablity of any of the rotamers -in <strong>rot_group</strong>. If you construct a rotamer group by the -ConstructRRMRotamerGroup/ConstructFRMRotamerGroup functions, this function -is already called at construction and the energies are properly assigned.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="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"><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"><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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – The dihedral angle of the current residue</li> -<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is n-terminal</li> -<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – Whether the residue is c-terminal</li> -</ul> -</td> -</tr> -</tbody> -</table> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<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"><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/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) – 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.</td> -</tr> -</tbody> -</table> -<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"><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 -rotamer specific and max_p is the maximum probablity of any of the rotamers -in <strong>rot_group</strong>. If you construct a rotamer group by the -ConstructRRMRotamerGroup/ConstructFRMRotamerGroup functions, this function -is already called at construction and the energies are properly assigned.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="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"><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"><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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – The index of the residue which is represented by ->>>>>>> develop <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> @@ -667,11 +464,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> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a> using ->>>>>>> develop 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 @@ -680,7 +473,6 @@ 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"> -<<<<<<< HEAD <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 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> @@ -708,42 +500,12 @@ M_VINAParticle <a class="reference internal" href="rotamer.html#promod3.sidechai 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>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> -======= -<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"><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"><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/mol/base/entity/#ost.mol.AtomHandle" title="(in OpenStructure v1.10.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"><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"><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"><span class="pre">FrameResidue</span></code></a>.</li> ->>>>>>> develop </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"> -<<<<<<< HEAD <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> @@ -751,15 +513,6 @@ corresponding <a class="reference internal" href="rotamer.html#promod3.sidechain </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> -======= -<li><strong>res</strong> (<a class="reference external" href="https://www.openstructure.org/docs/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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"><span class="pre">FrameResidue</span></code></a></p> ->>>>>>> develop </td> </tr> </tbody> @@ -769,28 +522,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> -<<<<<<< HEAD <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> ->>>>>>> develop <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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> <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-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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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"><span class="pre">RRMRotamer</span></code></a></td> ->>>>>>> develop </tr> </tbody> </table> @@ -799,31 +540,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> -<<<<<<< HEAD <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 ->>>>>>> develop 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"> -<<<<<<< HEAD <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> <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-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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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"><span class="pre">FRMRotamer</span></code></a></td> ->>>>>>> develop </tr> </tbody> </table> @@ -841,7 +569,6 @@ contains the atoms from <em>residue</em>.</p> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> -<<<<<<< HEAD <h1 class="logo"><a href="../index.html">ProMod3</a></h1> @@ -865,13 +592,6 @@ contains the atoms from <em>residue</em>.</p> <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> ->>>>>>> develop </ul> </li> </ul> @@ -887,11 +607,7 @@ contains the atoms from <em>residue</em>.</p> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> -<<<<<<< HEAD <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> ->>>>>>> develop <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> @@ -930,6 +646,9 @@ contains the atoms from <em>residue</em>.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/sidechain/rotamer_constructor.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/sidechain/rotamer_lib.html b/doc/html/sidechain/rotamer_lib.html index 63a20c973bec9c01a7534268be90be73159dd172..4b83caea4058a3d051a58fd71477ca32a32ad799 100644 --- a/doc/html/sidechain/rotamer_lib.html +++ b/doc/html/sidechain/rotamer_lib.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Rotamer Library — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Rotamer Library — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" /> ->>>>>>> develop <link rel="next" title="Rotamer Graph" href="graph.html" /> <link rel="prev" title="Rotamer Constructor" href="rotamer_constructor.html" /> @@ -131,13 +107,8 @@ 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"> -<<<<<<< HEAD <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> ->>>>>>> develop </ul> </td> </tr> @@ -165,11 +136,7 @@ special <em>id</em> requests.</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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> ->>>>>>> develop </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 probability sorted by their probability</td> @@ -262,7 +229,6 @@ 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"> -<<<<<<< HEAD <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> @@ -271,16 +237,6 @@ for details.</p> <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Configuration of chi1</li> -<li><strong>r2</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Configuration of chi2</li> -<li><strong>r3</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Configuration of chi3</li> -<li><strong>r4</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Configuration of chi4</li> -<li><strong>phi_bin</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Phi backbone dihedral description</li> -<li><strong>psi_bin</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – 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> ->>>>>>> develop </ul> </td> </tr> @@ -320,15 +276,9 @@ 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"> -<<<<<<< HEAD <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/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Phi backbone dihedral angle in range [-pi,pi[</li> -<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) – Psi backbone dihedral angle in range [-pi,pi[</li> ->>>>>>> develop </ul> </td> </tr> @@ -350,19 +300,11 @@ 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"> -<<<<<<< HEAD <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>, 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 -======= -<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"><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 ->>>>>>> develop be consistent across all phi/psi bins</li> </ul> <table class="docutils field-list" frame="void" rules="none"> @@ -485,13 +427,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> -<<<<<<< HEAD <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 ->>>>>>> develop 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> @@ -499,21 +436,12 @@ NaN.</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.0)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) – Source of dihedral angles</td> ->>>>>>> develop </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> -<<<<<<< HEAD <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"><a class="reference external" href="https://docs.python.org/2.7/library/exceptions.html#exceptions.RuntimeError" title="(in Python v2.7)"><code class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></code></a> 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 ->>>>>>> develop are present in <em>res</em>.</td> </tr> </tbody> @@ -532,13 +460,8 @@ 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"> -<<<<<<< HEAD <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/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.10.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> ->>>>>>> develop </ul> </td> </tr> @@ -597,11 +520,7 @@ the chi2 is checked for its actual value, but also for its flipped state.</p> <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 considered similar</li> -<<<<<<< HEAD <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> ->>>>>>> develop </ul> </td> </tr> @@ -659,11 +578,7 @@ for its actual value, but also for its flipped state.</p> (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 considered similar</li> -<<<<<<< HEAD <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> ->>>>>>> develop </ul> </td> </tr> @@ -728,15 +643,9 @@ to also return NON_ROTAMERIC (e.g. chi2 for ASN).</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"> -<<<<<<< HEAD <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/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) – Specifies angle (0 => chi1, ..., 3 => chi4)</li> ->>>>>>> develop </ul> </td> </tr> @@ -797,11 +706,7 @@ valid and non rotameric, INVALID otherwise.</p> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="../users.html">Documentation For Users</a><ul> -<<<<<<< HEAD <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> ->>>>>>> develop <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> @@ -840,6 +745,9 @@ valid and non rotameric, INVALID otherwise.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/sidechain/rotamer_lib.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/sidechain/subrotamer_optimizer.html b/doc/html/sidechain/subrotamer_optimizer.html index 23010bcaa63ad70cafe3e4516d7b6828ba675773..d39e51b0673432827a9baf6b941badfed5f205b2 100644 --- a/doc/html/sidechain/subrotamer_optimizer.html +++ b/doc/html/sidechain/subrotamer_optimizer.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Subrotamer Optimization — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> -======= - - <title>Subrotamer Optimization — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '../', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="../index.html" /> - <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" /> ->>>>>>> develop <link rel="next" title="scoring - Loop Scoring" href="../scoring/index.html" /> <link rel="prev" title="Loading Rotamer Libraries" href="loading.html" /> @@ -186,6 +162,9 @@ internal <a class="reference internal" href="graph.html#promod3.sidechain.Rotame Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="../_sources/sidechain/subrotamer_optimizer.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/user_contributions.html b/doc/html/user_contributions.html index fd5efd52966642e3f171f6175eb9f4c809cdedb2..32ec6a533cb3e9c3191e6e4d8d987fe3212d9f66 100644 --- a/doc/html/user_contributions.html +++ b/doc/html/user_contributions.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Contributing — ProMod3 2.0.0 documentation</title> + <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> @@ -17,29 +16,6 @@ <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> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> -======= - - <title>Contributing — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: './', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="index.html" /> - <link rel="up" title="Documentation For Users" href="users.html" /> ->>>>>>> develop <link rel="next" title="Documentation For Developers" href="developers.html" /> <link rel="prev" title="SetCompoundsChemlib()" href="core/setcompoundschemlib.html" /> @@ -152,6 +128,9 @@ information on that matter in the developer section of the documentation Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="_sources/user_contributions.rst.txt" + rel="nofollow">Page source</a> </div> diff --git a/doc/html/users.html b/doc/html/users.html index 4fd90e479b17d92b8cf3626c680d7753e20fbc93..890f72d141b8ed42ee424547191d7adacebdbb10 100644 --- a/doc/html/users.html +++ b/doc/html/users.html @@ -6,8 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<<<<<<< HEAD - <title>Documentation For Users — ProMod3 2.0.0 documentation</title> + <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> @@ -17,28 +16,6 @@ <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> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> -======= - - <title>Documentation For Users — ProMod3 2.1.0 documentation</title> - - <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: './', - VERSION: '2.1.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 type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script> - <link rel="top" title="ProMod3 2.1.0 documentation" href="index.html" /> ->>>>>>> develop <link rel="next" title="Getting Started" href="gettingstarted.html" /> <link rel="prev" title="ProMod3" href="index.html" /> @@ -97,11 +74,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> -<<<<<<< HEAD <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> ->>>>>>> develop <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> @@ -222,6 +195,9 @@ scripts using the functionality of this library.</p> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.1</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + | + <a href="_sources/users.rst.txt" + rel="nofollow">Page source</a> </div>