Dear Evgueni,

this is a general interest answer, so I'm directing it to the mailing list.

On Fri, Aug 15, 2008 at 11:56 AM, Evgueni Kolossov
<ekolos...@btinternet.com> wrote:
>
> I need to understand a little bit more about RingInfo.
> For a given atom I got:
> - the number of rings atom involved (pRingInfo->numAtomRings(Atom_Idx))
> - the size of the smallest ring atom involved
> (pRingInfo->minAtomRingSize(Atom_Idx))

correct.

> Now I need to iterate through the atoms in the smallest ring with my atom. I
> can get atoms using pRingInfo->atomRings() but how I know this will give me
> the list of atoms in the smallest ring and in the ring where is my atom?

sample code, not actually tested, should give the idea:

unsigned int minRingSize=ringInfo->minAtomRingSize(atomIdx);
for(VECT_INT_VECT_CI ringIt=ringInfo->atomRings().begin();
    ringIt!=ringInfo->atomRings().end();++ringIt){
  if(ringIt->size()==minRingSize){
    if(std::find(ringIt->begin(),ringIt->end(),atomIdx)!=ringIt->end()){
      // our atom is in this ring; do something
    }
  }
 }
}


> What if my atom is a member of more than one ring?

The above code should work in that case as well.

-greg

Reply via email to