mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-04 21:54:27 +08:00
447 lines
14 KiB
OpenEdge ABL
447 lines
14 KiB
OpenEdge ABL
/*
|
|
* $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.
|
|
<p>
|
|
This is the primary class for most molecule operations.
|
|
<p>
|
|
If you need to be manipulating the molecule (e.g. adding or deleting atoms or bonds, use an RWMol instead.
|
|
<p>
|
|
<p>
|
|
@notes
|
|
<li>each ROMol maintains a Dict of properties:
|
|
<li>o Each property is keyed by name and can store an arbitrary type.
|
|
<li>o Properties can be marked as calculated, in which case they will be cleared when the clearComputedProps() method is called.
|
|
<li>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.
|
|
<li>each ROMol has collections of bookmarks for Atoms and Bonds:
|
|
<li>o the Atom bookmarks and Bond bookmarks are stored separately from each other
|
|
<li>o each bookmark, an integer, can map to more than one Atom or Bond
|
|
<li>o these are currently used in molecule construction, but could also be useful for reaction mapping and the like
|
|
<li>information about rings (SSSR and the like) is stored in the molecule's RingInfo pointer.
|
|
*/"
|
|
|
|
%javamethodmodifiers RDKit::ROMol::addConformer ( Conformer * conf, bool assignId = false ) "
|
|
/**
|
|
<p>
|
|
Add a new conformation to the molecule.
|
|
<p>
|
|
<p>
|
|
@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"
|
|
/**
|
|
<p>
|
|
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"
|
|
/**
|
|
<p>
|
|
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"
|
|
/**
|
|
<p>
|
|
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"
|
|
/**
|
|
<p>
|
|
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"
|
|
/**
|
|
<p>
|
|
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 ) "
|
|
/**
|
|
<p>
|
|
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 ) "
|
|
/**
|
|
<p>
|
|
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 "
|
|
/**
|
|
<p>
|
|
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 "
|
|
/**
|
|
<p>
|
|
clears the value of a property
|
|
<p>
|
|
<p>
|
|
@notes
|
|
<li>if no property with name key exists, a KeyErrorException will be thrown.
|
|
<li>if the property is marked as computed, it will also be removed from our list of computedProperties
|
|
|
|
*/
|
|
public";
|
|
|
|
%javamethodmodifiers RDKit::ROMol::endAromaticAtoms ( ) const"
|
|
/**
|
|
<p>
|
|
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"
|
|
/**
|
|
<p>
|
|
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"
|
|
/**
|
|
<p>
|
|
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"
|
|
/**
|
|
<p>
|
|
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"
|
|
/**
|
|
<p>
|
|
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"
|
|
/**
|
|
<p>
|
|
provides access to all Bond objects connected to an Atom
|
|
<p>
|
|
<p>
|
|
@param
|
|
at the atom whose neighbors we are looking for
|
|
<p>
|
|
@example
|
|
<pre><code>
|
|
... 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;
|
|
}
|
|
</code></pre>
|
|
or, if you need a non-const Bond *:
|
|
<p>
|
|
... 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"
|
|
/**
|
|
<p>
|
|
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"
|
|
/**
|
|
<p>
|
|
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"
|
|
/**
|
|
<p>
|
|
provides access to all neighbors around an Atom
|
|
<p>
|
|
<p>
|
|
@param
|
|
at the atom whose neighbors we are looking for
|
|
<p>
|
|
@example
|
|
<pre><code>
|
|
... 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;
|
|
}
|
|
</code></pre>
|
|
|
|
*/
|
|
public";
|
|
|
|
%javamethodmodifiers RDKit::ROMol::getAtomWithIdx ( unsigned int idx ) const"
|
|
/**
|
|
<p>
|
|
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"
|
|
/**
|
|
<p>
|
|
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"
|
|
/**
|
|
<p>
|
|
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 ) "
|
|
/**
|
|
<p>
|
|
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"
|
|
/**
|
|
<p>
|
|
return the conformer with a specified ID if the ID is negative the first conformation will be returned
|
|
*/
|
|
public";
|
|
|
|
%javamethodmodifiers RDKit::ROMol::getEdges ( ) const"
|
|
/**
|
|
<p>
|
|
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 ( ) "
|
|
/**
|
|
<p>
|
|
<p>
|
|
@return
|
|
an iterator pair for looping over all Bonds
|
|
<p>
|
|
@example
|
|
<pre><code>
|
|
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;
|
|
}
|
|
</code></pre>
|
|
template<typename T >
|
|
*/
|
|
public";
|
|
|
|
%javamethodmodifiers RDKit::ROMol::getProp ( const std::string key, T & res ) const "
|
|
/**
|
|
<p>
|
|
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
|
template<typename T >
|
|
*/
|
|
public";
|
|
|
|
%javamethodmodifiers RDKit::ROMol::getProp ( const char * key, T & res ) const "
|
|
/**
|
|
<p>
|
|
allows retrieval of a particular property value
|
|
<p>
|
|
<p>
|
|
@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.
|
|
<p>
|
|
@notes
|
|
<li>if no property with name key exists, a KeyErrorException will be thrown.
|
|
<li>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 "
|
|
/**
|
|
<p>
|
|
<p>
|
|
@return
|
|
a pointer to our RingInfo structure Note: the client should not delete this.
|
|
.
|
|
*/
|
|
public";
|
|
|
|
%javamethodmodifiers RDKit::ROMol::getTopology ( ) const "
|
|
/**
|
|
<p>
|
|
brief returns a pointer to our underlying BGL object
|
|
<p>
|
|
This can be useful if you need to call other BGL algorithms:
|
|
<p>
|
|
Here's an example:
|
|
<p>
|
|
... 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"
|
|
/**
|
|
<p>
|
|
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 ( ) "
|
|
/**
|
|
<p>
|
|
<p>
|
|
@return
|
|
an iterator pair for looping over all Atoms
|
|
<p>
|
|
@example
|
|
<pre><code>
|
|
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;
|
|
}
|
|
</code></pre>
|
|
|
|
*/
|
|
public";
|
|
|
|
%javamethodmodifiers RDKit::ROMol::hasProp ( const std::string key ) const "
|
|
/**
|
|
<p>
|
|
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 ) "
|
|
/**
|
|
<p>
|
|
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 ) "
|
|
/**
|
|
<p>
|
|
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
|
template<typename T >
|
|
*/
|
|
public";
|
|
|
|
%javamethodmodifiers RDKit::ROMol::setProp ( const std::string key, T val, bool computed = false ) const "
|
|
/**
|
|
<p>
|
|
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
|
template<typename T >
|
|
*/
|
|
public";
|
|
|
|
%javamethodmodifiers RDKit::ROMol::setProp ( const char * key, T val, bool computed = false ) const "
|
|
/**
|
|
<p>
|
|
sets a property value
|
|
<p>
|
|
<p>
|
|
@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 ) "
|
|
/**
|
|
<p>
|
|
calculates any of our lazy properties
|
|
<p>
|
|
<p>
|
|
@notes
|
|
<li>this calls updatePropertyCache() on each of our Atoms and Bonds
|
|
|
|
*/
|
|
public";
|
|
|