diff --git a/modules/bindings/pymod/tmtools.py b/modules/bindings/pymod/tmtools.py index bdc62a06a31e2e3fb5e536b2fa5c1a6f426ad8bb..0d158d77f402012df9fed8edc8692e5a313a51e1 100644 --- a/modules/bindings/pymod/tmtools.py +++ b/modules/bindings/pymod/tmtools.py @@ -144,9 +144,9 @@ class TMScoreResult: The RMSD of the common Calpha atoms of both structures - .. attribute:: rmsd_below_five + .. attribute:: rmsd_below_five - The RMSD of all Calpha atoms that can be superposed below five Angstroem + The RMSD of all Calpha atoms that can be superposed below five Angstroem .. attribute:: tm_score diff --git a/modules/db/doc/db.rst b/modules/db/doc/db.rst index 2333b5aa91875af5724461decb213d18462545ab..a296c1ec6e5db939085a79dab3563841a38c5b39 100644 --- a/modules/db/doc/db.rst +++ b/modules/db/doc/db.rst @@ -304,3 +304,89 @@ use an indexer to keep track of where to find data for a certain entry. :returns: The number of stored positions :rypte: :class:`int` + +Data Extraction +-------------------------------------------------------------------------------- + +Openstructure provides data extraction functionality for the following scenario: +There are three binary container. A position container to hold CA-positions +(:class:`LinearPositionContainer`), a SEQRES container and +an ATOMSEQ container (both: :class:`LinearCharacterContainer`). +They contain entries from the protein structure database +and sequence/position data is relative to the SEQRES of those entries. +This means, if the SEQRES has more characters as there are resolved residues +in the structure, the entry in the position container still contains the exact +number of SEQRES characters but some position remain invalid. Thats where the +ATOMSEQ container comes in. It only contains matching residues to the SEQRES but +marks non-resolved residues with '-'. + +.. method:: ExtractValidPositions(entry_name, chain_name, indexer, \ + atomseq_container, position_container, \ + seq, positions) + + Iterates over all data for a chain specified by *entry_name* and *chain_name*. + For every data point marked as valid in the *atomseq_container* (character at + that position is not '-'), the character and the corresponding position are + added to *seq* and *positions* + + :param entry_name: Name of assembly you want the data from + :param chain_name: Name of chain you want the data from + :param indexer: Used to access *atomseq_container* and + *position_container* + :param atomseq_container: Container that marks locations with invalid position + data with '-' + :param position_container: Container containing position data + :param seq: Sequence with extracted valid positions gets stored + in here. + :param positions: The extracted valid positions get stored in here + + :type entry_name: :class:`str` + :type chain_name: :class:`str` + :type indexer: :class:`LinearIndexer` + :type atomseq_container: :class:`LinearCharacterContainer` + :type position_container: :class:`LinearPositionContainer` + :type seq: :class:`ost.seq.SequenceHandle` + :type positions: :class:`ost.geom.Vec3List` + + :raises: :exc:`ost.Error` if requested data is not present + + +.. method:: ExtractTemplateData(entry_name, chain_name, aln, indexer, \ + seqres_container, atomseq_container, \ + position_container) + + Let's say we have a target-template alignment in *aln* (first seq: target, + second seq: template). This function extracts all valid template positions + given the entry specified by *entry_name* and *chain_name*. The template + sequence in *aln* must match the sequence in *seqres_container*. Again, + the *atomseq_container* is used to identify valid positions. The according + residue numbers relative to the target sequence in *aln* are also returned. + + :param entry_name: Name of assembly you want the data from + :param chain_name: Name of chain you want the data from + :param aln: Target-template sequence alignment + :param indexer: Used to access *atomseq_container*, *seqres_container* + and *position_container* + :param seqres_container: Container containing the full sequence data + :param atomseq_container: Container that marks locations with invalid position + data with '-' + :param position_container: Container containing position data + + :type entry_name: :class:`str` + :type chain_name: :class:`str` + :type aln: :ost.seq.SequenceHandle: + :type indexer: :class:`LinearIndexer` + :type seqres_container: :class:`LinearCharacterContainer` + :type atomseq_container: :class:`LinearCharacterContainer` + :type position_container: :class:`LinearPositionContainer` + + :returns: First element: :class:`list` of residue numbers that + relate each entry in the second element to the target + sequence specified in *aln*. The numbering scheme + starts from one. Second Element: :class:`geom.Vec3List` + with the according positions. + :rtype: :class:`tuple` + + :raises: :exc:`ost.Error` if requested data is not present in + the container or if the template sequence in *aln* + doesn't match with the sequence in *seqres_container* diff --git a/modules/index.rst b/modules/index.rst index 9ab3fdd1ddeaa810a0cfddeaa3c28083c3f22a9c..4b1b1d3c11c7a6b2c0ae585919ebe8479764576f 100644 --- a/modules/index.rst +++ b/modules/index.rst @@ -19,6 +19,7 @@ OpenStructure documentation img/alg/alg seq/base/seq seq/alg/seqalg + db/db bindings/bindings @@ -109,6 +110,8 @@ Varia **Actions**: :doc:`OST Actions<actions>` +**Database**: :doc:`Efficiently store structural data<db/db>` + Extending OpenStructure --------------------------------------------------------------------------------