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 <mailto: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 <mailto: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
        <mailto: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
    <mailto: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