Good point. It seems the algorithm uses bonds and not atoms, so radius 3
means include the next three bonds. Maybe Greg can comment here.

Best,

Peter


On Mon, Mar 27, 2017 at 10:39 AM Pavel Polishchuk <pavel_polishc...@ukr.net>
wrote:

> Thank you!
> That was a bug in my expectations. :)
>
> BTW, as I see from test examples for the 0 atom in CC1CC1 an environment
> with radius 3 exists. Thus, radius should be interpreted as a number of
> bonds from the rooted atom, not a number of atoms. I did not expect this as
> well.
>
>
> Pavel.
>
>  On 03/27/2017 04:22 PM, Peter Gedeck wrote:
>
> I checked the unit tests for this function and this is expected
> behaviour.
>
> Best
>
> Peter
>
> void test2() {
>   std::cout << "-----------------------\n Test2: Atom Environments"
>             << std::endl;
>   {
>     std::string smiles = "CC1CC1";
>     RWMol *mol = SmilesToMol(smiles);
>     TEST_ASSERT(mol);
>
>     PATH_TYPE pth = findAtomEnvironmentOfRadiusN(*mol, 1, 0);
>     TEST_ASSERT(pth.size() == 1);
>     TEST_ASSERT(pth[0] == 0);
>
>     pth = findAtomEnvironmentOfRadiusN(*mol, 2, 0);
>     TEST_ASSERT(pth.size() == 3);
>     TEST_ASSERT(pth[0] == 0);
>
>     pth = findAtomEnvironmentOfRadiusN(*mol, 3, 0);
>     TEST_ASSERT(pth.size() == 4);
>     TEST_ASSERT(pth[0] == 0);
>
>     pth = findAtomEnvironmentOfRadiusN(*mol, 4, 0);
>     *TEST_ASSERT(pth.size() == 0);*
>
>     pth = findAtomEnvironmentOfRadiusN(*mol, 1, 1);
>     TEST_ASSERT(pth.size() == 3);
>
>     pth = findAtomEnvironmentOfRadiusN(*mol, 2, 1);
>     TEST_ASSERT(pth.size() == 4);
>
>     pth = findAtomEnvironmentOfRadiusN(*mol, 3, 1);
>     *TEST_ASSERT(pth.size() == 0);*
>
>     delete mol;
>   }
>
>
> On Mon, Mar 27, 2017 at 10:00 AM Pavel Polishchuk <
> pavel_polishc...@ukr.net> wrote:
>
> I guessed why it occurred. I'm interested is it expected behavior?
> So, if a radius is greater than the number of available bonds in all
> directions from the rooted atom the function will return empty list as it
> considers that such environment does not exist. Is this a correct
> expectation?
>
>
> Pavel.
>
>
> On 03/27/2017 03:53 PM, Peter Gedeck wrote:
>
> Hello,
>
> The atom numbers start with 0. From the middle atom, there are no
> environments with radius 2. You will get a result if you use the first (=0)
> or the last (=2) atom. Try this:
>
> m = Chem.MolFromSmiles("NCO")
> i = Chem.FindAtomEnvironmentOfRadiusN(m, 1, 0)
> Chem.MolToSmiles(Chem.PathToSubmol(m, i))
> i = Chem.FindAtomEnvironmentOfRadiusN(m, 2, 0)
> Chem.MolToSmiles(Chem.PathToSubmol(m, i))
> i = Chem.FindAtomEnvironmentOfRadiusN(m, 3, 0)
> Chem.MolToSmiles(Chem.PathToSubmol(m, i))
>
> and you will get:
>
> 'CN'
> 'NCO'
> ''
>
> Is this more intuitive to you?
>
> Best,
>
> Peter
>
>
> On Mon, Mar 27, 2017 at 9:35 AM Pavel Polishchuk <pavel_polishc...@ukr.net>
> wrote:
>
> Dear RDKitters,
>
>    I found the issue with FindAtomEnvironmentOfRadiusN but this can be a
> feature. However, I did not findthis information in help and did not
> expect such behavior.
>    If I apply FindAtomEnvironmentOfRadiusN function to a small molecule
> and specify the radius greater than the size of the molecule the
> function returns empty list of bond indices (and empty mol).
>
> m = Chem.MolFromSmiles("NCO")
>
> i = Chem.FindAtomEnvironmentOfRadiusN(m, 1, 1)
> Chem.MolToSmiles(Chem.PathToSubmol(m, i))
>
> returns "NCO"
>
> i = Chem.FindAtomEnvironmentOfRadiusN(m, 2, 1)
> Chem.MolToSmiles(Chem.PathToSubmol(m, i))
>
> returns ""
>
>    In the latter case I expected the same output "NCO". Were my
> expectations mistaken?
>
> Kind regards,
> Pavel.
>
>
> ------------------------------------------------------------------------------
> 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
>
------------------------------------------------------------------------------
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

Reply via email to