Re: [Rdkit-discuss] AllChem.GetConformerRMSD: this is not RMSD between two conformers but an upper bound of it

2017-06-15 Thread Brian Kelley
Thanks for the documentation fix, I had read the same as Francois.




Brian Kelley

> On Jun 15, 2017, at 8:02 AM, Greg Landrum  wrote:
> 
> 
> 
>> On Thu, Jun 15, 2017 at 6:30 AM, Francois BERENGER 
>>  wrote:
>> 
>> I am afraid that in AllChem.GetConfomerRMSD: one doesn't get the RMSD
>> between the two conformers but an upper bound of it.
> 
> The documentation to this function is misleading:
> 
> In [21]: AllChem.GetConformerRMS?
> Signature: AllChem.GetConformerRMS(mol, confId1, confId2, atomIds=None, 
> prealigned=False)
> Docstring:
> Returns the RMS between two conformations.
> By default, the conformers will be aligned to the first conformer
> of the molecule (i.e. the reference) before RMS calculation and,
> as a side-effect, will be left in the aligned state.
> 
> Arguments:
>   - mol:the molecule
>   - confId1:the id of the first conformer
>   - confId2:the id of the second conformer
>   - atomIds:(optional) list of atom ids to use a points for
> alingment - defaults to all atoms
>   - prealigned: (optional) by default the conformers are assumed
> be unaligned and will therefore be aligned to the
> first conformer
> 
> 
> The alignment is done to the first conformer (i.e confId1).[1]
> Here's a demonstration of that:
> In [31]: AllChem.GetConformerRMS(m,0,1,prealigned=True)
> Out[31]: 9.1593890932638349
> 
> In [32]: AllChem.GetConformerRMS(m,0,2,prealigned=True)
> Out[32]: 3.8219771356556071
> 
> In [33]: AllChem.GetConformerRMS(m,1,2,prealigned=True)
> Out[33]: 8.597878324406647
> 
> In [34]: AllChem.GetConformerRMS(m,1,2)
> Out[34]: 1.1067869816465845   # conformer 2 is now aligned to conformer 1
> 
> In [35]: AllChem.GetConformerRMS(m,0,1,prealigned=True)
> Out[35]: 9.1593890932638349   # the RMS between confs 0 and 1 hasn't changed
> 
> In [36]: AllChem.GetConformerRMS(m,0,2,prealigned=True)
> Out[36]: 9.4691776880629508   # the RMS between confs 0 and 2 has changed
> 
> I will clean that documentation up.
> 
> 
> -greg
> [1] since that's a "conformer of the molecule" the documentation isn't 
> actually wrong, but it's misleading enough to be effectively wrong.
>  
>> 
>> I understand from the doc that if they are aligned, they are aligned
>> to the first conformer of the molecule.
>> 
>> To get the real RMSD between two conformers, they must
>> be superimposed together, not to a third conformer.
>> 
>> Please tell me if I'm wrong.
>> 
>> Regards,
>> F.
>> 
>> --
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> ___
>> Rdkit-discuss mailing list
>> Rdkit-discuss@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
> 
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> Rdkit-discuss mailing list
> Rdkit-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


Re: [Rdkit-discuss] AllChem.GetConformerRMSD: this is not RMSD between two conformers but an upper bound of it

2017-06-15 Thread Brian Kelley
The function you want is GetBestRMS, note that you can set the conformer idx 
for the probe and ref.

http://www.rdkit.org/Python_Docs/rdkit.Chem.AllChem-module.html#GetBestRMS


Brian Kelley

> On Jun 15, 2017, at 5:30 AM, Francois BERENGER 
>  wrote:
> 
> Hello,
> 
> I am afraid that in AllChem.GetConfomerRMSD: one doesn't get the RMSD
> between the two conformers but an upper bound of it.
> 
> I understand from the doc that if they are aligned, they are aligned
> to the first conformer of the molecule.
> 
> To get the real RMSD between two conformers, they must
> be superimposed together, not to a third conformer.
> 
> Please tell me if I'm wrong.
> 
> Regards,
> F.
> 
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> Rdkit-discuss mailing list
> Rdkit-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


Re: [Rdkit-discuss] AllChem.GetConformerRMSD: this is not RMSD between two conformers but an upper bound of it

2017-06-15 Thread Greg Landrum
On Thu, Jun 15, 2017 at 6:30 AM, Francois BERENGER <
beren...@bioreg.kyushu-u.ac.jp> wrote:

>
> I am afraid that in AllChem.GetConfomerRMSD: one doesn't get the RMSD
> between the two conformers but an upper bound of it.
>

The documentation to this function is misleading:

In [21]: AllChem.GetConformerRMS?
Signature: AllChem.GetConformerRMS(mol, confId1, confId2, atomIds=None,
prealigned=False)
Docstring:
Returns the RMS between two conformations.
By default, the conformers will be aligned to the first conformer
of the molecule (i.e. the reference) before RMS calculation and,
as a side-effect, will be left in the aligned state.

Arguments:
  - mol:the molecule
  - confId1:the id of the first conformer
  - confId2:the id of the second conformer
  - atomIds:(optional) list of atom ids to use a points for
alingment - defaults to all atoms
  - prealigned: (optional) by default the conformers are assumed
be unaligned and will therefore be aligned to the
first conformer



The alignment is done to the first conformer (i.e confId1).[1]
Here's a demonstration of that:

In [31]: AllChem.GetConformerRMS(m,0,1,prealigned=True)
Out[31]: 9.1593890932638349

In [32]: AllChem.GetConformerRMS(m,0,2,prealigned=True)
Out[32]: 3.8219771356556071

In [33]: AllChem.GetConformerRMS(m,1,2,prealigned=True)
Out[33]: 8.597878324406647

In [34]: AllChem.GetConformerRMS(m,1,2)
Out[34]: 1.1067869816465845   # conformer 2 is now aligned to conformer 1

In [35]: AllChem.GetConformerRMS(m,0,1,prealigned=True)
Out[35]: 9.1593890932638349   # the RMS between confs 0 and 1 hasn't changed

In [36]: AllChem.GetConformerRMS(m,0,2,prealigned=True)
Out[36]: 9.4691776880629508   # the RMS between confs 0 and 2 has changed


I will clean that documentation up.


-greg
[1] since that's a "conformer of the molecule" the documentation isn't
actually wrong, but it's misleading enough to be effectively wrong.


>
> I understand from the doc that if they are aligned, they are aligned
> to the first conformer of the molecule.
>
> To get the real RMSD between two conformers, they must
> be superimposed together, not to a third conformer.
>
> Please tell me if I'm wrong.
>
> Regards,
> F.
>
> 
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> Rdkit-discuss mailing list
> Rdkit-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss