17#include <boost/dynamic_bitset.hpp>
18#include <boost/shared_ptr.hpp>
20#include <RingDecomposerLib.h>
151 unsigned int size)
const;
228 unsigned int size)
const;
326 void initFusedRings();
329 DataType d_atomMembers, d_bondMembers;
330 VECT_INT_VECT d_atomRings, d_bondRings;
331 VECT_INT_VECT d_atomRingFamilies, d_bondRingFamilies;
332 std::vector<boost::dynamic_bitset<>> d_fusedRings;
333 std::vector<unsigned int> d_numFusedBonds;
RingInfo(RingInfo &&other) noexcept=default
const VECT_INT_VECT & atomRings() const
bool areBondsInSameRing(unsigned int idx1, unsigned int idx2) const
unsigned int numRingFamilies() const
returns the total number of ring families
bool areRingsFused(unsigned int ring1Idx, unsigned int ring2Idx)
RingInfo & operator=(RingInfo &&other) noexcept=default
unsigned int addRingFamily(const INT_VECT &atomIndices, const INT_VECT &bondIndices)
adds a ring family to our data
bool areAtomsInSameRing(unsigned int idx1, unsigned int idx2) const
boost::shared_ptr< RDL_data > dp_urfData
bool isRingFused(unsigned int ringIdx)
returns whether ring with index ringIdx is fused with other rings.
const VECT_INT_VECT & bondRingFamilies() const
returns our bond ring family vectors
unsigned int numRings() const
returns the total number of rings
RingInfo & operator=(const RingInfo &other)=default
std::vector< MemberType > DataType
unsigned int numBondRings(unsigned int idx) const
returns the number of rings bond idx is involved in
VECT_INT_VECT atomRelevantCycles() const
bool areAtomsInSameRingOfSize(unsigned int idx1, unsigned int idx2, unsigned int size) const
unsigned int minBondRingSize(unsigned int idx) const
returns the size of the smallest ring bond idx is involved in
const VECT_INT_VECT & atomRingFamilies() const
returns our atom ring family vectors
RingInfo(const RingInfo &other)=default
const INT_VECT & atomMembers(unsigned int idx) const
unsigned int numFusedBonds(unsigned int ringIdx)
INT_VECT atomRingSizes(unsigned int idx) const
const VECT_INT_VECT & bondRings() const
const INT_VECT & bondMembers(unsigned int idx) const
std::vector< int > INT_VECT
RDKit::FIND_RING_TYPE getRingType() const
void initialize(RDKit::FIND_RING_TYPE ringType=FIND_RING_TYPE_OTHER_OR_UNKNOWN)
does initialization
bool isSssrOrBetter() const
std::vector< unsigned int > fusedRingNeighbors(unsigned int ringIdx)
bool isAtomInRingOfSize(unsigned int idx, unsigned int size) const
returns whether or not the atom with index idx is in a size - ring.
void reset(bool resetRingFamilies=true)
blows out all current data and de-initializes
unsigned int numRelevantCycles() const
returns the total number of relevant cycles
unsigned int numFusedRingNeighbors(unsigned int ringIdx)
void preallocate(unsigned int numAtoms, unsigned int numBonds)
pre-allocates some memory to save time later
INT_VECT bondRingSizes(unsigned int idx) const
unsigned int addRing(const INT_VECT &atomIndices, const INT_VECT &bondIndices)
adds a ring to our data
void resetRingFamilies()
reset ring family information
bool areBondsInSameRingOfSize(unsigned int idx1, unsigned int idx2, unsigned int size) const
unsigned int numAtomRings(unsigned int idx) const
returns the number of rings atom idx is involved in
bool isBondInRingOfSize(unsigned int idx, unsigned int size) const
returns whether or not the bond with index idx is in a size - ring.
bool isInitialized() const
checks to see if we've been properly initialized
std::vector< int > MemberType
bool isFindFastOrBetter() const
bool areRingFamiliesInitialized() const
check if the ring families have been initialized
unsigned int minAtomRingSize(unsigned int idx) const
returns the size of the smallest ring atom idx is involved in
std::vector< INT_VECT > VECT_INT_VECT
#define RDKIT_GRAPHMOL_EXPORT
FIND_RING_TYPE
A class to store information about a molecule's rings.
@ FIND_RING_TYPE_OTHER_OR_UNKNOWN
@ FIND_RING_TYPE_SYMM_SSSR