Package chemaxon.struc
Class RxnMolecule
- java.lang.Object
-
- chemaxon.struc.MoleculeGraph
-
- chemaxon.struc.Molecule
-
- chemaxon.struc.RxnMolecule
-
- All Implemented Interfaces:
chemaxon.core.calculations.valencecheck.MoleculeWithValence<MolAtom>
,chemaxon.core.structure.MoleculeForBuilder
,chemaxon.core.structure.ReactionForBuilder
,chemaxon.core.structure.RootStructureForBuilder
,chemaxon.core.structure.StructureForBuilder
,Incomplecule
,chemaxon.struc.MObjectContainer
,MTransformable
,StereoConstants
,Serializable
@PublicAPI public class RxnMolecule extends Molecule implements chemaxon.struc.MObjectContainer, chemaxon.core.structure.ReactionForBuilder
Reaction.- Since:
- Marvin 2.9
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class chemaxon.struc.MoleculeGraph
MoleculeGraph.ValenceCheckState
-
-
Field Summary
Fields Modifier and Type Field Description static int
AGENTS
"Agent" structure type.static int
EQUILIBRIUM
Resonance arrow, the same as the two-headed double reaction arrow.static int
PRODUCTS
"Product" structure type.static int
REACTANTS
"Reactant" structure type.static int
REGULAR_DOUBLE
Regular double reaction arrow type.static int
REGULAR_SINGLE
Regular single reaction arrow type.static int
RESONANCE
Resonance arrow, the same as the two-headed single reaction arrow.static int
RETROSYNTHETIC
Retrosynthetic arrow, the same as the regular double reaction arrow.static int
RGROUPED
Add R-groups to component structure.static int
TWO_HEADED_DOUBLE
Two headed double reaction arrow type.static int
TWO_HEADED_SINGLE
Two headed single reaction arrow type.static int
TYPE_COUNT
Number of structure types.static int
TYPE_MASK
Component type mask.-
Fields inherited from class chemaxon.struc.Molecule
DEFAULT_UNGROUP, RECURSIVE_UNGROUP, RM_KEEP_LEAVINGGROUPS, RMCLEANUP_FROMSGROUPS, RMCLEANUP_SGROUPATOMS, RMSG_DEFAULT, RMSG_KEEP_CHILDREN, RMSG_KEEP_MULTICENTER, RMSG_KEEP_PARENT
-
Fields inherited from class chemaxon.struc.MoleculeGraph
AROM_AMBIGUOUS, AROM_BASIC, AROM_CHUCKEL, AROM_GENERAL, AROM_LOOSE, AROM_SUBSTRUCTURE, atomCount, AUTO_UNGROUP, bondCount, btab, CACHE_REMOVE_ALL, CACHE_REMOVE_AROMATAMODULE, CACHE_REMOVE_CACHEMEMORY, CACHE_REMOVE_GRINVMODULE, CACHE_REMOVE_PARITYMODULE, CACHE_REMOVE_SSSRMODULE, CACHE_REMOVE_TABS, cacheMemory, ctab, DEAROM_GENERAL, DEAROM_HUCKELCHECK, DEAROM_HUCKELCHECK_EX, DIM_MASK, FRAG_BASIC, FRAG_KEEPING_MULTICENTERS, FRAG_KEEPING_SGROUPS, FRAG_TYPE_COUNT, gearch, GRINV_DONT_STORE, GRINV_NOHYDROGEN, GRINV_OLDSTEREO, GRINV_STEREO, GRINV_USEMAPS, GRINV_VALUE_OPTIONS, grinvCC, INITIAL_CAPACITY, INVALID_LINKNODE_MESSAGE, MIN_RING_SIZE_FOR_TRANS_DB, OMIT_POSTCLEAN, orix, oriy, oriz, parentGraph, propertyContainer, RMCLEANUP_ALL, RMCLEANUP_EDGES, RMCLEANUP_FIXCOMPONENT, RMCLEANUP_MOBJECT, RMCLEANUP_NONE, RMCLEANUP_PARENTDOC, RMCLEANUP_STEREO, superGraph, theAtoms, theBonds, useOnlyFirstAtomInStereoCalculation, VALENCE_CHECK, VALENCE_CHECK_AMBIGUOUS
-
Fields inherited from interface chemaxon.struc.StereoConstants
ANTI, ATOMSTEREO_EITHER, ATOMSTEREO_MASK, ATOMSTEREO_NONE, ATOMSTEREO_SPECIFIC, CHIRALITY_M, CHIRALITY_MASK, CHIRALITY_P, CHIRALITY_r, CHIRALITY_R, CHIRALITY_s, CHIRALITY_S, CHIRALITYSUPPORT_ALL, CHIRALITYSUPPORT_ALL_POSSIBLE, CHIRALITYSUPPORT_NONE, CHIRALITYSUPPORT_SELECTED, CIS, CIS_TRANS, CTUMASK, CTUNKNOWN, CTUNSPEC, DBS_ALL, DBS_MARKED, DBS_NONE, ENDO, EXO, PARITY_ALLENE, PARITY_EITHER, PARITY_EVEN, PARITY_MASK, PARITY_NONE, PARITY_ODD, PARITY_TETRAHEDRAL, PARITY_UNSPEC, STGRP_ABS, STGRP_AND, STGRP_NONE, STGRP_OR, SYN, TRANS
-
-
Constructor Summary
Constructors Constructor Description RxnMolecule()
Create a reaction.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
add(MolAtom a)
Adds an atom to a reactant, product or agent structure.void
add(MolBond e)
Adds a bond to a reactant, product, agent.protected void
addAtomToFragment(MolAtom a)
Adds an atom to a fragment.void
addComponent(Molecule m, int type)
Adds a reactant, product or agent.void
addComponent(Molecule m, int type, boolean beNew)
Adds a reactant, product or agent.void
addReactionStep(List<Molecule> reactants, List<Molecule> products, List<Molecule> agents, chemaxon.struc.graphics.MRArrow arrow, int arrowType)
void
addSgroup(Sgroup sg, boolean setparent)
Adds an S-group to this object.boolean
canBeReactionComponent()
Tests whether an object of this class can be a reaction component.protected void
checkSgroupConsistency()
Checks the consistency of S-groups.void
clearForImport(String fmt)
Clear the edges vector and the properties.void
clearObjects()
Deletes the graphical objects from this.RxnMolecule
clone()
Make an identical copy of the reaction structure.void
clonecopy(int[] iatoms, MoleculeGraph g)
Copies the specified nodes and edges of this graph to another one.void
clonecopy(MoleculeGraph g)
Make another molecule identical to this one.void
clonelesscopy(MoleculeGraph g)
Deprecated.as of Marvin 6.3.
Not supported feature.RxnMolecule
cloneMoleculeWithDocument()
Makes an identical copy of the molecule and its document.boolean
contains(MolAtom node)
Checks if a reactant, agent or product structure contains the specified node.boolean
contains(MolBond edge)
Checks if a reactant, agent or product structure contains the specified edge.protected chemaxon.struc.gearch.MoleculeGraphGearch
createGearch()
static RxnMolecule
createReaction(MoleculeGraph mol, DPoint3[] arw)
Creates a reaction.static RxnMolecule
createReaction(Molecule mol, DPoint3[] arw, int art)
Creates a reaction.static double
determineArrowDistance(double x, double y, double z, DPoint3[] ar)
Project the point (x,y,z) to the line of the reaction arrow 'ar'.int
determineType(double x, double y, double z)
Determines whether a point should be in a reactant, in a product or in an agent.static int
determineType(double x, double y, double z, DPoint3[] ar)
Determines whether a point should be in a reactant, in a product or in an agent.protected void
fillSelectionMolecule(SelectionMolecule s)
Adds all atoms and bonds of the root structure and the R-groups to the specified molecule.void
fixProperties()
Delegates to tracker's fixProperties().void
fuse(MoleculeGraph graph, boolean check)
Add the atoms and bonds of another molecule.void
fuse(RxnMolecule rxnMol)
Fuse and RxnMolecule to this RxnMolecule.protected void
fuse0(MoleculeGraph graph, boolean check)
Add those nodes and edges of a graph that are not already elements.Molecule
getAgent(int i)
Gets an agent.int
getAgentCount()
Gets the number of agents.Molecule[]
getAgents()
Gets all agents in an array.List<Molecule>
getAllFragments()
Gets the list of reaction fragments (product, reactant, agent components) that build up this reaction.List<MObject>
getAllObjects()
MPropertyContainer
getArrowAsProperty()
Gets the properties (type, endpoint coordinates) of the reaction arrow in this reaction.MolAtom
getAtom(int i)
Gets a node.int
getAtomCount()
Returns the number of nodes in the graph union.int
getAtomCount(int atomicNumber)
Gets the number of atoms with the given atomic number in the unified molecule graph of the reaction.IteratorFactory.AtomIterator
getAtomIterator()
Returns an iterator over the atoms in this molecule in proper sequence.MolBond
getBond(int i)
Gets an edge.int
getBondCount()
Gets the number of edges in the graph union.IteratorFactory.BondIterator
getBondIterator()
Returns an iterator over the bonds in this molecule in proper sequence.BondTable
getBondTable()
Gets the bond table for the graph union.DPoint3
getCenter(int type, int i)
Gets the geometrical center of a reaction component.Molecule
getComponent(int typeFlag, int i)
Gets a reactant, product or agent.Molecule
getComponent(long id)
Gets a reactant, product or agent.int
getComponentCount(int type)
Gets the number of reactants, products or agents.int
getComponentFlags(long id)
Gets the reaction component type flags from the ID.long
getComponentID(MolAtom atom)
Gets the reaction component ID of an atom.long
getComponentID(MolBond bond)
Gets the reaction component ID of a bond.long
getComponentID(Molecule molecule)
Gets the ID of a reaction component.int
getComponentIndex(long id)
Gets the reactant, product or agent index from the ID.int
getComponentType(long id)
Gets the reaction component type from the ID.int[][]
getCtab()
Gets the connection table for the graph union.String
getFormula()
Gets the molecular formula in Hill order.MoleculeGraph
getGraphUnion()
Gets a graph containing all the atoms and bonds.chemaxon.struc.graphics.MRArrow
getItsArrow()
Gets the reaction arrow of this reaction.int
getLocalParity(int i)
Computes the local parity of an atom of the RxnMolecule instance based on both the coordinates of the neighboring atoms and the stereo information of the bonds to those.double
getMass()
Calculates the molecular weight of the molecule.Map<chemaxon.struc.graphics.MRArrow,RxnMolecule>
getMSLogic()
Deprecated.Multi-step reactions not supported.int
getObjectCount()
int
getParity(int i)
Computes the parity of an atom of the RxnMolecule instance based on both the coordinates of the neighboring atoms and the stereo information of the bonds to those.Molecule
getProduct(int i)
Gets a product.int
getProductCount()
Gets the number of products.Molecule[]
getProducts()
Gets all products in an array.Molecule
getReactant(int i)
Gets a reactant.int
getReactantCount()
Gets the number of reactants.Molecule[]
getReactants()
Gets all reactants in an array.static RxnMolecule
getReaction(MoleculeGraph g)
Returns the reaction represented by the given molecule if exists, otherwise null.DPoint3[]
getReactionArrow()
Gets a two-element array containing the endpoints of the reaction arrow.chemaxon.struc.graphics.MRArrow
getReactionArrow(boolean generate)
Gets the reaction arrow of this reaction with the possibility to generate an arrow if the arrow is not yet set.List<chemaxon.struc.graphics.MRArrow>
getReactionArrowList()
Gets the list of the reaction arrows of this reaction.int
getReactionArrowType()
Gets the reaction arrow type.String
getReactionArrowTypeName()
Gets the reaction arrow type name.ArrayList<RxnMolecule>
getReactionSteps()
Divides this reaction into simple step reactions if this is a multistep reaction.protected int
getSubGraphCount()
Gets the number of all "submolecules".protected void
getSubGraphs(MoleculeGraph[] arr, int off)
Gets all "submolecules".int
getType(MoleculeGraph selection)
Checks whether the atoms in the selection are all in reactants, products or agents.boolean
hasAtomSet()
Tests whether the molecule graph has atom sets.boolean
hasBondSet()
Tests whether the molecule graph has atom sets.int
indexOf(MolAtom node)
Gets the index of the specified node in the graph union.int
indexOf(MolBond edge)
Gets the index of the specified edge in the graph union.boolean
isAtom()
Deprecated.As of Marvin 14.7.7, no replacement.
Not supported feature.boolean
isBond()
Deprecated.As of Marvin 14.7.7, no replacement.
Not supported feature.boolean
isEmpty()
Ask if the reaction is empty or not.boolean
isIncompleteReaction()
Check whether the reaction is incomplete or not.boolean
isMergedComponent(MoleculeGraph m)
Check whether given molecule is reaction component with a set of intentionally merged fragments or not.boolean
isQuery()
Indicates if the molecule has query features: query atoms or query bonds.boolean
isReaction()
Checks if the structure represents a reaction or not.protected boolean
isRealAtomParent()
Reaction molecules cannot be real node parents.boolean
isSingleStepReaction()
Deprecated.protected void
makeItSimilar(MoleculeGraph g)
Copies some properties of this molecule to the other one specified as argument.void
mergeAtoms(MolAtom that, MolAtom node)
Deprecated.As of Marvin 6.2, useMergeUtil.mergeAtoms(MolAtom, MolAtom, boolean)
instead.void
mergeComponentParts(MoleculeGraph m, int type, boolean isMergeStored)
Finds those component parts that are contained in the molecule graph m and creates a new component containing all atoms of m, splitting them from the previous merges.MoleculeGraph
newInstance()
Creates a new RxnMolecule object.void
rebuildStructures()
For each structure (reactant or product) determines whether it should be a reactant or a product depending on its the relative position to the reaction arrow.void
rebuildStructures(DPoint3[] arw, int art)
Sets the reaction arrow.void
recalcReactionArrow()
Recalculates the coordinates of the reaction arrow from the reactants and products, forced recalculation.void
regenBonds()
Regenerate the edge vectors: remove their elements, then put the edge objects from the nodes into it.void
removeAll()
Remove all the atoms and bonds from the root structure, and from all the R-groups.void
removeAllBonds()
Removes all bonds from the reactants, products and agents.void
removeAtom(int iu, int cleanupFlags)
Removes an atom from the reactants, products or agents.void
removeAtom(MolAtom node, int cleanupFlags)
Removes an atom from the reactants, products or agents.protected void
removeBond(int iu, int cleanupFlags)
Removes an edge from a reactant, agent or product.protected void
removeBond(MolBond edge, int cleanupFlags)
Removes a bond from the reactants, products or agents.Molecule
removeComponent(int flags, int i)
Removes a reactant, product or agent.void
removeEmptyComponents()
Checks all the componentes and removes those that are empty (node count is zero).void
removeObject(MObject o)
Removes a graphical object from this.void
removeReactionArrow()
Removes the reaction arrow of this reacion.void
replaceBond(MolBond olde, MolBond newe)
Deprecated.as of Marvin 6.2, may constructs inconsistentMoleculeGraph
.void
revalidateCoordDependentProps()
Revalidate coordinate dependent properties.void
selectAllObjects(boolean s)
void
setAbsStereo(boolean c)
Sets the absolute stereoconfiguration flag for all the structures.void
setAtom(int iu, MolAtom node)
Deprecated.As of Marvin 6.2, may constructs inconsistentMoleculeGraph
.void
setBond(int iu, MolBond edge)
Deprecated.as of Marvin 6.2, may constructs inconsistentMoleculeGraph
.void
setDim(int d)
Sets the dimension for all the structures.void
setLocation(DPoint3 p)
Set the origin of the molecule.void
setMSLogic(Map<chemaxon.struc.graphics.MRArrow,RxnMolecule> ms)
Deprecated.Multi-step reactions not supported.void
setReactionArrow(DPoint3... points)
Sets the endpoint coordinates of the reaction arrow.void
setReactionArrow(chemaxon.struc.graphics.MRArrow arrow)
Sets the reaction arrow.void
setReactionArrow0(DPoint3... points)
Sets the reaction arrow.void
setReactionArrowEndPoints(DPoint3[] points)
Sets the endpoints of the reaction arrow in this reaction.void
setReactionArrowType(int type)
Sets the reaction arrow type.void
setReactionArrowType(String name)
Sets the reaction arrow type from type name.void
setSgroupParent(MolAtom a, Sgroup sg, boolean set)
Sets or unsets an S-group as a parent of an atom in reactants, products or agents.protected void
setSupergraph(MoleculeGraph molecule)
Sets the given molecule as the supergraph of this graph and its components.Molecule
simplifyIncompleteReactionToMolecule()
Simplify a reaction to a molecule if possible.Molecule
simplifyToMolecule()
Simplifies this RxnMolecule by moving the atoms and bonds from the reactants, products, and agents to a Molecule.void
sortBondsAccordingTo(MolBond[] order)
Sort edges in the same order as they appear in the specified array.void
splitAllDisconnectedComponents()
Replaces all disconnected reaction components by its connected fragments in the structure array.void
splitComponentParts(MoleculeGraph m, int type)
Finds those component parts that are contained in the molecule graph m and creates separate components from the fragments contained in m, splitting them from the previous merges.void
splitDisconnectedComponent(int type, int index)
Replaces a disconnected reaction component by its connected fragments in the structure array.void
splitDisconnectedComponent(long id)
Replaces a disconnected reaction component by its connected fragments in the structure array.boolean
stereoClean()
Reset the wedges of the molecule, based on the actual parity information in 2D remove wedges in 3D.String
toString()
Overrides Object.toString() to ease debugging.void
transform(CTransform3D t, boolean incg)
Apply a transformation matrix to the atomic coordinates and the reaction arrow.protected void
transformReactionArrow(CTransform3D t)
Apply a transformation matrix to the reaction arrow.void
updateComponentRoles()
Updates fragment roles in the molecule.-
Methods inherited from class chemaxon.struc.Molecule
addAtom0, addBond0, addSgroupClones, addSgroupsOf, aromatize, aromatize, bondlength, checkConsistency, clear, clearExtraLabels, clearProperties, cloneAtoms, clonecopyWithoutSgroups, cloneMolecule, connectOriginalBondsToNewAtom, contractSgroups, contractSgroups, convertToFrags, countExpandableContractableSgroups, countOrderedComponentSgroups, dearomatize, endReuse, expandSgroups, expandSgroups, exportToBinFormat, exportToFormat, exportToObject, findAllSgroupContaining, findContainingMulticenterSgroup, findContractableSgroup, findExpandableSgroup, findFrags, findFrags, findSgroupContaining, findSgroupOf, findSmallestSgroupContaining, fixSelfReferringProperty, getBonds, getComment, getEndPosition, getGraphUnionAsSelection, getId, getInputFormat, getMostSimplifiedMolecule, getName, getProperty, getPropertyCount, getPropertyKey, getPropertyKeys, getPropertyObject, getRootSgroups, getSgroup, getSgroupArray, getSgroupCount, getSgroupIterator, getSgroupLigands, getSimplifiedMolecule, getSortedSgroups, getStartPosition, getVisibleCoords, hasContractedSgroup, hasId, implicitizeHydrogens0, indexOf, isExpandable, isGUIContracted, isSgroup, newSelectionMolecule, rearrangeSgroups, removeAllSgroups, removeAtomFromChildren, removeSgroupFromList, removeSgroupsOf, removeSgroupsOf, reparentSgroups, replaceAtom, replaceSgroup, residueSymbolOf, residueTypeOf, reuseAtom, setAtom0, setComment, setEndPosition, setGUIContracted, setGUIContracted, setId, setInputFormat, setName, setProperty, setPropertyObject, setStartPosition, sortSgroupXBonds, toBinFormat, toFormat, toObject, ungroupSgroup, ungroupSgroup, ungroupSgroup, ungroupSgroup, ungroupSgroups, ungroupSgroups, ungroupSgroups
-
Methods inherited from class chemaxon.struc.MoleculeGraph
add, addAtomsAndBondsTo, addAtomWithoutChangingIt, addBondWithoutChangingIt, addExplicitHydrogens, addExplicitHydrogens, addExplicitLonePairs, addSimpleAtomWithoutChangingIt, adjustMultiChiralFlag, aromatize, aromatize, arrangeComponents, atoms, bonds, calcCenter, calcCenter, calcDehydrogenizedGrinv, calcHeight, calcHybridization, calcOutRect, calcOutRect, calcOutRectCenter, calcOutRectCenter, calcWidth, canBeCT, canBeCT, canBeCT, checkBondConsistency, clean, clean, clearCachedInfo, clonecopyMoleculeGraphWithoutSgroups, contains, createDehydrogenizedReadOnlyGraph, createSmolecule, dearomatize, findAtom, findAtomClone, findBasicFrags, findBond, findComponentIds, findComponentIds, findFrag, findFrag, findFragById, findFrags, findInArray, fuse, getAromaticAndAliphaticRings, getAtomArray, getAtomicNumber, getAtomReferenceList, getBondArray, getCharge, getChirality, getCSSR, getCSSRIdxesForAtoms, getDesiredLength, getDesiredLength, getDim, getDocument, getDocumentForChild, getEnclosingCube, getExactMass, getExplicitHcount, getExplicitLonePairCount, getEZStereo, getFlags, getForefather, getFormalCharge, getFragCount, getFragCount, getFragIds, getFreeAttachmentPoints, getGrinv, getGrinv, getGrinv, getGrinv, getGrinvCC, getGrinvOptions, getImplicitHcount, getImplicitHCount, getLigand, getLigandAtno, getLigandBondType, getLigandCount, getLocation, getLock, getLonePairCount, getMaxRgroupAttachmentPointOrder, getParent, getParentDocument, getParityType, getPoints, getPossibleAttachmentPoints, getRadicalCount, getSmallestRingSizeForIdx, getSSSR, getSSSRBonds, getSSSRBondsAsBitSet, getSSSRBondSet, getSSSRBondSetInLong, getSSSRIdxesForAtoms, getStereo2, getStereo2, getStereo2, getStereo2, getStereo2, getStereo2, getStereo2, getSubGraphs, getTotalCharge, getValenceCheckOptions, getValenceCheckState, getValenceProperty, hasExplicitLonePairs, hasExtraLabelSet, hasImplicitH, hasSelfReferringProperty, hasValenceError, hydrogenize, implicitizeHydrogens, implicitizeHydrogens, implicitizeHydrogens, incGrinvCC, incGrinvCC, incGrinvCCOnly, insertAtom, insertBond, insertBondInOrder, insertNullAtoms, insertNullBonds, isAbsStereo, isAcceptedSpecialLigand, isAtomInRing, isBondParallelWith, isGrinvCCValid, isLargeMolecule, isMolecule, isMultiChiral, isolate, isolate, isOnlyFirstAtomInStereoCalculation, isRing, isRingBond, isSelfReference, isSimilarTo, isSymmetric, isValenceCheckEnabled, isValidLinkNode, mergeFrags, moveTo, pack, partialClean, partialClean, partialClean, properties, qpropCheck, regenBtab, regenCtab, regenGearch, removeAtom, removeAtom, removeBond, removeBond, removeExplicitLonePairs, removeIsolatedAtoms, removeIsolatedBonds, resetCtab, resetGrinvInParents, restoreCache, saveCache, setAtomSetSeqs, setBondSetSeqs, setChirality, setChirality, setFlags, setFlags, setGrinvCC, setGrinvOptions, setLinkNodeDefaultOuters, setLocalParity, setLocalParity, setParity, setParity, setParity, setValenceCheckEnabled, setValenceCheckOptions, setValenceCheckState, smol, sumConservedQuantities, transform, updateDim, useOnlyFirstAtomInStereoCalculation, valenceCheck, valenceCheck
-
-
-
-
Field Detail
-
TYPE_COUNT
public static final int TYPE_COUNT
- See Also:
- Constant Field Values
-
REACTANTS
public static final int REACTANTS
"Reactant" structure type.- See Also:
getComponent(int, int)
, Constant Field Values
-
PRODUCTS
public static final int PRODUCTS
"Product" structure type.- See Also:
getComponent(int, int)
, Constant Field Values
-
AGENTS
public static final int AGENTS
"Agent" structure type.- See Also:
getComponent(int, int)
, Constant Field Values
-
RGROUPED
public static final int RGROUPED
Add R-groups to component structure.- Since:
- Marvin 3.1
- See Also:
- Constant Field Values
-
TYPE_MASK
public static final int TYPE_MASK
Component type mask.- Since:
- Marvin 3.1
- See Also:
REACTANTS
,PRODUCTS
,AGENTS
, Constant Field Values
-
REGULAR_SINGLE
public static final int REGULAR_SINGLE
Regular single reaction arrow type.- Since:
- Marvin 5.1, 02/28/2008
- See Also:
- Constant Field Values
-
TWO_HEADED_SINGLE
public static final int TWO_HEADED_SINGLE
Two headed single reaction arrow type.- Since:
- Marvin 5.1, 02/28/2008
- See Also:
- Constant Field Values
-
REGULAR_DOUBLE
public static final int REGULAR_DOUBLE
Regular double reaction arrow type.- Since:
- Marvin 5.1, 02/28/2008
- See Also:
- Constant Field Values
-
TWO_HEADED_DOUBLE
public static final int TWO_HEADED_DOUBLE
Two headed double reaction arrow type.- Since:
- Marvin 5.1, 02/28/2008
- See Also:
- Constant Field Values
-
RESONANCE
public static final int RESONANCE
Resonance arrow, the same as the two-headed single reaction arrow.- Since:
- Marvin 5.2 27/01/2009
- See Also:
- Constant Field Values
-
RETROSYNTHETIC
public static final int RETROSYNTHETIC
Retrosynthetic arrow, the same as the regular double reaction arrow.- Since:
- Marvin 5.2 27/01/2009
- See Also:
- Constant Field Values
-
EQUILIBRIUM
public static final int EQUILIBRIUM
Resonance arrow, the same as the two-headed double reaction arrow.- Since:
- Marvin 5.2 27/01/2009
- See Also:
- Constant Field Values
-
-
Method Detail
-
createReaction
public static RxnMolecule createReaction(Molecule mol, DPoint3[] arw, int art)
Creates a reaction.- Parameters:
mol
- contains the atoms of reactants and productsarw
- two-element array containing the endpoints of the reaction arrowart
- the arrow type- Returns:
- the reaction
-
createReaction
public static RxnMolecule createReaction(MoleculeGraph mol, DPoint3[] arw)
Creates a reaction.- Parameters:
mol
- contains the atoms of reactants and productsarw
- two-element array containing the endpoints of the reaction arrow- Returns:
- the reaction
-
determineArrowDistance
public static double determineArrowDistance(double x, double y, double z, DPoint3[] ar)
Project the point (x,y,z) to the line of the reaction arrow 'ar'. Return the signed distance of the projected point from the start-point of the arrow divided by the arrow length.- Parameters:
x
- is the x coordinate of the pointy
- is the y coordinate of the pointz
- is the z coordinate of the pointar
- is the reaction arrow- Returns:
- the signed distance of the projected point from the start-point of the arrow divided by the arrow length
-
determineType
public static int determineType(double x, double y, double z, DPoint3[] ar)
Determines whether a point should be in a reactant, in a product or in an agent.
-
getReaction
public static RxnMolecule getReaction(MoleculeGraph g)
Returns the reaction represented by the given molecule if exists, otherwise null. The corresponding reaction molecule is either the molecule itself or its root structure.- Parameters:
g
- the molecule graph- Returns:
- the corresponding reaction molecule
-
add
public void add(MolAtom a)
Adds an atom to a reactant, product or agent structure. If a neighbour of the atom is in a reactant, product or agent, then adds the atom to that structure. Otherwise creates a new reactant or product.- Overrides:
add
in classMoleculeGraph
- Parameters:
a
- the new atom
-
add
public void add(MolBond e)
Adds a bond to a reactant, product, agent. If an endpoint of the edge is in a reactant, product or agent, then adds the edge to that structure.
-
addComponent
public void addComponent(Molecule m, int type) throws IllegalArgumentException
Adds a reactant, product or agent. If atoms in the specified structure are already part of some other reactants, products or agents then removes them from those structures.- Parameters:
m
- the reactant, product or agenttype
-REACTANTS
,PRODUCTS
orAGENTS
- Throws:
IllegalArgumentException
- if m is of a subclass ofMolecule
for which the embedding in an RxnMolecule is not supported
-
addComponent
public void addComponent(Molecule m, int type, boolean beNew) throws IllegalArgumentException
Adds a reactant, product or agent. If atoms in the specified structure are already part of some other reactants, products or agents then removes them from those structures.- Parameters:
m
- the reactant, product or agenttype
-REACTANTS
,PRODUCTS
orAGENTS
beNew
- m should be a new structure if true- Throws:
IllegalArgumentException
- if m is of a subclass ofMolecule
for which the embedding in an RxnMolecule is not supported
-
addReactionStep
public void addReactionStep(List<Molecule> reactants, List<Molecule> products, List<Molecule> agents, chemaxon.struc.graphics.MRArrow arrow, int arrowType)
-
addSgroup
public void addSgroup(Sgroup sg, boolean setparent)
Adds an S-group to this object.
-
canBeReactionComponent
public boolean canBeReactionComponent()
Tests whether an object of this class can be a reaction component. This implementation returnsfalse
, RxnMolecules cannot be embedded in each other.- Overrides:
canBeReactionComponent
in classMolecule
- Returns:
true
if it can be a reactant, product or agent,false
if adding it to anRxnMolecule
is not supported- Since:
- Marvin 4.1.13, 09/19/2007
-
clearForImport
public void clearForImport(String fmt)
Clear the edges vector and the properties.- Overrides:
clearForImport
in classMolecule
- Parameters:
fmt
- input file format. See the text formats on the File Formats in Marvin page.- See Also:
MoleculeGraph.theBonds
,MoleculeGraph.orix
,MoleculeGraph.oriy
,MoleculeGraph.oriz
,MoleculeGraph.setFlags(int)
-
clearObjects
public void clearObjects()
Deletes the graphical objects from this.- Specified by:
clearObjects
in interfacechemaxon.struc.MObjectContainer
- Overrides:
clearObjects
in classMolecule
-
clone
public RxnMolecule clone()
Make an identical copy of the reaction structure. Document is not cloned!
-
clonecopy
public void clonecopy(int[] iatoms, MoleculeGraph g)
Copies the specified nodes and edges of this graph to another one. The RxnMolecule implementation of this method is incomplete.
-
clonecopy
public void clonecopy(MoleculeGraph g)
Make another molecule identical to this one.
-
clonelesscopy
@Deprecated public void clonelesscopy(MoleculeGraph g)
Deprecated.as of Marvin 6.3.
Not supported feature.Copy to selection. Make another molecule identical to this one, but do not clone atoms, bonds, and the props.- Overrides:
clonelesscopy
in classMolecule
- Parameters:
g
- the target structure
-
cloneMoleculeWithDocument
public RxnMolecule cloneMoleculeWithDocument()
Description copied from class:Molecule
Makes an identical copy of the molecule and its document. If the molecule does not have a parent, then copies non-molecular data: graphics objects, electron flows, text boxes, atom and bond sets (color, font and thickness). Otherwise (root, rgroup, component molecule) creates a new document.- Overrides:
cloneMoleculeWithDocument
in classMolecule
- Returns:
- the copy
-
contains
public boolean contains(MolAtom node)
Checks if a reactant, agent or product structure contains the specified node.
-
contains
public boolean contains(MolBond edge)
Checks if a reactant, agent or product structure contains the specified edge.- Overrides:
contains
in classMoleculeGraph
- Parameters:
edge
- the edge object- Returns:
- true if the graph contains the object, false otherwise
- See Also:
Object.equals(Object)
-
determineType
public int determineType(double x, double y, double z)
Determines whether a point should be in a reactant, in a product or in an agent.
-
fixProperties
public void fixProperties()
Description copied from class:MoleculeGraph
Delegates to tracker's fixProperties().- Overrides:
fixProperties
in classMoleculeGraph
-
fuse
public void fuse(MoleculeGraph graph, boolean check)
Add the atoms and bonds of another molecule.- Overrides:
fuse
in classMoleculeGraph
- Parameters:
graph
- the other moleculecheck
-true
if a containment check should be performed to ensure that only those nodes and edges are added that are not already elements -false
if the graph is known to be disjoint from this graph and this check can be safely skipped- Since:
- Marvin 5.0
-
fuse
public void fuse(RxnMolecule rxnMol)
Fuse and RxnMolecule to this RxnMolecule. Adds the reactants of the parameter to the reactants, the agents of the parameter to the agents and the products of the parameter to the products.- Parameters:
rxnMol
-- Since:
- Marvin 6.2, 09/23/2013
-
getAgent
public Molecule getAgent(int i)
Gets an agent.- Parameters:
i
- agent index- Returns:
- an agent
-
getAgentCount
public int getAgentCount()
Gets the number of agents.- Returns:
- the number of agents
-
getAgents
public Molecule[] getAgents()
Gets all agents in an array.- Returns:
- the agents
- Since:
- Marvin 5.3
-
getAllFragments
public List<Molecule> getAllFragments()
Gets the list of reaction fragments (product, reactant, agent components) that build up this reaction.- Returns:
- the list of fragments (Molecule)
- Since:
- Marvin 5.0, 12/06/2007
- See Also:
Molecule
-
getAllObjects
public List<MObject> getAllObjects()
- Specified by:
getAllObjects
in interfacechemaxon.struc.MObjectContainer
- Overrides:
getAllObjects
in classMolecule
-
getArrowAsProperty
public MPropertyContainer getArrowAsProperty()
Gets the properties (type, endpoint coordinates) of the reaction arrow in this reaction.- Returns:
- the properties
-
getAtom
public MolAtom getAtom(int i)
Gets a node.- Overrides:
getAtom
in classMoleculeGraph
- Parameters:
i
- node index- Returns:
- the node object
-
getAtomCount
public int getAtomCount()
Returns the number of nodes in the graph union.- Specified by:
getAtomCount
in interfaceIncomplecule
- Specified by:
getAtomCount
in interfacechemaxon.core.structure.StructureForBuilder
- Overrides:
getAtomCount
in classMoleculeGraph
- Returns:
- the number of nodes
-
getAtomCount
public int getAtomCount(int atomicNumber)
Gets the number of atoms with the given atomic number in the unified molecule graph of the reaction. When atomicNumber is 1, sum includes only explicit Hydrogen atoms (but also D and T isotopes).- Overrides:
getAtomCount
in classMoleculeGraph
- Parameters:
atomicNumber
- atomic number of atoms looked for- Returns:
- number of atoms with the given atomic number
- Since:
- Marvin 5.5, 27/01/2011
-
getAtomIterator
public IteratorFactory.AtomIterator getAtomIterator()
Returns an iterator over the atoms in this molecule in proper sequence.- Overrides:
getAtomIterator
in classMoleculeGraph
- Returns:
- an iterator over the atoms in this molecule in proper sequencer
- Since:
- Marvin 6.2, 2013.09.09.
-
getBond
public MolBond getBond(int i)
Gets an edge.- Overrides:
getBond
in classMoleculeGraph
- Parameters:
i
- edge index in the graph union- Returns:
- the edge object
-
getBondCount
public int getBondCount()
Gets the number of edges in the graph union.- Specified by:
getBondCount
in interfaceIncomplecule
- Overrides:
getBondCount
in classMoleculeGraph
- Returns:
- the number of edges
-
getBondIterator
public IteratorFactory.BondIterator getBondIterator()
Returns an iterator over the bonds in this molecule in proper sequence.- Overrides:
getBondIterator
in classMoleculeGraph
- Returns:
- an iterator over the bonds in this molecule in proper sequence
- Since:
- Marvin 6.2, 2013.09.09.
-
getBondTable
public BondTable getBondTable()
Gets the bond table for the graph union. If there is no bond table for the molecule, then create it. btab.elementAt(i, j) will be the index of the bond between atoms i and j, or -1 if there is no bond.- Overrides:
getBondTable
in classMoleculeGraph
- Returns:
- the btab array
- Since:
- Marvin 5.4
-
getCenter
public DPoint3 getCenter(int type, int i)
Gets the geometrical center of a reaction component.
-
getComponent
public Molecule getComponent(int typeFlag, int i)
Gets a reactant, product or agent.Warning! The
RGROUPED
flag returns anRgMolecule
object having the same atom objects as the original reactant/product/agent. The parent of the atom objects is unchanged (it is the original reactant/product/agent).
-
getComponent
public Molecule getComponent(long id)
Gets a reactant, product or agent.Warning! The
RGROUPED
flag returns anRgMolecule
object having the same atom objects as the original reactant/product/agent. The parent of the atom objects is unchanged (it is the original reactant/product/agent).- Parameters:
id
- the reaction component ID- Returns:
- a reactant, product or agent
- Since:
- Marvin 4.1, 11/19/2005
- See Also:
getComponent(int, int)
-
getComponentCount
public int getComponentCount(int type)
Gets the number of reactants, products or agents.
-
getComponentFlags
public int getComponentFlags(long id)
Gets the reaction component type flags from the ID.- Parameters:
id
- the reaction component ID or -1- Returns:
- the reaction component type or -1
- Since:
- Marvin 4.1, 11/19/2005
-
getComponentID
public long getComponentID(MolAtom atom)
Gets the reaction component ID of an atom.- Parameters:
atom
- the atom- Returns:
- the reaction component ID or -1 if not found
- Since:
- Marvin 4.1, 11/19/2005
-
getComponentID
public long getComponentID(MolBond bond)
Gets the reaction component ID of a bond.- Parameters:
bond
- the bond- Returns:
- the reaction component ID or -1 if not found
- Since:
- Marvin 4.1, 11/19/2005
-
getComponentID
public long getComponentID(Molecule molecule)
Gets the ID of a reaction component.- Parameters:
molecule
- the reaction component- Returns:
- the reaction component ID or -1 if not found
- Since:
- Marvin 4.1, 11/19/2005
-
getComponentIndex
public int getComponentIndex(long id)
Gets the reactant, product or agent index from the ID.- Parameters:
id
- the reaction component ID or -1- Returns:
- the reaction component index or -1
- Since:
- Marvin 4.1, 11/19/2005
-
getComponentType
public int getComponentType(long id)
Gets the reaction component type from the ID.- Parameters:
id
- the reaction component ID or -1- Returns:
- the reaction component type or -1
- Since:
- Marvin 4.1, 11/19/2005
-
getCtab
public int[][] getCtab()
Gets the connection table for the graph union. If there is no connection table for the molecule, then create it. ctab[i][j] will be the index of the jth neighbor of the ith atom.- Overrides:
getCtab
in classMoleculeGraph
- Returns:
- the ctab array
-
getFormula
public String getFormula()
Gets the molecular formula in Hill order.- Overrides:
getFormula
in classMoleculeGraph
- Returns:
- the formula
-
getGraphUnion
public MoleculeGraph getGraphUnion()
Gets a graph containing all the atoms and bonds.- Overrides:
getGraphUnion
in classMoleculeGraph
- Returns:
- the unified structure
- Since:
- Marvin 3.0, 11/11/2002
- See Also:
Molecule.getGraphUnionAsSelection()
-
getItsArrow
public chemaxon.struc.graphics.MRArrow getItsArrow()
Gets the reaction arrow of this reaction. If the arrow is not yet set creates one.- Returns:
- the reaction arrow of this reaction
- Since:
- Marvin 5.0, 12/06/2007
-
getLocalParity
public int getLocalParity(int i)
Computes the local parity of an atom of the RxnMolecule instance based on both the coordinates of the neighboring atoms and the stereo information of the bonds to those. The molecule symmetry is not checked, so even an atom with same ligands can have parity. Leaves the imported parity unchanged. Contracted sgroups must be expanded to achieve consistent result.- Overrides:
getLocalParity
in classMoleculeGraph
- Parameters:
i
- the index of the atom whose parity is to be determined- Returns:
- PARITY_ODD or PARITY_EVEN for atoms of odd or even parity, PARITY_EITHER for atoms with wiggly bond 0 for atoms whose parity is unspecified or not known.
- Throws:
SecurityException
- the Parity module cannot be loaded because of security reasons (firewall)- See Also:
StereoConstants.PARITY_ODD
,StereoConstants.PARITY_EVEN
,StereoConstants.PARITY_EITHER
,MoleculeGraph.isAbsStereo()
,setAbsStereo(boolean)
,MoleculeGraph.getLocalParity(int)
-
getMass
public double getMass()
Calculates the molecular weight of the molecule. Always returns 0 for reactions- Overrides:
getMass
in classMoleculeGraph
- Returns:
- the molecular weight
-
getMSLogic
@Deprecated public Map<chemaxon.struc.graphics.MRArrow,RxnMolecule> getMSLogic()
Deprecated.Multi-step reactions not supported. Method performs no operations.Multi-step reactions not supported. Method always returns null.- Returns:
- returns the hash that stores the mapping.
-
getObjectCount
public int getObjectCount()
- Specified by:
getObjectCount
in interfacechemaxon.struc.MObjectContainer
- Overrides:
getObjectCount
in classMolecule
-
getParity
public int getParity(int i)
Computes the parity of an atom of the RxnMolecule instance based on both the coordinates of the neighboring atoms and the stereo information of the bonds to those. Leaves the imported parity unchanged.- Overrides:
getParity
in classMoleculeGraph
- Parameters:
i
- the index of the atom whose parity is to be determined- Returns:
- 0 for nonchiral, PARITY_ODD or PARITY_EVEN for atoms of odd or even parity, PARITY_ODD|PARITY_EVEN for atoms whose parity is unspecified or cannot be assigned -as they are defined in MolAtom
- Throws:
SecurityException
- the Parity module cannot be loaded because of security reasons (firewall)- See Also:
StereoConstants.PARITY_ODD
,StereoConstants.PARITY_EVEN
,MoleculeGraph.isAbsStereo()
,setAbsStereo(boolean)
,MoleculeGraph.getParity(int)
-
getProduct
public Molecule getProduct(int i)
Gets a product.- Parameters:
i
- product index- Returns:
- a product
-
getProductCount
public int getProductCount()
Gets the number of products.- Returns:
- the number of products
-
getProducts
public Molecule[] getProducts()
Gets all products in an array.- Returns:
- the products
- Since:
- Marvin 5.3
-
getReactant
public Molecule getReactant(int i)
Gets a reactant.- Parameters:
i
- reactant index- Returns:
- a reactant
-
getReactantCount
public int getReactantCount()
Gets the number of reactants.- Returns:
- the number of reactants
-
getReactants
public Molecule[] getReactants()
Gets all reactants in an array.- Returns:
- the reactants
- Since:
- Marvin 5.3
-
getReactionArrow
public DPoint3[] getReactionArrow()
Gets a two-element array containing the endpoints of the reaction arrow.- Returns:
- the arrow
-
getReactionArrow
public chemaxon.struc.graphics.MRArrow getReactionArrow(boolean generate)
Gets the reaction arrow of this reaction with the possibility to generate an arrow if the arrow is not yet set.- Parameters:
generate
- if true then arrow is generated in case when the arrow is not yet set.- Returns:
- the arrow of this reaction, null if the arrow is not set and the
generate
parameter was false.
-
getReactionArrowList
public List<chemaxon.struc.graphics.MRArrow> getReactionArrowList()
Gets the list of the reaction arrows of this reaction.- Returns:
- the list of MRArrow-s
- Since:
- Marvin 5.0
- See Also:
MRArrow
-
getReactionArrowType
public int getReactionArrowType()
Gets the reaction arrow type.- Returns:
- the reaction arrow type, REGULAR_SINGLE if no reaction arrow is set.
- Since:
- Marvin 3.5
- See Also:
REGULAR_SINGLE
,RESONANCE
,RETROSYNTHETIC
,EQUILIBRIUM
,REGULAR_DOUBLE
,TWO_HEADED_SINGLE
,TWO_HEADED_DOUBLE
-
getReactionArrowTypeName
public String getReactionArrowTypeName()
Gets the reaction arrow type name. Used in molecule export.- Returns:
- the reaction arrow type name:
- "DEFAULT" for arrow type RxnMolecule.REGULAR_SINGLE or in case if no reaction arrow is set.
- "RESONANCE" for arrow type RxnMolecule.RESONANCE or RxnMolecule.TWO_HEADED_SINGLE
- "RETROSYNTHETIC" for arrow type RxnMolecule.RETROSYNTHETIC or RxnMolecule.REGULAR_DOUBLE
- "EQUILIBRIUM" for arrow type RxnMolecule.EQUILIBRIUM or RxnMolecule.TWO_HEADED_DOUBLE
- Since:
- Marvin 3.5
-
getReactionSteps
public ArrayList<RxnMolecule> getReactionSteps()
Divides this reaction into simple step reactions if this is a multistep reaction.- Returns:
- the list of RxnMolecule-s if this is a multistep reaction empty list otherwise.
- Since:
- Marvin 5.0
-
getType
public int getType(MoleculeGraph selection)
Checks whether the atoms in the selection are all in reactants, products or agents.
-
hasAtomSet
public boolean hasAtomSet()
Tests whether the molecule graph has atom sets.- Overrides:
hasAtomSet
in classMolecule
- Returns:
true
if there are atom sets,false
otherwise- Since:
- Marvin 4.0, 03/02/2005
-
hasBondSet
public boolean hasBondSet()
Tests whether the molecule graph has atom sets.- Overrides:
hasBondSet
in classMoleculeGraph
- Returns:
true
if there are atom sets,false
otherwise- Since:
- Marvin 4.0, 03/02/2005
-
indexOf
public int indexOf(MolAtom node)
Gets the index of the specified node in the graph union.- Overrides:
indexOf
in classMoleculeGraph
- Parameters:
node
- the node- Returns:
- the index, or -1 if not found
- Since:
- Marvin 2.7
-
indexOf
public int indexOf(MolBond edge)
Gets the index of the specified edge in the graph union.- Overrides:
indexOf
in classMoleculeGraph
- Parameters:
edge
- the edge- Returns:
- the index, or -1 if not found
- Since:
- Marvin 2.7
- See Also:
Object.equals(Object)
-
isAtom
@Deprecated public boolean isAtom()
Deprecated.As of Marvin 14.7.7, no replacement.
Not supported feature.A reaction molecule cannot represent an atom.- Overrides:
isAtom
in classMoleculeGraph
- Returns:
- false
-
isBond
@Deprecated public boolean isBond()
Deprecated.As of Marvin 14.7.7, no replacement.
Not supported feature.A reaction molecule cannot represent a bond.- Overrides:
isBond
in classMoleculeGraph
- Returns:
- false
-
isEmpty
public boolean isEmpty()
Ask if the reaction is empty or not.
-
isIncompleteReaction
public boolean isIncompleteReaction()
Check whether the reaction is incomplete or not.- Returns:
- true if something is missing, false if it seems to be okay
- Since:
- Marvin 3.5
-
isMergedComponent
public boolean isMergedComponent(MoleculeGraph m)
Check whether given molecule is reaction component with a set of intentionally merged fragments or not.- Parameters:
m
- the molecule to check- Returns:
- true if merged
-
isQuery
public boolean isQuery()
Indicates if the molecule has query features: query atoms or query bonds.- Overrides:
isQuery
in classMoleculeGraph
- Returns:
true
if any of the components has query features- Since:
- Marvin 6.0 26/01/2013
- See Also:
MolAtom.isQuery()
,MolBond.isQuery()
-
isReaction
public boolean isReaction()
Checks if the structure represents a reaction or not.- Overrides:
isReaction
in classMolecule
- Returns:
- true
- Since:
- Marvin 3.0
-
isSingleStepReaction
@Deprecated public boolean isSingleStepReaction()
Deprecated.Multi-step reactions not supported. Method always returns true.- Returns:
- true
-
mergeAtoms
@Deprecated public void mergeAtoms(MolAtom that, MolAtom node)
Deprecated.As of Marvin 6.2, useMergeUtil.mergeAtoms(MolAtom, MolAtom, boolean)
instead.Merges bonds of an atom with another atom, then add the atom to the molecule.- Overrides:
mergeAtoms
in classMolecule
- Parameters:
that
- the atomnode
- the other atom
-
mergeComponentParts
public void mergeComponentParts(MoleculeGraph m, int type, boolean isMergeStored) throws IllegalArgumentException
Finds those component parts that are contained in the molecule graph m and creates a new component containing all atoms of m, splitting them from the previous merges.- Parameters:
m
- molecule graph that contains atoms of the fragments to mergetype
- type of component parts to merge (only parts of components of the same type can be merged)isMergeStored
- if true then merged component remains merged until not splitted intentionnaly- Throws:
IllegalArgumentException
- See Also:
splitComponentParts(chemaxon.struc.MoleculeGraph, int)
-
newInstance
public MoleculeGraph newInstance()
Creates a new RxnMolecule object. The dimension and the origin coordinates will be the same as in the original molecule.- Overrides:
newInstance
in classMolecule
- Returns:
- the new reaction
-
rebuildStructures
public void rebuildStructures()
For each structure (reactant or product) determines whether it should be a reactant or a product depending on its the relative position to the reaction arrow. Rebuilds the reactant and product vectors accordingly.
-
rebuildStructures
public void rebuildStructures(DPoint3[] arw, int art)
Sets the reaction arrow. For each reaction component (reactant or product) determines whether it should be a reactant or a product depending on its the relative position to the reaction arrow. Rebuilds the reactant and product vectors accordingly.- Parameters:
arw
- is the new reaction arrowart
- is the new reaction arrow type
-
recalcReactionArrow
public void recalcReactionArrow()
Recalculates the coordinates of the reaction arrow from the reactants and products, forced recalculation.
-
regenBonds
public void regenBonds()
Regenerate the edge vectors: remove their elements, then put the edge objects from the nodes into it.- Overrides:
regenBonds
in classMoleculeGraph
-
removeAll
public void removeAll()
Remove all the atoms and bonds from the root structure, and from all the R-groups.
-
removeAllBonds
public void removeAllBonds()
Removes all bonds from the reactants, products and agents.- Overrides:
removeAllBonds
in classMolecule
-
removeAtom
public void removeAtom(int iu, int cleanupFlags)
Removes an atom from the reactants, products or agents. This method is for internal use only. UseMoleculeGraph.removeAtom(MolAtom)
instead unless you are sure what you are doing.- Overrides:
removeAtom
in classMolecule
- Parameters:
iu
- atom index in the graph unioncleanupFlags
- extra clean-up methods- Since:
- Marvin 3.1
- See Also:
MoleculeGraph.RMCLEANUP_NONE
,MoleculeGraph.RMCLEANUP_ALL
,MoleculeGraph.RMCLEANUP_EDGES
,MoleculeGraph.RMCLEANUP_STEREO
,Molecule.RMCLEANUP_SGROUPATOMS
,Molecule.RMCLEANUP_FROMSGROUPS
-
removeAtom
public void removeAtom(MolAtom node, int cleanupFlags)
Removes an atom from the reactants, products or agents. This method is for internal use only. UseMoleculeGraph.removeAtom(MolAtom)
instead unless you are sure what you are doing.- Overrides:
removeAtom
in classMolecule
- Parameters:
node
- the atomcleanupFlags
- extra clean-up methods- Since:
- Marvin 3.1
- See Also:
MoleculeGraph.RMCLEANUP_NONE
,MoleculeGraph.RMCLEANUP_ALL
,MoleculeGraph.RMCLEANUP_EDGES
,MoleculeGraph.RMCLEANUP_STEREO
,Molecule.RMCLEANUP_SGROUPATOMS
,Molecule.RMCLEANUP_FROMSGROUPS
-
removeComponent
public Molecule removeComponent(int flags, int i)
Removes a reactant, product or agent.Warning! The
RGROUPED
flag returns anRgMolecule
object having the same atom objects as the original reactant/product/agent. The parent of the atom objects is unchanged (it is the original reactant/product/agent).
-
removeEmptyComponents
public void removeEmptyComponents()
Checks all the componentes and removes those that are empty (node count is zero).
-
removeObject
public void removeObject(MObject o)
Removes a graphical object from this.- Specified by:
removeObject
in interfacechemaxon.struc.MObjectContainer
- Overrides:
removeObject
in classMolecule
- Parameters:
o
- the graphical object
-
removeReactionArrow
public void removeReactionArrow()
Removes the reaction arrow of this reacion.
-
replaceBond
@Deprecated public void replaceBond(MolBond olde, MolBond newe)
Deprecated.as of Marvin 6.2, may constructs inconsistentMoleculeGraph
. UseMoleculeGraph.removeBond(MolBond)
for bond removal andadd(MolBond)
for adding a new bond to the molecule.Replaces an edge by another one.- Overrides:
replaceBond
in classMoleculeGraph
- Parameters:
olde
- the old edgenewe
- the new edge- Since:
- Marvin 4.1, 11/24/2005
-
revalidateCoordDependentProps
public void revalidateCoordDependentProps()
Revalidate coordinate dependent properties. This method should be called at molecule import, after all atomic coordinates and bonds are parsed.- Overrides:
revalidateCoordDependentProps
in classMoleculeGraph
- Since:
- Marvin 4.1, 08/03/2006
-
selectAllObjects
public void selectAllObjects(boolean s)
- Specified by:
selectAllObjects
in interfacechemaxon.struc.MObjectContainer
- Overrides:
selectAllObjects
in classMolecule
-
setAbsStereo
public void setAbsStereo(boolean c)
Sets the absolute stereoconfiguration flag for all the structures.- Overrides:
setAbsStereo
in classMoleculeGraph
- Parameters:
c
- the absolute stereoconfiguration flag- See Also:
MoleculeGraph.setFlags(int)
-
setAtom
@Deprecated public void setAtom(int iu, MolAtom node)
Deprecated.As of Marvin 6.2, may constructs inconsistentMoleculeGraph
. UseMoleculeGraph.removeAtom(MolAtom)
andadd(MolAtom)
to modify the structure.Sets the node at the specified index.- Overrides:
setAtom
in classMoleculeGraph
- Parameters:
iu
- node index in the graph unionnode
- new node reference
-
setBond
@Deprecated public void setBond(int iu, MolBond edge)
Deprecated.as of Marvin 6.2, may constructs inconsistentMoleculeGraph
. UseMoleculeGraph.removeBond(MolBond)
for bond removal andadd(MolBond)
for adding a new bond to the molecule.Sets the edge at the specified index.- Overrides:
setBond
in classMoleculeGraph
- Parameters:
iu
- edge index in the graph unionedge
- new node reference
-
setDim
public void setDim(int d)
Sets the dimension for all the structures.- Overrides:
setDim
in classMolecule
- Parameters:
d
- 0, 2 or 3- See Also:
MoleculeGraph.getFlags()
-
setLocation
public void setLocation(DPoint3 p)
Set the origin of the molecule. The MolAtom coordinates are relative to this origin.- Overrides:
setLocation
in classMoleculeGraph
- Parameters:
p
- the origin- See Also:
MoleculeGraph.orix
-
setMSLogic
@Deprecated public void setMSLogic(Map<chemaxon.struc.graphics.MRArrow,RxnMolecule> ms)
Deprecated.Multi-step reactions not supported. Method performs no operations.Multi-step reactions not supported. Method performs no operations. Method declaration kept for compatibility reasons.- Parameters:
ms
- mapping store.
-
setReactionArrow
public void setReactionArrow(DPoint3... points)
Sets the endpoint coordinates of the reaction arrow. Sets the stored reaction arrow to its calculated value if no argument passed.- Parameters:
points
- endpoint coordinates of the reaction arrow- Throws:
IllegalArgumentException
- if argument contains one point only.
-
setReactionArrow
public void setReactionArrow(chemaxon.struc.graphics.MRArrow arrow)
Sets the reaction arrow.- Parameters:
arrow
-
-
setReactionArrow0
public void setReactionArrow0(DPoint3... points)
Sets the reaction arrow. Sets the stored reaction arrow 'arrowPoints' to its calculated value if no argument passed.- Parameters:
points
- is the new reaction arrow.- Throws:
IllegalArgumentException
- if argument contains one point only.
-
setReactionArrowEndPoints
public void setReactionArrowEndPoints(DPoint3[] points)
Sets the endpoints of the reaction arrow in this reaction. If the arrow is not yet set creates one with the given endpoint coordinates.- Parameters:
points
- the endpoint coordinates of the arrow- Since:
- Marvin 5.0, 12/06/2007
-
setReactionArrowType
public void setReactionArrowType(int type)
Sets the reaction arrow type.- Parameters:
type
- the reaction arrow type- Since:
- Marvin 3.5
-
setReactionArrowType
public void setReactionArrowType(String name)
Sets the reaction arrow type from type name. Used in molecule import.- Parameters:
name
- the reaction arrow type name- Throws:
IllegalArgumentException
- for invalid type name- Since:
- Marvin 3.5
-
setSgroupParent
public void setSgroupParent(MolAtom a, Sgroup sg, boolean set)
Sets or unsets an S-group as a parent of an atom in reactants, products or agents.- Overrides:
setSgroupParent
in classMolecule
- Parameters:
a
- the atomsg
- the S-groupset
- set (true) or unset (false)- Throws:
IllegalArgumentException
- neither reactants, nor products or agents contain the atom- Since:
- Marvin 3.0
-
simplifyIncompleteReactionToMolecule
public Molecule simplifyIncompleteReactionToMolecule()
Simplify a reaction to a molecule if possible. If the reaction is incomplete and it only contains one reactant, one product or one agent, then that object is returned. Otherwise, simplification is impossible andthis
is returned.- Returns:
- a reactant, product, agent or
this
- Since:
- Marvin 4.0
- See Also:
Molecule.getSimplifiedMolecule()
-
simplifyToMolecule
public Molecule simplifyToMolecule()
Simplifies this RxnMolecule by moving the atoms and bonds from the reactants, products, and agents to a Molecule. Clears reactans, products, agents.- Returns:
- the simplified molecule
- Since:
- Marvin 5.0
-
sortBondsAccordingTo
public void sortBondsAccordingTo(MolBond[] order)
Sort edges in the same order as they appear in the specified array.- Overrides:
sortBondsAccordingTo
in classMoleculeGraph
- Parameters:
order
- the array- Since:
- Marvin 3.5, 09/02/2004
-
splitAllDisconnectedComponents
public void splitAllDisconnectedComponents()
Replaces all disconnected reaction components by its connected fragments in the structure array.- Since:
- Marvin 5.4, 07/07/2010
- See Also:
splitDisconnectedComponent(int, int)
-
splitComponentParts
public void splitComponentParts(MoleculeGraph m, int type) throws IllegalArgumentException
Finds those component parts that are contained in the molecule graph m and creates separate components from the fragments contained in m, splitting them from the previous merges.- Parameters:
m
- molecule graph that contains atoms of the fragments to splittype
- type of component parts to merge (only parts of components of the same type can be merged)- Throws:
IllegalArgumentException
-
splitDisconnectedComponent
public void splitDisconnectedComponent(int type, int index)
Replaces a disconnected reaction component by its connected fragments in the structure array.
-
splitDisconnectedComponent
public void splitDisconnectedComponent(long id)
Replaces a disconnected reaction component by its connected fragments in the structure array.- Parameters:
id
- the reaction component ID- Since:
- Marvin 4.1, 11/19/2005
- See Also:
splitDisconnectedComponent(int, int)
-
stereoClean
public boolean stereoClean()
Reset the wedges of the molecule, based on the actual parity information in 2D remove wedges in 3D. Take care of expanding the molecule if neccessary.- Overrides:
stereoClean
in classMoleculeGraph
- Returns:
- true if succesful
- See Also:
MoleculeGraph.stereoClean()
-
toString
public String toString()
Overrides Object.toString() to ease debugging.- Overrides:
toString
in classMoleculeGraph
- Returns:
- a string representation of the object
-
transform
public void transform(CTransform3D t, boolean incg)
Apply a transformation matrix to the atomic coordinates and the reaction arrow.
-
updateComponentRoles
public void updateComponentRoles()
Updates fragment roles in the molecule. roles are like: - nodes that are sources only: are REACTANTS - nodes that are sinks only: are PRODUCTS - all other nodes: are AGENTS For single step reactions: if the reaction is stored as single step, does nothing. If the single reaction is stored in the hash, transforms it into a single step one.
-
addAtomToFragment
protected void addAtomToFragment(MolAtom a)
Adds an atom to a fragment. S-groups are added only if all atoms are already in the molecule.- Overrides:
addAtomToFragment
in classMolecule
- Parameters:
a
- the atom reference
-
checkSgroupConsistency
protected void checkSgroupConsistency()
Checks the consistency of S-groups.- Overrides:
checkSgroupConsistency
in classMolecule
- Throws:
RuntimeException
- if inconsistency found- Since:
- Marvin 5.0, 11/06/2007
-
createGearch
protected chemaxon.struc.gearch.MoleculeGraphGearch createGearch()
- Overrides:
createGearch
in classMolecule
-
fillSelectionMolecule
protected void fillSelectionMolecule(SelectionMolecule s)
Adds all atoms and bonds of the root structure and the R-groups to the specified molecule.- Overrides:
fillSelectionMolecule
in classMolecule
- Parameters:
s
- the selection molecule- Since:
- Marvin 3.0, 11/05/2002
-
fuse0
protected void fuse0(MoleculeGraph graph, boolean check)
Add those nodes and edges of a graph that are not already elements. If the graph has an atom connected to a reactant or product, then also adds the graph to that structure. Handles one connected component.- Overrides:
fuse0
in classMolecule
- Parameters:
graph
- the structure to fuse into this onecheck
-true
if a containment check should be performed to ensure that only those nodes and edges are added that are not already elements -false
if the graph is known to be disjoint from this graph and this check can be safely skipped- Since:
- Marvin 5.0
-
getSubGraphCount
protected final int getSubGraphCount()
Gets the number of all "submolecules".- Overrides:
getSubGraphCount
in classMoleculeGraph
- Returns:
- the number of submolecules
- Since:
- Marvin 4.1.2
- See Also:
MoleculeGraph.getSubGraphs(MoleculeGraph[], int)
-
getSubGraphs
protected final void getSubGraphs(MoleculeGraph[] arr, int off)
Gets all "submolecules".- Overrides:
getSubGraphs
in classMoleculeGraph
- Parameters:
arr
- the output arrayoff
- offset- Since:
- Marvin 4.1.2
- See Also:
MoleculeGraph.getSubGraphs()
,MoleculeGraph.getSubGraphCount()
-
isRealAtomParent
protected boolean isRealAtomParent()
Reaction molecules cannot be real node parents.- Overrides:
isRealAtomParent
in classMoleculeGraph
- Returns:
- false
- Since:
- Marvin 3.0
-
makeItSimilar
protected void makeItSimilar(MoleculeGraph g)
Copies some properties of this molecule to the other one specified as argument. Copies the reaction arrow.- Overrides:
makeItSimilar
in classMolecule
- Parameters:
g
- the molecule to change
-
removeBond
protected void removeBond(int iu, int cleanupFlags)
Removes an edge from a reactant, agent or product.- Overrides:
removeBond
in classMolecule
- Parameters:
iu
- edge index in the graph unioncleanupFlags
- extra clean-up methods- Since:
- Marvin 3.1
- See Also:
MoleculeGraph.RMCLEANUP_NONE
,MoleculeGraph.RMCLEANUP_ALL
,MoleculeGraph.RMCLEANUP_EDGES
,MoleculeGraph.RMCLEANUP_STEREO
,Molecule.RMCLEANUP_SGROUPATOMS
,Molecule.RMCLEANUP_FROMSGROUPS
-
removeBond
protected void removeBond(MolBond edge, int cleanupFlags)
Removes a bond from the reactants, products or agents.- Overrides:
removeBond
in classMolecule
- Parameters:
edge
- the edgecleanupFlags
- extra clean-up methods- Since:
- Marvin 3.1
- See Also:
MoleculeGraph.RMCLEANUP_NONE
,MoleculeGraph.RMCLEANUP_ALL
,MoleculeGraph.RMCLEANUP_EDGES
,MoleculeGraph.RMCLEANUP_STEREO
,Molecule.RMCLEANUP_SGROUPATOMS
,Molecule.RMCLEANUP_FROMSGROUPS
-
setSupergraph
protected void setSupergraph(MoleculeGraph molecule)
Sets the given molecule as the supergraph of this graph and its components.- Overrides:
setSupergraph
in classMoleculeGraph
- Parameters:
molecule
- the molecule- Since:
- Marvin 14.7.7, Jul 2, 2014
-
transformReactionArrow
protected void transformReactionArrow(CTransform3D t)
Apply a transformation matrix to the reaction arrow.- Parameters:
t
- the transformation matrix
-
-