/* * $Id$ * * Copyright (c) 2010, Novartis Institutes for BioMedical Research Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. * * Neither the name of Novartis Institutes for BioMedical Research Inc. * nor the names of its contributors may be used to endorse or promote * products derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ %typemap(javaimports) RDKit::ROMol " /** ROMol is a molecule class that is intended to have a fixed topology.

This is the primary class for most molecule operations.

If you need to be manipulating the molecule (e.g. adding or deleting atoms or bonds, use an RWMol instead.

@notes

  • each ROMol maintains a Dict of properties:
  • o Each property is keyed by name and can store an arbitrary type.
  • o Properties can be marked as calculated, in which case they will be cleared when the clearComputedProps() method is called.
  • o Because they have no impact upon chemistry, all property operations are const, this allows extra flexibility for clients who need to store extra data on ROMol objects.
  • each ROMol has collections of bookmarks for Atoms and Bonds:
  • o the Atom bookmarks and Bond bookmarks are stored separately from each other
  • o each bookmark, an integer, can map to more than one Atom or Bond
  • o these are currently used in molecule construction, but could also be useful for reaction mapping and the like
  • information about rings (SSSR and the like) is stored in the molecule's RingInfo pointer. */" %javamethodmodifiers RDKit::ROMol::addConformer ( Conformer * conf, bool assignId = false ) " /**

    Add a new conformation to the molecule.

    @param conf - conformation to be added to the molecule, this molecule takes ownership of the conformer assignId - a unique ID will be assigned to the conformation if true otherwise it is assumed that the conformation already has an (unique) ID set */ public"; %javamethodmodifiers RDKit::ROMol::beginAromaticAtoms ( ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::beginAtoms ( ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::beginBonds ( ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::beginHeteros ( ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::beginQueryAtoms ( QueryAtom const * what ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::clearAtomBookmark ( const int mark, ATOM_SPTR atom ) " /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::clearBondBookmark ( int mark, BOND_SPTR bond ) " /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::clearProp ( const std::string key ) const " /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::clearProp ( const char * key ) const " /**

    clears the value of a property

    @notes

  • if no property with name key exists, a KeyErrorException will be thrown.
  • if the property is marked as computed, it will also be removed from our list of computedProperties */ public"; %javamethodmodifiers RDKit::ROMol::endAromaticAtoms ( ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::endAtoms ( ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::endBonds ( ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::endHeteros ( ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::endQueryAtoms ( ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::getAtomBonds ( Atom const * at ) const" /**

    provides access to all Bond objects connected to an Atom

    @param at the atom whose neighbors we are looking for

    @example

    
    ... molPtr is a const ROMol * ...
    ... atomPtr is a const Atom * ...
    ROMol::OEDGE_ITER beg,end;
    boost::tie(beg,end) = molPtr->getAtomBonds(atomPtr);
    while(beg!=end){
    const BOND_SPTR bond=(*molPtr)[*beg];
    ... do something with the Bond ...
    ++beg;
    }
    
    or, if you need a non-const Bond *:

    ... molPtr is a ROMol * ... ... atomPtr is a const Atom * ... ROMol::OEDGE_ITER beg,end; boost::tie(beg,end) = molPtr->getAtomBonds(atomPtr); while(beg!=end){ BOND_SPTR bond=(*molPtr)[*beg]; ... do something with the Bond ... ++beg; } */ public"; %javamethodmodifiers RDKit::ROMol::getAtomDegree ( Atom::ATOM_SPTR at ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::getAtomNeighbors ( Atom::ATOM_SPTR at ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::getAtomNeighbors ( Atom const * at ) const" /**

    provides access to all neighbors around an Atom

    @param at the atom whose neighbors we are looking for

    @example

    
    ... molPtr is a const ROMol & ...
    ... atomPtr is a const Atom * ...
    ROMol::ADJ_ITER nbrIdx,endNbrs;
    boost::tie(nbrIdx,endNbrs) = molPtr.getAtomNeighbors(atomPtr);
    while(nbrIdx!=endNbrs){
    const ATOM_SPTR at=molPtr[*nbrIdx];
    ... do something with the Atom ...
    ++nbrIdx;
    }
    
    */ public"; %javamethodmodifiers RDKit::ROMol::getAtomWithIdx ( unsigned int idx ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::getBondBetweenAtoms ( unsigned int idx1, unsigned int idx2 ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::getBondWithIdx ( unsigned int idx ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::getConformer ( int id = -1 ) " /**

    return the conformer with a specified ID if the ID is negative the first conformation will be returned */ public"; %javamethodmodifiers RDKit::ROMol::getConformer ( int id = -1 ) const" /**

    return the conformer with a specified ID if the ID is negative the first conformation will be returned */ public"; %javamethodmodifiers RDKit::ROMol::getEdges ( ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::getEdges ( ) " /**

    @return an iterator pair for looping over all Bonds

    @example

    
    ROMol::EDGE_ITER firstB,lastB;
    boost::tie(firstB,lastB) = mol.getEdges();
    while(firstB!=lastB){
    BOND_SPTR bond = mol[*firstB];
    ... do something with the Bond ...
    ++firstB;
    }
    
    template */ public"; %javamethodmodifiers RDKit::ROMol::getProp ( const std::string key, T & res ) const " /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. template */ public"; %javamethodmodifiers RDKit::ROMol::getProp ( const char * key, T & res ) const " /**

    allows retrieval of a particular property value

    @param key the name under which the property should be stored. If a property is already stored under this name, it will be replaced. res a reference to the storage location for the value.

    @notes

  • if no property with name key exists, a KeyErrorException will be thrown.
  • the boost::lexical_cast machinery is used to attempt type conversions. If this fails, a boost::bad_lexical_cast exception will be thrown. */ public"; %javamethodmodifiers RDKit::ROMol::getRingInfo ( ) const " /**

    @return a pointer to our RingInfo structure Note: the client should not delete this. . */ public"; %javamethodmodifiers RDKit::ROMol::getTopology ( ) const " /**

    brief returns a pointer to our underlying BGL object

    This can be useful if you need to call other BGL algorithms:

    Here's an example:

    ... mol is a const ROMol ... ... mapping is an INT_VECT ... mapping.resize(mol.getNumAtoms()); const MolGraph &G_p = mol.getTopology(); int res = boost::connected_components(G_p,&mapping[0]); */ public"; %javamethodmodifiers RDKit::ROMol::getVertices ( ) const" /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::getVertices ( ) " /**

    @return an iterator pair for looping over all Atoms

    @example

    
    ROMol::VERTEX_ITER atBegin,atEnd;
    boost::tie(atBegin,atEnd) = mol.getVertices();
    while(atBegin!=atEnd){
    ATOM_SPTR at2=mol[*atBegin];
    ... do something with the Atom ...
    ++atBegin;
    }
    
    */ public"; %javamethodmodifiers RDKit::ROMol::hasProp ( const std::string key ) const " /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::setAtomBookmark ( Atom * at, int mark ) " /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. */ public"; %javamethodmodifiers RDKit::ROMol::setBondBookmark ( Bond * bond, int mark ) " /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. template */ public"; %javamethodmodifiers RDKit::ROMol::setProp ( const std::string key, T val, bool computed = false ) const " /**

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. template */ public"; %javamethodmodifiers RDKit::ROMol::setProp ( const char * key, T val, bool computed = false ) const " /**

    sets a property value

    @param key the name under which the property should be stored. If a property is already stored under this name, it will be replaced. val the value to be stored computed (optional) allows the property to be flagged computed. */ public"; %javamethodmodifiers RDKit::ROMol::updatePropertyCache ( bool strict = true ) " /**

    calculates any of our lazy properties

    @notes

  • this calls updatePropertyCache() on each of our Atoms and Bonds */ public";