Dear Jörg,
I have tried to put together a simple example of constrained alignment
using a constraintMap.
The gist is here:
https://gist.github.com/ptosco/d948935d41c9f2ab6cae958da56b50a4
while its HTML counterpart (easier for visualizing 3Dmol.js objects) is
here:
http://htmlpreview.github.io/?https://gist.githubusercontent.com/ptosco/e5ec85fe17810e7e3e67120ed9435226/raw/9e9f83543d7c72d5fee993ae04b9397b7d1e12d9/o3a_restraints.html
I hope this helps, cheers
p.
On 18/06/2019 08:37, Jörg Kurt Wegner wrote:
Hi Paolo, works like a charm. I did not know you can pass the CID
directly, so had a workaround via molblocks, which did not work.
Thanks again.
Now I stumble over another challenge. If I interpret it correctly then
I should be able to SMARTS match atoms, even if they are different
elements, as long as the SMARTS matching and the weight vectors are
the same.
The returned SMARTS matches are integer tuples, the RDKit test cases
use constraintMap=[[query3dd_contraint_idx,
references3dd_contraint_idx]], but use often only single integers.
It seems the syntax is wrong? I seem to define the contraint map
wrong, any hints? Ever seen this or worked with contraint maps?
query3dd_contraint_idx = query3d.GetSubstructMatch(smartsQuery)
references3dd_contraint_idx = references3d.GetSubstructMatch(smartsQuery)
rdMolAlign.GetO3A(query3d, references3d, query3d_props, references3d_props,constraintMap=[[query3dd_contraint_idx, references3dd_contraint_idx]],
constraintWeights=contraint_weights, prbCid=cid)
Cheers
/.Joerg
On Sun, Jun 16, 2019 at 8:51 PM Paolo Tosco
<paolo.tosco.m...@gmail.com <mailto:paolo.tosco.m...@gmail.com>> wrote:
Dear Jörg,
I have just tried this and it seems to work for me.
I have created a gist here which shows an example usage on
multiple conformations:
https://gist.github.com/ptosco/b9b7341251457fe26441dc17609ae34a
As the notebook contains 3Dmol.js renderings that won't show up in
the gist, I have also created an HTML version which may be more
convenient for you to browse here:
http://htmlpreview.github.io/?https://gist.githubusercontent.com/ptosco/2bc42766a1672f61135d7d7dcce72223/raw/302e459d98c9f4e2fd0f1f2b23221d54c7bd2d8a/o3a.html
I think the problem in your case might originate from the fact
that when you call pyO3A.Align() the transformation is directly
applied to the query molecule, and the RMSD is returned.
If you call pyO3A.Trans() after calling pyO3A.Align() the
transformation will actually be an identity transformation, as the
query has already been aligned when Align() was called, so no
further transformation is required. So if you try to apply the
transformation to the original coordinates instead, that will
result in no change to the coordinates, being an identity.
If you only need the transformation to apply it at a later stage,
you should not call Align first.
I hope the above is clear; feel free to contact me if not (also
off-list).
Cheers,
Paolo
On 16/06/2019 17:56, Jörg Kurt Wegner wrote:
It seems the shape alignment is in a wrong 3D reference frame -
how to fix this?
Here a code snippet looping over all conformations, then finding
the one with the lowest score.
I was under the assumption "query3d" should be at the end in the
same reference frame as "references3d", but it is not? Has anyone
a working 3D shape alignment, ensuring things are truly aligned
in the same reference frame? Thanks /.Joerg
pyO3A=rdMolAlign.GetO3A(query3d_conf, references3d)
rmsd=pyO3A.Align()
score = pyO3A.Score()
rmsd, trans_matrix = pyO3A.Trans()
if highestConfId!=-1:
rdkit.Chem.AllChem.TransformMol(query3d, trans_matrix,
confId=highestConfId, keepConfs=True)
--
LinkedIn <http://linkedin.com/in/joergkurtwegner>, Twitter
<http://twitter.com/joergkurtwegner>, FaceBook
<http://www.facebook.com/joergkurtwegner>
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
<mailto:Rdkit-discuss@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
--
LinkedIn <http://linkedin.com/in/joergkurtwegner>, Twitter
<http://twitter.com/joergkurtwegner>, FaceBook
<http://www.facebook.com/joergkurtwegner>
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss