Skip to content
Snippets Groups Projects
Commit 374eb5f8 authored by Gerardo Tauriello's avatar Gerardo Tauriello
Browse files

Merge branch 'develop' into dockerize

parents 1ddb7ab9 cf65c48e
No related branches found
No related tags found
No related merge requests found
...@@ -5,10 +5,12 @@ Changes in Release <RELEASE NUMBER> ...@@ -5,10 +5,12 @@ Changes in Release <RELEASE NUMBER>
change in the API. Mapping functions CopyResidue, CopyConserved and change in the API. Mapping functions CopyResidue, CopyConserved and
CopyNonConserved that were previousely imported from ost.conop are now CopyNonConserved that were previousely imported from ost.conop are now
to be imported from ost.mol.alg. to be imported from ost.mol.alg.
* Added Molck API to the ost.mol.alg module.
* Removed habit of changing secondary structure of entities when loading * Removed habit of changing secondary structure of entities when loading
from mmCIF PDB files. Before, OST would turn secondary structure 'EEH' from mmCIF PDB files. Before, OST would turn secondary structure 'EEH'
into 'ECH' to make it look nicer in DNG. Now, 'EEH' stays 'EEH'. into 'ECH' to make it look nicer in DNG. Now, 'EEH' stays 'EEH'.
* Added Molck API to the ost.mol.alg module.
* Extended lDDT API in ost.mol.alg module to reproduce functionality of lddt
binary.
Changes in Release 1.7.1 Changes in Release 1.7.1
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
...@@ -20,7 +22,7 @@ Changes in Release 1.7.1 ...@@ -20,7 +22,7 @@ Changes in Release 1.7.1
* Fixed unit tests * Fixed unit tests
* Improved documentation * Improved documentation
Changes in Release 1.7 Changes in Release 1.7.0
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
* Removed Qt dependency for non-GUI compilation and fixed issues with recent * Removed Qt dependency for non-GUI compilation and fixed issues with recent
...@@ -36,13 +38,13 @@ Changes in Release 1.7 ...@@ -36,13 +38,13 @@ Changes in Release 1.7
* Large updates for documentation * Large updates for documentation
* Several minor bug fixes, improvements, and speed-ups * Several minor bug fixes, improvements, and speed-ups
Changes in Release 1.6 Changes in Release 1.6.0
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
* Added code to compare structures attached to a multiple seq. aln. * Added code to compare structures attached to a multiple seq. aln.
* Incorporated Antechamber based force-field parameter generation for mm mod. * Incorporated Antechamber based force-field parameter generation for mm mod.
Changes in Release 1.5 Changes in Release 1.5.0
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
* Added binding to 3DComb (structural alignment) * Added binding to 3DComb (structural alignment)
...@@ -62,7 +64,7 @@ Changes in Release 1.5 ...@@ -62,7 +64,7 @@ Changes in Release 1.5
* Added a wrapper to HHblits. * Added a wrapper to HHblits.
* Removed levenberg_marquardt.h in img/alg * Removed levenberg_marquardt.h in img/alg
Changes in Release 1.4 Changes in Release 1.4.0
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
* Feasibility check set to off by default, atoms in compounds are now * Feasibility check set to off by default, atoms in compounds are now
...@@ -150,7 +152,7 @@ Changes in Release 1.2.1 ...@@ -150,7 +152,7 @@ Changes in Release 1.2.1
* lDDT: Updated default angle and bond tolerance parameters from 8 stddev to 12 * lDDT: Updated default angle and bond tolerance parameters from 8 stddev to 12
stddev. stddev.
Changes in Release 1.2 (since 1.1) Changes in Release 1.2.0 (since 1.1.0)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
* added mmCIF parser to enable loading of mmCIF files. The following categories * added mmCIF parser to enable loading of mmCIF files. The following categories
......
...@@ -16,7 +16,7 @@ selections in a convenient way. Selections are carried out mainly by calling the ...@@ -16,7 +16,7 @@ selections in a convenient way. Selections are carried out mainly by calling the
.. code-block:: python .. code-block:: python
arginines=model.Select('rname=ARG') arginines = model.Select('rname=ARG')
A simple selection query (called a predicate) consists of a property (here, A simple selection query (called a predicate) consists of a property (here,
`rname`), a comparison operator (here, `=`) and an argument (here, `ARG`). The `rname`), a comparison operator (here, `=`) and an argument (here, `ARG`). The
...@@ -24,7 +24,7 @@ return value of a call to the :meth:`EntityHandle.Select` method is always an ...@@ -24,7 +24,7 @@ return value of a call to the :meth:`EntityHandle.Select` method is always an
:class:`EntityView`. The :class:`EntityView` always contains a full hierarchy of :class:`EntityView`. The :class:`EntityView` always contains a full hierarchy of
elements, never standalone separated elements. In the above example, the elements, never standalone separated elements. In the above example, the
:class:`EntityView` called `arginines` will contain all chains from the :class:`EntityView` called `arginines` will contain all chains from the
structure called 'model' that have at least one arginine. In turn these chains structure called `model` that have at least one arginine. In turn these chains
will contain all residues that have been identified as arginines. The residues will contain all residues that have been identified as arginines. The residues
themselves will contain references to all of their atoms. Of course, queries are themselves will contain references to all of their atoms. Of course, queries are
not limited to selecting residues based on their type, it is also possible to not limited to selecting residues based on their type, it is also possible to
...@@ -32,9 +32,9 @@ select atom by name: ...@@ -32,9 +32,9 @@ select atom by name:
.. code-block:: python .. code-block:: python
c_betas=model.Select('aname=CB') c_betas = model.Select('aname=CB')
As before, c`betas is an instance of an :class:`EntityView` object and contains As before, `c_betas` is an instance of an :class:`EntityView` object and contains
a full hierarchy. The main difference to the previous example is that the a full hierarchy. The main difference to the previous example is that the
selected residues do not contain a list of all of their atoms but only the selected residues do not contain a list of all of their atoms but only the
C-beta. These examples clarify why the name 'view' was chosen for this result of C-beta. These examples clarify why the name 'view' was chosen for this result of
...@@ -45,8 +45,17 @@ Both the selection statements that have been used so far take strings as their a ...@@ -45,8 +45,17 @@ Both the selection statements that have been used so far take strings as their a
.. code-block:: python .. code-block:: python
n_term=model.Select('rnum<=20') n_term = model.Select('rnum<=20')
If you want to supply arguments with special characters they need to be put in
quotation marks. For instance, this is needed to select the chain named "_" or
for any chain name conatining ".", " " or ",". Hence, chain "_" can be selected
with:
.. code-block:: python
model.Select('cname="_"')
Combining predicates Combining predicates
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...@@ -60,25 +69,25 @@ Compact forms are available for several selection statements. For example, to se ...@@ -60,25 +69,25 @@ Compact forms are available for several selection statements. For example, to se
.. code-block:: python .. code-block:: python
arg_and_asn=model.Select('rname=ARG or rname=ASN') arg_and_asn = model.Select('rname=ARG or rname=ASN')
However, this is rather cumbersome as it requires the word `rname` to be typed twice. Since the only difference between the two parts of the selection is the argument that follows the word `rname`, the statement can also be written in an abbreviated form: However, this is rather cumbersome as it requires the word `rname` to be typed twice. Since the only difference between the two parts of the selection is the argument that follows the word `rname`, the statement can also be written in an abbreviated form:
.. code-block:: python .. code-block:: python
arg_and_asn=model.Select('rname=ARG,ASN') arg_and_asn = model.Select('rname=ARG,ASN')
Another example: to select residues with numbers in the range 130 to 200, one could use the following statement Another example: to select residues with numbers in the range 130 to 200, one could use the following statement
.. code-block:: python .. code-block:: python
center=model.Select('rnum>=130 and rnum<=200') center = model.Select('rnum>=130 and rnum<=200')
or alternatively use the much nicer syntax: or alternatively use the much nicer syntax:
.. code-block:: python .. code-block:: python
center=model.Select('rnum=130:200') center = model.Select('rnum=130:200')
This last statement is completely equivalent to the previous one. This syntax This last statement is completely equivalent to the previous one. This syntax
can be used when the selection statement requires a range of integer values can be used when the selection statement requires a range of integer values
...@@ -91,25 +100,38 @@ The query ...@@ -91,25 +100,38 @@ The query
.. code-block:: python .. code-block:: python
around_center=model.Select('5 <> {0,0,0}') around_center = model.Select('5 <> {0,0,0}')
selects all chains, residues and atoms that lie with 5 Å to the origin of the reference system ({0,0,0}). The `<>` operator is called the ‘within’ operator. selects all chains, residues and atoms that lie with 5 Å to the origin of the
Instead of a point, the within statements can also be used to return a view containing all chains, residues and atoms within a radius of another selection statement applied to the same entity. Square brackets are used to delimit the inner query statement. reference system ({0,0,0}). The `<>` operator is called the 'within' operator.
Instead of a point, the within statements can also be used to return a view
containing all chains, residues and atoms within a radius of another selection
statement applied to the same entity. Square brackets are used to delimit the
inner query statement.
.. code-block:: python .. code-block:: python
around_hem=model.Select('5 <> [rname=HEM]') around_hem = model.Select('5 <> [rname=HEM]')
model.Select('5 <> [rname=HEM and ele=C] and rname!=HEM') model.Select('5 <> [rname=HEM and ele=C] and rname!=HEM')
Bonds and Queries Bonds and Queries
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
When an :class:`EntityView` is generated by a selection, it includes by default only bonds for which both connected atoms satisfy the query statement. This can be changed by passing the parameters `EXCLUSIVE_BONDS` or `NO_BONDS` when calling the Select method. `EXCLUSIVE_BONDS` adds bonds to the :class:`EntityView` when at least one of the two atoms falls within the boundary of the selection. `NO_BONDS` suppresses the bond inclusion step completely. When an :class:`EntityView` is generated by a selection, it includes by default
only bonds for which both connected atoms satisfy the query statement. This can
be changed by passing the parameters `EXCLUSIVE_BONDS` or `NO_BONDS` when
calling the Select method. `EXCLUSIVE_BONDS` adds bonds to the
:class:`EntityView` when at least one of the two atoms falls within the boundary
of the selection. `NO_BONDS` suppresses the bond inclusion step completely.
Whole Residue Queries Whole Residue Queries
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If the parameter `MATCH_RESIDUES` is passed when the Select method is called, the resulting :class:`EntityView` will include whole residues for which at least one atom satisfies the query. This means that if at least one atom in the residue falls within the boundaries of the selection, all atoms of the residue will be included in the View. If the parameter `MATCH_RESIDUES` is passed when the Select method is called,
the resulting :class:`EntityView` will include whole residues for which at least
one atom satisfies the query. This means that if at least one atom in the
residue falls within the boundaries of the selection, all atoms of the residue
will be included in the View.
More Query Usage More Query Usage
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...@@ -141,9 +163,9 @@ they are defined. Therefore, all generic properties start with a `g`, followed b ...@@ -141,9 +163,9 @@ they are defined. Therefore, all generic properties start with a `g`, followed b
chain_handle.SetIntProp("testpropchain", 10) chain_handle.SetIntProp("testpropchain", 10)
# query statements # query statements
sel_a=e.Select("gatestpropatom<=10.0") sel_a = e.Select("gatestpropatom<=10.0")
sel_r=e.Select("grtestpropres=1.0") sel_r = e.Select("grtestpropres=1.0")
sel_c=e.Select("gctestpropchain>5") sel_c = e.Select("gctestpropchain>5")
Since generic properties do not need to be defined for all parts of an entity Since generic properties do not need to be defined for all parts of an entity
(e.g. it could be specified for one single :class:`AtomHandle`), the query (e.g. it could be specified for one single :class:`AtomHandle`), the query
...@@ -154,11 +176,11 @@ statement which can be done using a ':' character: ...@@ -154,11 +176,11 @@ statement which can be done using a ':' character:
# if one or more atoms have no generic properties # if one or more atoms have no generic properties
sel=e.Select("gatestprop=5") sel = e.Select("gatestprop=5")
# this will throw an error # this will throw an error
# you can specify a default value: # you can specify a default value:
sel=e.Select("gatestprop:1.0=5") sel = e.Select("gatestprop:1.0=5")
# this will run through smoothly and use 1.0 as # this will run through smoothly and use 1.0 as
# the default value for all atoms that do not # the default value for all atoms that do not
# have the generic property 'testprop' # have the generic property 'testprop'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment