Package chemaxon.struc
Class Sgroup
java.lang.Object
chemaxon.struc.Sgroup
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
DataSgroup
,MulticenterSgroup
,MultipleSgroup
,RepeatingUnitSgroup
,SuperatomSgroup
Structural group representation in the molecule.
A structural group is an entity in the molecule. Some of these entities has direct subclasses.
Some example use cases:
A structural group is an entity in the molecule. Some of these entities has direct subclasses.
Some example use cases:
- It can be an abbreviation of a molecule part represented as
SuperatomSgroup
. - A repeating unit in the molecule represented as
RepeatingUnitSgroup
. - Data assigned to a part of the molecule represented as
DataSgroup
. - A bond which has connection to multiple atom in the molecule is represented as multicenter sgroup type.
- Components in the molecule can be represented as component sgroups.
See also the possible return values of getType()
method which
describes the possible sgroup types.
Some relevant functions in the molecule to handle these structural elements:
Molecule.addSgroup(Sgroup, boolean)
Molecule.expandSgroups()
Molecule.findAllSgroupContaining(MolAtom)
Molecule.findContainingMulticenterSgroup(MolAtom)
Molecule.findContractableSgroup()
Molecule.findExpandableSgroup()
Molecule.findSgroupContaining(MolAtom)
Molecule.findSgroupOf(MolAtom)
Molecule.findSmallestSgroupContaining(MolAtom)
Molecule.getRootSgroups()
Molecule.getSgroup(int)
Molecule.getSgroupArray()
Molecule.getSgroupCount()
Molecule.getSgroupLigands()
Molecule.getSortedSgroups()
Molecule.isGUIContracted()
Molecule.removeSgroupFromList(Sgroup)
Molecule.removeSgroupsOf(Molecule)
Molecule.setSgroupParent(MolAtom, Sgroup, boolean)
Molecule.ungroupSgroup(Sgroup)
See also example code snippets about Sgroups.
- Since:
- Marvin 3.0
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionSet for storing the atoms of the s-group's graph.static final int
Charge is located on atoms and displayed on atoms.static final int
Charge is located on atoms but displayed on the whole group (bracket).protected Sgroup
static final int
Print atom symbols.protected static final int
Atom removal in expand.protected static final int
Replace without duplicating.static final int
Either unknown S-group connectivity.static final int
Head-to-head S-group connectivity.static final int
Head-to-tail S-group connectivity.static final int
Number of S-group types.protected SelectionMolecule
The S-group's internal structure.protected int
The S-group type.static final int
Parent-child sort order.static final int
Parent-child sort order.static final int
Alternating polymer S-group subtype.static final int
Block polymer S-group subtype.static final int
Random polymer S-group subtype.static final int
Amino acid s-group type.static final int
Any polymer S-group type.static final int
Component S-group type.static final int
Copolymer S-group type.static final int
Crosslink S-group type.static final int
Data S-group type.static final int
Formulation S-group type.static final int
Generic S-group type.static final int
Graft S-group type.static final int
Mer S-group type.static final int
Mixture S-group type.static final int
Modification S-group type.static final int
Monomer S-group type.static final int
Multicenter S-group type.static final int
Multiple group S-group type.static final int
SRU (Structural Repeating Unit: polymers and repeating units with repetition ranges) S-group type.static final int
Superatom S-group type.static final int
S-group is contracted (useful only in GUI!).static final int
S-group is in an undetermined state.static final int
S-group is expanded.static final int
S-group is expanded but its atoms have the same coordinates as in contracted state. -
Constructor Summary
ModifierConstructorDescriptionDeprecated.Deprecated.As of Marvin 5.12, replaced bySgroupFactory.createSgroup(Molecule, SgroupType)
andsetXState(int)
.protected
Sgroup
(Molecule parent, SgroupType type) protected
Sgroup
(Molecule parent, SgroupType type, int xstate) protected
Copy constructor.protected
Copy constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a new atom to the S-group.void
addBracket
(MBracket bracket) Adds a bracket to this S-group.final void
addChildSgroup
(Sgroup sg) Adds a child S-group.boolean
Checks whether the child S-groups are visible.protected void
protected void
checkBonds
(MolAtom atom) Add the bonds of the given atom to the sgroup if the given atom and the other atom of the selected bond is in the sgroup.boolean
Checks if the sgroup contains all of the child sgroup's atoms and checks consistency between atom and bond references.protected boolean
checkSgroupGraphConsistency
(Sgroup parentSgroup) Checks whether the parameter s-group contains the atoms of this s-group.void
Clears all MObject-s that belong to this S-groups.final Sgroup
cloneSgroup
(Molecule m, Sgroup psg) Gets a new Sgroup instance.protected Sgroup
cloneSgroup
(Molecule m, Sgroup psg, int[] atomIndexMap) Gets a new Sgroup instance.final SelectionMolecule
Gets the clone of the structure stored.boolean
Is this atom contained by the s-group?boolean
Checks if the S-group contains the atoms of another S-group.protected boolean
contract
(int opts) Sets the state toXSTATE_C
.final int
Counts the total number of atoms recursively.Creates a molecule object that contains only this group.Creates a cloned sgroup instance and a molecule object that contains only this sgroup.protected boolean
expand
(int f) MolBond[]
Finds the crossing bonds.final Sgroup
Finds the smallest S-group containing the specified node.final Sgroup
Finds the smallest S-group that has the specified node.final MolAtom
getAtom
(int i) Gets an atom in the S-group.final MolAtom[]
Gets the array of atoms in the S-group.final int
Gets the number of atoms in the S-group.protected static String
getAtomSymbolListAsString
(MolAtom[] atoms) protected static int
Gets the attachment point information from the ExtraAtomPropertiesMolBond[]
Gets all bonds connecting two atoms that are both in the Sgroupint
Gets the number of brackets in this S-group.Gets all graphic brackets from this Sgroupint
Returns the charge location attribute of the S-group.final Sgroup
getChildSgroup
(int i) Gets a child S-group.final int
Gets the number of child S-groups.protected Sgroup[]
Gets the children of this S-group.int
Gets S-group connectivity.MolAtom[]
getCrossingAtoms
(MolBond[] xbonds) Gets the atoms that have crossing bonds.getId()
final Molecule
Gets the parent molecule.final Sgroup
Gets the parent S-group.Gets a COPY of the molecule graph.Gets the S-group type.Gets the subscript for non-superatom S-groups.int
Gets polymer S-group subtype.Gets the superscript for non-superatom S-groups.int
Calculates the sum of the charge values on the atoms in this S-group.int
getType()
Gets S-group type.final int
Gets the expanded/contracted state.boolean
Is the specified atom an element of this group?boolean
Checks if brackets should be painted or not.int
Gets the atom index in the S-group graph.int
Gets the bond index in the S-group graph.void
Initializes the list of brackets in this S-group.boolean
isBracketCrossingBond
(MolBond bond) boolean
Tests whether the bracket is visible.boolean
isDescendantOf
(Sgroup psg) Decides whether this is a descendant of another sgroup.final boolean
isEmpty()
Is it an empty S-group?boolean
Returns if the Sgroup is ordered component Sgroup.boolean
Decides if part of the sgroup is selected or not.boolean
Decides whether an S-group should be ungrouped if its structure changes.boolean
isSelected
(MoleculeGraph sel) Is the sgroup or part of the sgroup selected?boolean
Decides if the whole sgroup is selected or not.final boolean
Checks whether this group is 'visible' (all parents are expanded in case of superatom S-groups) or not.final void
Removes an atom and its bonds from the S-group.protected void
removeAtom
(MolAtom a, int opts) Removes an atom and its bonds from the S-group.protected static void
removeAtom
(Sgroup sg, MolAtom a, int opts) Wrapper method that callsremoveAtom(MolAtom, int)
of sg.protected void
Removes a bond from the S-group.void
Removes the edge references.final void
Removes an S-group from the children list.protected static void
removeGroupedAtom
(MoleculeGraph m, MolAtom a, MolBond[] v, int opts) Removes an atom from the molecule and remove its specified bonds.void
removeObject
(MObject mo) Removes the specified MObject from this Sgroup.final void
replaceAtom
(MolAtom olda, MolAtom newa) Replace an existing atom by a new one in this S-group and its parent (recursively).void
replaceAtom
(MolAtom olda, MolAtom newa, int opts) Replace an existing atom by a new one in this S-group and its parent (recursively).void
selectAllObjects
(boolean s) Sets the selection state of the MObject-s that belong to this Sgroup.void
Sets the specified atom in the S-group graph.void
setChargeLocation
(int location) Sets the charge location attribute of the S-group.void
setConnectivity
(int c) Sets S-group connectivity.boolean
setGUIStateRecursively
(boolean v) Deprecated.as of Marvin 6.2, useMolecule.setGUIContracted(boolean)
for such functionalityboolean
setGUIStateRecursively
(boolean contract, int opts) Deprecated.as of Marvin 6.2, useMolecule.setGUIContracted(boolean)
for such functionalityvoid
protected final void
Sets the parent molecule.void
Sets the molecule graph.void
Sets the subscript for non-superatom S-groups.void
setSubType
(int t) Sets polymer S-group subtype.final void
setXState
(int state) Sets the expanded/contracted state.final void
setXState
(int state, int opts) Deprecated.as of Marvin 6.2, usesetXState(int)
insteadprotected void
setXState0
(int state) static void
Sorts S-groups in parent-child or child-parent order.final String
toString()
Overrides Object.toString() to ease debugging.toString
(int opts) Gets a string representation of the S-group.protected void
transformByParent
(CTransform3D t, boolean incg) Applies a transformation matrix to the coordinates.
-
Field Details
-
SGROUP_TYPE_COUNT
public static final int SGROUP_TYPE_COUNTNumber of S-group types. @see #getType()- See Also:
-
ST_SUPERATOM
public static final int ST_SUPERATOMSuperatom S-group type. @see #getType()- See Also:
-
ST_MULTIPLE
public static final int ST_MULTIPLEMultiple group S-group type. @see #getType()- See Also:
-
ST_SRU
public static final int ST_SRUSRU (Structural Repeating Unit: polymers and repeating units with repetition ranges) S-group type.- See Also:
-
ST_MONOMER
public static final int ST_MONOMERMonomer S-group type. @see #getType()- See Also:
-
ST_MER
public static final int ST_MERMer S-group type. @see #getType()- See Also:
-
ST_COPOLYMER
public static final int ST_COPOLYMERCopolymer S-group type. @see #getType()- See Also:
-
ST_CROSSLINK
public static final int ST_CROSSLINKCrosslink S-group type. @see #getType()- See Also:
-
ST_MODIFICATION
public static final int ST_MODIFICATIONModification S-group type. @see #getType()- See Also:
-
ST_MIXTURE
public static final int ST_MIXTUREMixture S-group type. Mixture S-groups are composed from unordered component S-groups.- See Also:
-
ST_FORMULATION
public static final int ST_FORMULATIONFormulation S-group type. Formulation S-groups are composed from ordered component S-groups.- See Also:
-
ST_DATA
public static final int ST_DATAData S-group type. @see #getType()- See Also:
-
ST_ANY
public static final int ST_ANYAny polymer S-group type. @see #getType()- See Also:
-
ST_GENERIC
public static final int ST_GENERICGeneric S-group type. @see #getType()- See Also:
-
ST_COMPONENT
public static final int ST_COMPONENTComponent S-group type. A component here is a set of atoms contained by a component bracket. There are two kind of component S-group: ordered and unordered. The subscript of an unordered S-group contains a simple "c". The subscript of an ordered component S-group contains an additional integer e.g.: "c1" where "1" is the order of the ordered component S-group. Ordered component S-groups can be embedded into formulation S-groups. Unordered component S-groups can be embedded into mixture S-groups. -
ST_MULTICENTER
public static final int ST_MULTICENTERMulticenter S-group type. @see #getSubType()- See Also:
-
ST_GRAFT
public static final int ST_GRAFTGraft S-group type. @see #getType()- See Also:
-
ST_AMINOACID
public static final int ST_AMINOACIDAmino acid s-group type. @see #getType()- See Also:
-
SST_ALTERNATING
public static final int SST_ALTERNATINGAlternating polymer S-group subtype. @see #getSubType()- See Also:
-
SST_RANDOM
public static final int SST_RANDOMRandom polymer S-group subtype. @see #getSubType()- See Also:
-
SST_BLOCK
public static final int SST_BLOCKBlock polymer S-group subtype. @see #getSubType()- See Also:
-
SCN_EITHER_UNKNOWN
public static final int SCN_EITHER_UNKNOWNEither unknown S-group connectivity. @see #getConnectivity()- See Also:
-
SCN_HEAD_TO_HEAD
public static final int SCN_HEAD_TO_HEADHead-to-head S-group connectivity. @see #getConnectivity()- See Also:
-
SCN_HEAD_TO_TAIL
public static final int SCN_HEAD_TO_TAILHead-to-tail S-group connectivity. @see #getConnectivity()- See Also:
-
XSTATE_NONE
public static final int XSTATE_NONES-group is in an undetermined state.- Since:
- Marvin 3.4, 05/04/2004
- See Also:
-
XSTATE_X
public static final int XSTATE_XS-group is expanded.- Since:
- Marvin 3.4, 05/04/2004
- See Also:
-
XSTATE_C
public static final int XSTATE_CS-group is contracted (useful only in GUI!).- Since:
- Marvin 3.4, 05/04/2004
- See Also:
-
XSTATE_XC
public static final int XSTATE_XCS-group is expanded but its atoms have the same coordinates as in contracted state.- Since:
- Marvin 3.4, 05/04/2004
- See Also:
-
SORT_PARENT_CHILD
public static final int SORT_PARENT_CHILDParent-child sort order.- Since:
- Marvin 3.4
- See Also:
-
SORT_CHILD_PARENT
public static final int SORT_CHILD_PARENTParent-child sort order.- Since:
- Marvin 3.4
- See Also:
-
PR_ATSYMS
public static final int PR_ATSYMSPrint atom symbols.- Since:
- Marvin 4.1, 07/26/2006
- See Also:
-
RA_IN_EXPAND
protected static final int RA_IN_EXPANDAtom removal in expand.- Since:
- Marvin 4.1, 07/27/2006
- See Also:
-
RA_REMOVE_EXCEPT_RU
protected static final int RA_REMOVE_EXCEPT_RUReplace without duplicating.- Since:
- Marvin 4.1, 07/27/2006
- See Also:
-
CHARGE_ON_ATOMS
public static final int CHARGE_ON_ATOMSCharge is located on atoms and displayed on atoms.- Since:
- Marvin 5.2, 01/22/2009
- See Also:
-
CHARGE_ON_GROUP
public static final int CHARGE_ON_GROUPCharge is located on atoms but displayed on the whole group (bracket).- Since:
- Marvin 5.2, 01/22/2009
- See Also:
-
parentSgroup
-
sgroupType
protected transient int sgroupTypeThe S-group type. -
sgroupGraph
The S-group's internal structure. -
brackets
-
atomSet
Set for storing the atoms of the s-group's graph.
-
-
Constructor Details
-
Sgroup
Deprecated.As of Marvin 5.12, replaced bySgroupFactory.createSgroup(Molecule, SgroupType)
.Creates an S-group with the specified parent and type.- Parameters:
parent
- the parent moleculet
- S-group type
-
Sgroup
Deprecated.As of Marvin 5.12, replaced bySgroupFactory.createSgroup(Molecule, SgroupType)
andsetXState(int)
.Creates an S-group with the specified parent and type.- Parameters:
parent
- the parent moleculet
- S-group typexstate
- the expanded state- Since:
- Marvin 3.4, 05/04/2004
- See Also:
-
Sgroup
-
Sgroup
-
Sgroup
Copy constructor.- Parameters:
sg
- the S-group to copym
- the new parent moleculepsg
- the new parent S-group or null- Since:
- Marvin 3.4
-
Sgroup
Copy constructor.- Parameters:
sg
- the S-group to copym
- the new parent moleculepsg
- the new parent S-group or nulliatoms
- indices of cloned atoms in the original molecule ornull
* @since Marvin 3.4
-
-
Method Details
-
getId
-
setId
-
setSgroupGraph
Sets the molecule graph.- Parameters:
smol
- the molecule graph- Since:
- Marvin 3.3, 11/03/2003
-
getSgroupGraph
Gets a COPY of the molecule graph. WARNING! If the returned selection molecule is changed then the graph of the S-group remains unchanged!- Returns:
- the molecule graph
- Since:
- Marvin 3.3, 11/03/2003
-
setParentMolecule
Sets the parent molecule.- Parameters:
p
- the parent molecule
-
getParentMolecule
Gets the parent molecule.- Returns:
- the parent molecule
-
getChildSgroupCount
public final int getChildSgroupCount()Gets the number of child S-groups.- Returns:
- the number of children
- Since:
- Marvin 3.4
-
getChildSgroup
Gets a child S-group.- Parameters:
i
- the child index- Returns:
- the child
- Since:
- Marvin 3.4
-
addChildSgroup
Adds a child S-group.- Parameters:
sg
- the child- Since:
- Marvin 3.4
-
removeChildSgroup
Removes an S-group from the children list.- Parameters:
sg
- the child to remove- Since:
- Marvin 4.0.4, 01/04/2006
-
findSmallestSgroupContaining
Finds the smallest S-group containing the specified node. If this parent contains the node, then it searches the children recursively.- Parameters:
a
- the node- Returns:
- the S-group or null if not found
- Since:
- Marvin 3.4, 05/05/2004
-
contains
Is this atom contained by the s-group?- Parameters:
atom
- the atom that's may be part of this s-group- Returns:
- true it the referenced atom is contained by this s-group, false otherwise
-
findSmallestSgroupOf
Finds the smallest S-group that has the specified node. If this parent has the node, then it searches the children recursively.- Parameters:
a
- the node- Returns:
- the S-group or null if not found
- Since:
- Marvin 3.4, 05/05/2004
-
getParentSgroup
Gets the parent S-group.- Returns:
- the parent S-group
- Since:
- Marvin 3.4
-
getXState
public final int getXState()Gets the expanded/contracted state. -
setXState
public final void setXState(int state) Sets the expanded/contracted state.- Parameters:
state
- the expanded/contracted state- Throws:
IllegalArgumentException
- if the group is invisible (it has a non-expanded parent)- Since:
- Marvin 3.4, 05/04/2004
- See Also:
-
setXState
Deprecated.as of Marvin 6.2, usesetXState(int)
insteadSets the expanded/contracted state.- Parameters:
state
- the expanded/contracted stateopts
- option for updating coordinates- Throws:
IllegalArgumentException
- if the group is invisible (it has a non-expanded parent)- Since:
- Marvin 3.4, 05/04/2004
- See Also:
-
setXState0
protected void setXState0(int state) -
setGUIStateRecursively
Deprecated.as of Marvin 6.2, useMolecule.setGUIContracted(boolean)
for such functionalitySets the expanded/contracted state recursively.- Parameters:
v
- true setsXSTATE_C
if previous state wasXSTATE_XC
, false setsXSTATE_XC
if previous state wasXSTATE_C
, no operation in other cases- Returns:
- true if at least one S-group's state was changed, false otherwise
- Throws:
IllegalArgumentException
- if the group is invisible (it has a non-expanded parent)- Since:
- Marvin 3.4, 05/04/2004
- See Also:
-
setGUIStateRecursively
@Deprecated public boolean setGUIStateRecursively(boolean contract, int opts) throws IllegalArgumentException Deprecated.as of Marvin 6.2, useMolecule.setGUIContracted(boolean)
for such functionalitySets the expanded/contracted state recursively.- Parameters:
contract
- true setsXSTATE_C
if previous state wasXSTATE_XC
, false setsXSTATE_XC
if previous state wasXSTATE_C
, no operation in other casesopts
- the expansion/contraction options- Returns:
- true if at least one S-group's state was changed, false otherwise
- Throws:
IllegalArgumentException
- if the group is invisible (it has a non-expanded parent)- Since:
- Marvin 3.4, 05/04/2004
- See Also:
-
expand
- Parameters:
f
- options, only theExpandable.LEAVE_COORDS_UNCHANGED
and theExpandable.MDL_EXPAND
flags are taken into account- Returns:
- true
- Throws:
IllegalArgumentException
- if the group is invisible (it has a non-expanded parent)- Since:
- Marvin 3.4, 05/04/2004
- See Also:
-
contract
Sets the state toXSTATE_C
.- Parameters:
opts
- neglected- Returns:
- true
- Throws:
IllegalArgumentException
- if the group is invisible (it has a non-expanded parent)- Since:
- Marvin 3.4, 05/04/2004
- See Also:
-
getSuperscript
Gets the superscript for non-superatom S-groups.- Returns:
- the superscript
-
isOrderedComponentSgroup
public boolean isOrderedComponentSgroup()Returns if the Sgroup is ordered component Sgroup.- Since:
- Marvin 4.1.1, 08/30/2006
-
getSubscript
Gets the subscript for non-superatom S-groups.- Returns:
- the subscript
-
setSubscript
Sets the subscript for non-superatom S-groups.- Parameters:
s
- the subscript
-
getType
public int getType()Gets S-group type.Warning: as of Marvin 6.3,
getSgroupType()
is suggested to be used instead, but the two methods have important differences. In the case ofAminoAcidSgroup
s, this method returnsST_SUPERATOM
, butgetSgroupType()
returnsSgroupType.AMINOACID
. Furthermore, when this method returnsST_COPOLYMER
,getSgroupType()
returns eitherSgroupType.COPOLYMER
or one ofSgroupType.COPOLYMER_ALT
,SgroupType.COPOLYMER_RAN
,SgroupType.COPOLYMER_BLK
.- Returns:
- the type
- See Also:
-
getSgroupType
Gets the S-group type.- Returns:
- the type of the S-group
- See Also:
-
getSubType
public int getSubType()Gets polymer S-group subtype.- Returns:
- the type
- See Also:
-
setSubType
public void setSubType(int t) Sets polymer S-group subtype.- Parameters:
t
- the type- See Also:
-
getConnectivity
public int getConnectivity()Gets S-group connectivity.- Returns:
- the connectivity
- See Also:
-
setConnectivity
public void setConnectivity(int c) Sets S-group connectivity.- Parameters:
c
- the connectivity- See Also:
-
hasBrackets
public boolean hasBrackets()Checks if brackets should be painted or not.- Returns:
- always true in the default implementation
- Since:
- Marvin 3.3
-
cloneStructure
Gets the clone of the structure stored.- Returns:
- the clone
-
createMolecule
Creates a molecule object that contains only this group.- Returns:
- the molecule
-
createMolecule
Creates a cloned sgroup instance and a molecule object that contains only this sgroup.- Parameters:
m
- the molecule object- Returns:
- the cloned sgroup
- Since:
- Marvin 5.0, 09/01/2008
-
getAtomArray
Gets the array of atoms in the S-group.- Returns:
- the atom array
-
getAtom
Gets an atom in the S-group.- Parameters:
i
- the atom index- Returns:
- the atom
-
countAllAtoms
public final int countAllAtoms()Counts the total number of atoms recursively.- Returns:
- the number of atoms
-
isEmpty
public final boolean isEmpty()Is it an empty S-group?- Returns:
- true if the S-group does not contain any atoms, false otherwise
-
cloneSgroup
Gets a new Sgroup instance.- Parameters:
m
- the new parent moleculepsg
- the new parent S-group- Returns:
- the new object
- Since:
- Marvin 3.4
-
cloneSgroup
Gets a new Sgroup instance.- Parameters:
m
- the new parent moleculepsg
- the new parent S-groupatomIndexMap
- indices of cloned atoms in the original molecule ornull
- Returns:
- the new object
- Since:
- Marvin 5.0.2, 03/07/2008
-
getAtomCount
public final int getAtomCount()Gets the number of atoms in the S-group.- Returns:
- the number of atoms
-
indexOf
Gets the atom index in the S-group graph.- Parameters:
a
- the atom- Returns:
- the index or -1 if not found
-
indexOf
Gets the bond index in the S-group graph.- Parameters:
b
- the bond- Returns:
- the index or -1 if not found
- Since:
- Marvin 5.3.2
-
hasAtom
Is the specified atom an element of this group?- Parameters:
a
- the atom- Returns:
- true if it contains the atom, false otherwise
- Since:
- Marvin 3.4
-
containsAllAtomsOf
Checks if the S-group contains the atoms of another S-group.- Returns:
- true if this S-group contains the specified one
- Since:
- Marvin 3.4
-
add
Adds a new atom to the S-group.- Parameters:
a
- the atom
-
setAtom
Sets the specified atom in the S-group graph.- Parameters:
i
- the indexa
- the atom
-
removeBonds
public void removeBonds()Removes the edge references. -
removeAtom
Removes an atom and its bonds from the S-group.- Parameters:
a
- the atom
-
removeAtom
Removes an atom and its bonds from the S-group.- Parameters:
a
- the atomopts
- 0 orRA_IN_EXPAND
- Since:
- Marvin 4.1, 07/27/2006
-
removeAtom
Wrapper method that callsremoveAtom(MolAtom, int)
of sg. Needed by subclasses because they cannot call the protectedremoveAtom(MolAtom, int)
method of another Sgroup.- Parameters:
sg
- the other S-groupa
- the atomopts
- 0 orRA_IN_EXPAND
- Since:
- Marvin 4.1, 07/27/2006
-
removeBond
Removes a bond from the S-group.- Parameters:
b
- the bond
-
replaceAtom
Replace an existing atom by a new one in this S-group and its parent (recursively).- Parameters:
olda
- the original atomnewa
- the new atom- Since:
- 3.5.2, 12/15/2004
-
replaceAtom
Replace an existing atom by a new one in this S-group and its parent (recursively).- Parameters:
olda
- the original atomnewa
- the new atomopts
- options- Since:
- 4.1, 07/25/2006
- See Also:
-
findCrossingBonds
Finds the crossing bonds. Use only when the S-group is expanded.- Returns:
- the attachment bonds
- Since:
- Marvin 3.3
-
isBracketCrossingBond
-
getCrossingAtoms
Gets the atoms that have crossing bonds.- Parameters:
xbonds
- the crossing bonds- Returns:
- the attachment atoms
- Throws:
IllegalArgumentException
- if a bond in the specified array is not a crossing bond- Since:
- Marvin 3.3
-
removeGroupedAtom
Removes an atom from the molecule and remove its specified bonds.- Parameters:
m
- the molecule grapha
- the atomv
- bonds to remove from the atom, remove all bonds if nullopts
- the removal options- See Also:
-
areChildSgroupsVisible
public boolean areChildSgroupsVisible()Checks whether the child S-groups are visible.- Returns:
- true if children are visible, false otherwise
- Since:
- Marvin 3.4
-
isVisible
public final boolean isVisible()Checks whether this group is 'visible' (all parents are expanded in case of superatom S-groups) or not.- Returns:
- true if the group is visible, false otherwise
- Since:
- Marvin 3.4
-
isBracketVisible
public boolean isBracketVisible()Tests whether the bracket is visible.- Returns:
true
if visible,false
otherwise- Since:
- Marvin 3.5.1, 11/12/2004
-
transformByParent
Applies a transformation matrix to the coordinates. This method is called by the parent molecule'sMolecule.transform(CTransform3D, boolean)
method, thus only those atom coordinates are transformed here that are not handled inMoleculeGraph.transform(CTransform3D, boolean)
.- Parameters:
t
- the transformation matrixincg
- graph invariants are changed (true) or not (false)- Since:
- Marvin 4.0.2, 10/26/2005
-
sort
Sorts S-groups in parent-child or child-parent order.- Parameters:
sgroups
- the array to sortorderType
- the sort order- Since:
- Marvin 3.4
- See Also:
-
toString
Overrides Object.toString() to ease debugging. Returns a string consisting of the classname (without the package name!), the at-sign character `@
', and the unsigned hexadecimal representation of the hash code of the object. -
toString
Gets a string representation of the S-group. Returns a string consisting of the classname (without the package name!), the at-sign character `@
', and the unsigned hexadecimal representation of the hash code of the object.- Parameters:
opts
- options or 0- Returns:
- a string representation of the object
- Since:
- Marvin 4.1, 07/26/2006
- See Also:
-
getAtomSymbolListAsString
-
isDescendantOf
Decides whether this is a descendant of another sgroup.- Parameters:
psg
- the other sgroup- Returns:
- true if this is a descendant of the other sgroup, false otherwise.
- Since:
- Marvin 5.0
-
isRemovable
public boolean isRemovable()Decides whether an S-group should be ungrouped if its structure changes.- Returns:
- is true if the S-group is removable, false otherwise.
- See Also:
-
isSelected
Is the sgroup or part of the sgroup selected?- Parameters:
sel
- the molecule that contains the selected atoms- Returns:
- true if the sgroup contains at least one selected atom false otherwise.
- Since:
- Marvin 5.0, 04/02/2007
-
isTotalSelected
Decides if the whole sgroup is selected or not.- Parameters:
sel
- molecule graph that contains the selection- Returns:
- true if the whole sgroup is selected
- Since:
- Marvin 5.3.2, 10/01/2010
-
isPartSelected
Decides if part of the sgroup is selected or not.- Parameters:
sel
- molecule graph that contains the selection- Returns:
- true if at least one of the sgroup atoms is selected, but the whole group is not
- Since:
- Marvin 5.3.2, 10/01/2010
-
clearObjects
public void clearObjects()Clears all MObject-s that belong to this S-groups.- Since:
- Marvin 5.3, 11/30/2009
-
removeObject
Removes the specified MObject from this Sgroup.- Parameters:
mo
- the MObject to remove.- Since:
- Marvin 5.3, 11/30/2009
-
selectAllObjects
public void selectAllObjects(boolean s) Sets the selection state of the MObject-s that belong to this Sgroup.- Parameters:
s
- the state value to set- Since:
- Marvin 5.3, 11/30/2009
-
addBracket
Adds a bracket to this S-group.- Parameters:
bracket
- the bracket to add- Since:
- Marvin 5.3, 11/30/2009
- See Also:
-
initBrackets
public void initBrackets()Initializes the list of brackets in this S-group. Creates an empty list of brackets if no brackets were added previously to the S-group, otherwise deletes the brackets from the existing list.- Since:
- Marvin 5.3, 11/30/2009
- See Also:
-
getBracketCount
public int getBracketCount()Gets the number of brackets in this S-group.- Returns:
- the number of brackets in this S-group.
- Since:
- Marvin 5.3, 11/30/2009
- See Also:
-
getBrackets
Gets all graphic brackets from this Sgroup- Returns:
- the list of brackets
- Since:
- Marvin 5.3, 11/30/2009
- See Also:
-
getChargeLocation
public int getChargeLocation()Returns the charge location attribute of the S-group.- Returns:
- charge location type:
CHARGE_ON_ATOMS
orCHARGE_ON_GROUP
. - Since:
- Marvin 5.2, 01/22/2009
- See Also:
-
setChargeLocation
public void setChargeLocation(int location) Sets the charge location attribute of the S-group. Possible charge location types:CHARGE_ON_ATOMS
orCHARGE_ON_GROUP
.- Parameters:
location
- the charge location type to set- Since:
- Marvin 5.2, 01/22/2009
- See Also:
-
getTotalCharge
public int getTotalCharge()Calculates the sum of the charge values on the atoms in this S-group.- Returns:
- the sum charge
- Since:
- Marvin 5.2, 01/22/2009
- See Also:
-
checkBonds
Add the bonds of the given atom to the sgroup if the given atom and the other atom of the selected bond is in the sgroup.- Parameters:
atom
- the given atom
-
getAttach
Gets the attachment point information from the ExtraAtomProperties- Parameters:
atom
- that attachment point is question.- Returns:
- the attachment point information from ExtraAtomProperties
- Since:
- Marvin 6.0, Dec 12, 2012
-
getBondArray
Gets all bonds connecting two atoms that are both in the Sgroup- Returns:
- sgroup's MolBond object array
- Since:
- Marvin 6.1, 04/29/2013
-
checkConsistencyInEmbeddings
public boolean checkConsistencyInEmbeddings()Checks if the sgroup contains all of the child sgroup's atoms and checks consistency between atom and bond references.- Returns:
- true if the sgroup is consistent
-
checkBondConsistency
protected void checkBondConsistency() -
checkSgroupGraphConsistency
Checks whether the parameter s-group contains the atoms of this s-group. It checks also that the parent molecule (if exists) contains these atoms as well.- Parameters:
parentSgroup
- parent of Sgroup- Returns:
- true if the s-group is consistent
-
getChildSgroups
Gets the children of this S-group.- Returns:
- Child S-groups as an array.
-
SgroupFactory.createSgroup(Molecule, SgroupType)
.