Maximum number of initialized atoms. Default: 256.
Maximum number of initialized bonds. Default: 256.
Adds a single or metal bond between the two atoms depending on whether one of them is a metal atom.
This adds a fragment from sourceMol to this molecule by first copying rootAtom and then all connected atoms and bonds by traversing the graph breadth first.
molecule from which the fragment is copied to this
null or int[] not smaller than sourceMol.mAllAtoms; receives atom indices of this molecule
Expand and find a position for all the hydrogens of the 2D molecule. If
atomNumber
is specified, the function only applies for the hydrogens of
the given atom.
Copies all atoms and bonds of mol to the end of this Molecule's atom and bond tables. If mol is a fragment then this Molecule's fragment flag is set to true and all query features of mol are also copied.
Atom mapping from original mol to this molecule after incorporation of mol.
Atom mapping from substituent to this molecule after addition of substituent.
Calculates a signed torsion as an exterior spherical angle from a valid 4-atom strand. Looking along the central bond, the torsion angle is 0.0, if the projection of front and rear bonds point in the same direction. If the front bond is rotated in the clockwise direction, the angle increases, i.e. has a positive value. http://en.wikipedia.org/wiki/Dihedral_angle
4 valid atom indices defining a connected atom sequence
torsion in the range: -pi <= torsion <= pi
Canonizes charge distribution in single- and multifragment molecules. Neutralizes positive and an equal amount of negative charges on electronegative atoms, provided these are not on 1,2-dipolar structures, in order to ideally achieve a neutral molecule. This method does not change the overall charge of the molecule. It does not change the number of explicit atoms or bonds or their connectivity except bond orders.
remaining overall molecule charge
Converts any stereo bond attached with its pointed tip to this atom into a single bond.
Creates a new atom in destMol and copies all source atom properties including atom list, custom label, flags, and mapNo to it.
-1 to create new ESR group or destMol ESR group count from esrGroupCountAND()
-1 to create new ESR group or destMol ESR group count from esrGroupCountOR()
Index of new atom in destMol.
-1 to create new ESR group or destMol ESR group count from esrGroupCountAND()
-1 to create new ESR group or destMol ESR group count from esrGroupCountOR()
Copies this molecule including parity settings, if valid. The original content of destMol is replaced. Helper arrays are not copied and need to be recalculated if needed.
Clears destmol and then copies a part of this Molecule into destMol, being defined by a mask of atoms to be included. If not all atoms are copied, then destMol is set to be a substructure fragment.
receives the part of this Molecule
defines atoms to be copied; its size may be this.getAtoms() or this.getAllAtoms()
defines whether disconnected delocalized bonds will keep their single/double bond status or whether the query feature 'delocalized bond' will be set
null or int[] not smaller than includeAtom.length; receives atom indices of dest molecule
Clears destmol and then copies a part of this Molecule into destMol, being defined by a mask of bonds to be included. Bonds, whose atoms carry opposite charges are treated in the following manner: If only one of the two bond atoms is kept, then its absolute charge will be reduced by 1.
receives the part of this Molecule
defines bonds to be copied
defines whether disconnected delocalized bonds will keep their single/double bond status or whether the query feature 'delocalized bond' will be set
null or int[] not smaller than this.getAllAtoms()
atom map from this to destMol with not copied atom's index being -1
Copies name,isFragment,chirality and validity of parity & CIP flags. When copying molecules parts only or when changing the atom order during copy, then atom parities or CIP parities may not be valid anymore and invalidateHelperArrays([affected bits]) should be called in these cases.
After the deletion the original order of atom and bond indexes is retained.
After the deletion the original order of atom and bond indexes is retained.
After the deletion the original order of atom and bond indexes is retained.
After the deletion the original order of atom and bond indexes is retained.
Deletes all atoms and bonds
from the molecule, which were marked before for deletion by calling
markAtomForDeletion() or markBondForDeletion(). Bonds connecting atoms of
which at least one is marked for deletion, are deleted automatically and
don't require to be explicitly marked.
When multiple atoms and/or bonds need to be deleted, marking them and calling
this method is more efficient than deleting them individually with
deleteAtom() and deleteBond(). Bonds, whose atoms carry opposite charges are
treated in the following manner: If only one of the two bond atoms is kept,
then its absolute charge will be reduced by 1. After the deletion the
original order of atom and bond indexes is retained.
mapping from old to new atom indices; null if no atoms nor bonds were deleted.
Empties the molecule to serve as container for constructing a new molecule, e.g. by multiply calling addAtom(...), addBond(...) and other high level methods.
Delete all selected atoms and all bonds attached to them. After the deletion the original order of atom and bond indexes is retained.
While the Molecule class covers all primary molecule information, its derived
class ExtendedMolecule handles secondary, i.e. calculated molecule
information, which is cached in helper arrays and stays valid as long as the
molecule's primary information is not changed. Most methods of
ExtendedMolecule require some of the helper array's information. High level
methods, e.g. getPath(), take care of updating an outdated cache themselves.
Low level methods, e.g. isAromaticAtom(), which typically are called very
often, do not check for validity nor update the helper arrays themselves. If
you use low level methods, then you need to make sure that the needed helper
array information is valid by this method.
For performance reasons there are distinct levels of helper
information. (A higher level always includes all properties of the
previous level):
cHelperNeighbours: explicit hydrogen atoms are moved to the end of the
atom table and bonds leading to them are moved to the end of the bond table.
This way algorithms can skip hydrogen atoms easily. For every atom directly
connected atoms and bonds (with and without hydrogens) are determined. The
number of pi electrons is counted.
cHelperRings: Aromatic and non-aromatic rings are detected. Atom and
bond ring properties are set and a ring collection provides a total set of
small rings (7 or less atoms). Atoms being in allylic/benzylic or stabilized
(neighbor of a carbonyl or similar group) position are flagged as such.
cHelperParities: Atom (tetrahedral or axial) and bond (E/Z or atrop)
parities are calculated from the stereo configurations.
cHelperCIP: Cahn-Ingold-Prelog stereo information for atoms and
bonds.
cHelperParities and cHelperCIP require a StereoMolecule!!!
one of cHelperNeighbours,cHelperRings,cHelperParities,cHelperCIP
true if the molecule was changed
Checks whether atom is one of the two end of an allene.
allene center or -1
index of closest of nearby atoms or -1, if no atom is close.
Checks whether atom is one of the two atoms of an axial chirality bond of BINAP type. Condition: non-aromatic single bond connecting two aromatic rings with 6 or more members that together bear at least three ortho substituents. A stereo bond indicating the chirality is not(!!!) a condition.
to check, whether it is part of a bond, which has BINAP type of axial chirality
axial chirality bond or -1 if axial chirality conditions are not met
index of closest of nearby bonds or -1, if no bond is close.
Starting from startAtom this method locates a system of annelated or bridged ring systems with all members bonds being a ring bond. Detected member atoms and bonds are flagged accordingly.
if set then only aromatic atoms and bonds are considered
This returns the absolute(!) atom parity from the canonization procedure. While the molecule's (relative) atom parity returned by getAtomParity() is based on atom indices and therefore depends on the order of atoms, the absolute atom parity is based on atom ranks and therefore independent of the molecule's atom order. Usually relative parities are used, because the atom's stereo situation can be interpreted without the need for atom rank calculation. This requires valid helper arrays level cHelperParities or higher.
one of the Molecule.cAtomParityXXX constants
This returns the absolute(!) bond parity from the canonization procedure. While the molecule's (relative) bond parity returned by getBondParity() is based on atom indices and therefore depends on the order of atoms, the absolute bond parity is based on atom ranks and therefore independent of the molecule's atom order. Usually relative parities are used, because the bond's stereo situation can be interpreted without the need for atom rank calculation. This requires valid helper arrays level cHelperParities or higher.
one of the Molecule.cBondParityXXX constants
the number of all atoms, which includes hydrogen atoms.
the number of all bonds, which includes those connecting hydrogen atoms.
The neighbours (connected atoms) of any atom are sorted by their
relevance:
count of category 1 & 2 neighbour atoms (excludes neighbours connected with zero bond order)
The neighbours (connected atoms) of any atom are sorted by their
relevance:
count of category 1 & 2 & 3 neighbour atoms (excludes neighbours connected with zero bond order)
the number of connected plain explicit and implicit hydrogen atoms
Get an atom's defined maximum valance if different from the default one.
valence 0-14: new maximum valence; -1: use default
The atom Cahn-Ingold-Prelog parity is a calculated property available above/equal helper level cHelperCIP. It encodes the stereo configuration of an atom with its neighbors using up/down-bonds or 3D-atom-coordinates, whatever is available. It depends on the atom indices of the neighbor atoms and their orientation is space. This method is called by the Canonizer and usually should not be called otherwise.
one of cAtomCIPParityNone,cAtomCIPParityRorM,cAtomCIPParitySorP,cAtomCIPParityProblem
The formal atom charge.
If a custom atom label is set, a molecule depiction displays the custom label instead of the original one.
null or previously defined atom custom label
This is MDL's enhanced stereo representation (ESR). Stereo atoms and bonds with the same ESR type (AND or OR) and the same ESR group number are in the same group, i.e. within this group they have the defined (relative) stereo configuration.
group index starting with 0
This is MDL's enhanced stereo representation (ESR). Stereo atoms and bonds with the same ESR type (AND or OR) and the same ESR group number are in the same group, i.e. within this group they have the defined (relative) stereo configuration.
one of cESRTypeAbs,cESRTypeAnd,cESRTypeOr
standard atom label of the atom: C,Li,Sc,...
The list of atoms that are allowed at this position during sub-structure search. (or refused atoms, if atom query feature cAtomQFAny is set).
null or sorted list of unique atomic numbers, if defined.
Returns an atom mapping number within the context of a reaction. Atoms that that share the same mapping number on the reactant and product side are considered to be the same atom.
atom mass, if is specific isotop, otherwise 0 for natural abundance
The atom parity is a calculated property available above/equal helper level
cHelperParities. It describes the stereo configuration of a chiral atom and
is calculated either from 2D-atom-coordinates and up/down-bonds or from
3D-atom-coordinates, whatever is available. It depends on the atom indexes of
the neighbor atoms and their orientation in space.
The parity is defined as follows: Look at the chiral atom such that its
neighbor atom with the highest atom index (or the hydrogen atom if it is
implicit) is oriented to the back. If the remaining three neighbors are in
clockwise order (considering ascending atom indexes) than the parity is 1. If
they are in anti-clockwise order, then the parity is 2.
For linear chirality (allenes): Look along the straight line of double bonds
such that the rear neighbor with the lower atom index points to the top. If
the front neighbor with the lower atom index points to the right than the
parity is 1.
one of cAtomParity1,cAtomParity2,cAtomParityNone,cAtomParityUnknown
This is different from the Hendrickson pi-value, which considers pi-bonds to carbons only.
the number pi electrons at atom (the central atom of acetone would have 1)
Locates that single bond which is the preferred one to be converted into up/down bond in order to define the atom chirality.
parity carrying atom, i.e. a tetrahedral stereocenter or central allene atom
preferred bond or -1, if no single bond existing
Returns all set query features for this atom. In order to get all features related to a certain subject use something like this: getAtomQueryFeatures() & cAtomQFHydrogen
Gets an atom's radical state as singulet,dublet,triplet or none
one of cAtomRadicalStateNone,cAtomRadicalStateS,cAtomRadicalStateD,cAtomRadicalStateT
Calculates the number of independent rings of which 'atom' is a member. Any combination of two connected atoms to 'atom' is used for: - finding the shortest path connecting these two neighbors avoiding 'atom' - if such a path exists and at least one bonds of that path is not a member of a path found earlier then count this path as an independent ring closure.
number of independent rings
0 or the size of the smallest ring that atom is a member of
In addition to the natural atomic numbers, we support additional pseudo atomic numbers. Most of these are for compatibility with the MDL atom table, e.g. for amino acids and R-groups. D and T are accepted for setting, but are on-the-fly translated to H with the proper atom mass.
A validated molecule (after helper array creation) contains a sorted list of
all atoms with the plain (neglegible) hydrogen atoms at the end of the list.
Neglegible hydrogen atoms a those that can be considered implicit, because
they have no attached relevant information. Hydrogen atoms that cannot be
neglected are special isotops (mass != 0), if they carry a custom label, if
they are connected to another atom with bond order different from 1, or if
they are connected to another neglegible hydrogen.
Only valid after calling ensureHelperArrays(cHelperNeighbours or higher);
the number relevant atoms not including neglegible hydrogen atoms
Calculates and returns the mean bond length of all bonds including or not including hydrogen bonds. If there are no bonds, then the average distance between unconnected atoms is returned. If we have less than 2 atoms, cDefaultAverageBondLength is returned.
Calculates for every non-H atom the mean value of all shortest routes (bonds in between) to any other atom of the same fragment.
-1 or the bond that connects atom1 with atom2
0 or 1
atom index
The bond Cahn-Ingold-Prelog parity is a calculated property available above/equal helper level cHelperCIP. It encodes the stereo configuration of a bond with its neighbors using 2D-coordinates and up/down-bonds or 3D-atom-coordinates, whatever is available. It depends on the atom indices of the neighbor atoms and their orientation is space. This method is called by the Canonizer and usually should not be called otherwise. Considered are E/Z-double bonds and M/P-BINAP type single bonds.
one of cBondCIPParityNone,cBondCIPParityEorP,cBondCIPParityZorM,cBondCIPParityProblem
This is MDL's enhanced stereo representation (ESR). Stereo atoms and bonds with the same ESR type (AND or OR) and the same ESR group number are in the same group, i.e. within this group they have the defined (relative) stereo configuration.
group index starting with 0
This is MDL's enhanced stereo representation (ESR). Stereo atoms and bonds with the same ESR type (AND or OR) and the same ESR group number are in the same group, i.e. within this group they have the defined (relative) stereo configuration.
one of cESRTypeAbs,cESRTypeAnd,cESRTypeOr
bond length calculated from atom 2D-coordinates.
Delocalized bonds, i.e. bonds in an aromatic 6-membered ring, are returned as
for organic molecules 1, 2 or 3.
Returns the pre-calculated bond parity, e.g. cBondParityEor1. To distinguish double bond parities (E/Z) from parities of axial chirality, e.g. BINAP type (1/2) simply check with getBondOrder(bond): If the order is 2, then the parity describes E/Z, otherwise an axial parity.
one of cBondParity???
Locates that single bond which is the preferred one to be converted into up/down bond in order to define the bond chirality.
BINAP type of chirality bond
preferred bond or -1, if no single bond existing
0 or the size of the smallest ring that bond is a member of
Returns bond type combining bond order and stereo orientation.
one of cBondTypeSingle,cBondTypeDouble,cBondTypeUp,cBondTypeCross,...
This is the bond type without stereo information.
cBondTypeSingle,cBondTypeDouble,cBondTypeTriple,cBondTypeDelocalized
The bond list is preprocessed such that all bonds leading to a plain hydrogen atom (natural abundance, no custom labels) are at the end of the list. Only valid after calling ensureHelperArrays(cHelperNeighbours or higher);
count of bonds not including those connecting plain-H atoms
Returns the rectangle that bounds the molecule.
Gets the overall chirality of the molecule, which is a calculated information considering: Recognition of stereo centers and stereo bonds, defined ESR features, meso detection. The chirality combines the knowledge about how many stereo isomers are represented, whether all of these are meso, whether we have one defined stereo isomer, a mixture of racemates, epimers, or other diastereomers. The information is used during depiction.
a copy of this with all arrays sized to just cover all existing atoms and bonds
The neighbours (connected atoms) of any atom are sorted by their
relevance:
index into sorted neighbour list
the i-th neighbor atom of atom
The neighbours (connected atoms) of any atom are sorted by their
relevance:
count of category 1 neighbour atoms (excludes plain H and bond zero orders)
The neighbours (connected atoms) of any atom are sorted by their
relevance:
index into sorted neighbour list
index of bond connecting atom with its i-th neighbor
The neighbours (connected atoms) of any atom are sorted by their
relevance:
index into sorted neighbour list
order of bond connecting atom with its i-th neighbor
This is the default maximum valence of the atom neglecting atom charge or radical influences, e.g. N or N(+) -> 3. If the atomic no has multiple valid max valences, it is the highest one.
Returns the diastereotopic Ids of all the atoms in the molecule.
This is the maximum valence correction caused by atom charge or radical
status, e.g. N+ -> 1; N- -> -1; Al+ -> -1; C+,C- -> -1. In some cases, where
the atomicNo can have multiple valences, the influence of a charge depends on
the atom's actual valence, e.g. valence corrections for R3P(+) and R5P(+) are
1 and -1, respectively. Criteria are:
-in the given valence state is there a lone pair that can be protonated
-can we introduce a negative substituent as in BH3 or PF5 vs. SF6
number of explicit plain hydrogen atoms (does not include D,T,custom labelled H, etc)
If the atom is a stereo center in fisher projection, then its tetrahedral parity is returned. If the horizontal bonds are plain single bonds, then they are interpreted as up-bonds.
the stereo center
map of neighbours sorted by atom index
bond angles sorted by neighbour atom index
null or int[] large enough to receive bond directions
cAtomParity1,cAtomParity2 or cAtomParityUnknown
Returns an array of all atoms for which a path of bonds leads to rootAtom. Metal ligand bonds may or may not be considered a connection.
atoms being in the same fragment as rootAtom
Locates all unconnected fragments in the Molecule and assigns fragment indexes for every atom starting with 0. Optionally the fragment detection may be restricted to those atoms that have been previously marked with setAtomMarker(). In that case non-marked atoms receive the fragment number -1 and are not considered a connection between marked atoms potentially causing two marked atoms to end up in different fragments, despite sharing the same fragment. Metal ligand bonds may or may not be considered a connection.
array at least mAllAtoms big to receive atom fragment indexes
if true, then only atoms marked with setAtomMarker() are considered
number of disconnected fragments
Separates all disconnected fragments of this Molecule into individual
Molecule objects. If fragment separation is only needed, if there are
multiple fragments, it may be more efficient to run this functionality in two
steps, e.g.:
int[] fragmentNo = new int[mol.getAllAtoms()];
int fragmentCount = getFragmentNumbers(fragmentNo, boolean, boolean);
if (fragmentCount > 1) {
StereoMolecule[] fragment = getUniqueFragmentsEstimated(int[] fragmentNo,
fragmentCount);
...
}
The free valence is the number of potential additional single bonded neighbours to reach the atom's maximum valence. Atomic numbers that have multiple possible valences, the highest value is taken. Atom charges are considered. Implicit hydrogens are not considered. Thus, the oxygen in a R-O(-) has a free valence of 0, the nitrogen in R3N(+) has a free valence of
If ensureHelperArrays() (and with it handleHydrogens()) was not called yet on a fresh molecule and if the molecule contains simple hydrogen atoms within non-hydrogens atoms, then this function returns a map from current atom indexes to those new atom indexes that would result from a call to handleHydrogens.
This function returns an array of HOSE(Hierarchical Organisation of Spherical Environments) codes represented as diastereotopic actelion IDs.
This is a convenience method that creates the molecule's idcode without
explicitly creating a Canonizer object for this purpose. The idcode is a
compact String that uniquely encodes the molecule with all stereo and query
features.
WARNING: If the molecule has no atom coordinates but valid parities, e.g.
after new IDCodeParser(false).parse(idcode, null), this method returns null;
Returns an object with both the ID code and coordinates of the molecule.
This is a convenience method that creates the molecule's id-coordinates
matching the idcode available with getIDCode(). It does not explicitly create
a Canonizer object for this purpose.
WARNING: If the molecule has no atom coordinates but valid parities, e.g.
after new IDCodeParser(false).parse(idcode, null), this method returns null;
If the explicitly attached neighbors cause an atom valence to exceed the
lowest allowed valence for this atomic no, then this method returns the next
higher allowed valence, e.g. O=P(-H)-OMe :
standard P valence is 3, used valence is 4, implicit abnormal valence is 5.
The molecule is interpreted as O=PH2-OMe. Requires cHelperNeighbours!
abnormal valence or -1 if valence doesn't exceed standard valence
Calculates and return the number of implicit hydrogens at atom. If atom is itself a hydrogen atom, a metal except Al, or a noble gase, then 0 is returned. For all other atom kinds the number of implicit hydrogens is basically the lowest typical valence that is compatible with the occupied valence, minus the occupied valence corrected by atom charge and radical state.
Returns the int[]
index array that can be used for substructure search.
The free valence is the number of potential additional single bonded neighbours to reach the atom's lowest valence above or equal its current occupied valence. Atom charges are considered. Implicit hydrogens are not considered. Thus, the phosphor atoms in PF2 and PF4 both have a lowest free valence of 1. The oxygen in R-O(-) has a lowest free valence of 0, the nitrogen in R3N(+) has a free valence of 1. If you need the maximum possible free valence, use getFreeValence(), which would give 6 for Cl(-) and HCl.
The currently defined maximum of atoms, which increases automatically when using high level construction methods and new atoms exceed the current maximum.
The currently defined maximum of bonds, which increases automatically when using high level construction methods and new bonds exceed the current maximum.
This is the defined maximum valence (or set abnormal valence) corrected by atom charge or radical influences, e.g. N(+) -> 4.
This is the defined maximum valence (or set abnormal valence) neglecting atom charge or radical influences, e.g. N or N(+) -> 3.
count of neighbour atoms connected by a 0-order metal ligand bond
cMoleculeColorDefault: atom coloring depends on atomic number. Carbon and
hydrogen are drawn in neutral color
cMoleculeColorNeutral: all atoms and bonds and CIP letters are drawn in
neutral color
cMoleculeColorNeutral or cMoleculeColorDefault. In future may also return ARGB values.
Calculates a rounded mass of the molecule
Allows to set a molecule name or identifier, that is, for instance, written to or read from molfiles.
This method returns the non-hydrogen neighbour count of atom. It excludes any hydrogen atoms in contrast to getConnAtoms(), which only excludes plain hydrogen (not deuterium, tritium, custom labelled hydrogen, etc.). Don't use this method's return value for loops with getConnAtom(), getConnBond(), or getConnBondOrder().
the number of non-hydrogen neighbor atoms
Returns the count of hydrogens in the molecule.
The sum of bond orders of explicitly connected neighbour atoms including explicit hydrogen. The occupied valence includes bonds to atoms with set cAtomQFExcludeGroup flags.
explicitly used valence
Locates and returns the shortest path between atoms atom1 and atom2
array large enough to hold all path atoms, i.e. maxLength+1
first atom of path; ends up in pathAtom[0]
last atom of path; ends up in pathAtom[pathLength]
paths larger than maxLength won't be detected
null or bitmask of forbidden bonds
number of bonds of path; -1 if there is no path
Finds bonds of a path that is defined by an atom sequence.
pathAtom[0]...[pathLength] -> list of atoms on path
int array not smaller than pathLength
no of path bonds == no of path atoms - 1
Calculates the length of the shortest path between atoms atom1 and atom2
path length (no of bonds); -1 if there is no path
Simple method to calculate rotatable bonds. This method counts all single
bonds provided that they
Checks whether at least one of the connected bonds is a stereo bond. If atom is the central atom of an allene, then its direct neighbours are checked, whether one of them has a stereo bond.
the stereo bond or -1 if not found
The stereo problem flag is set by the stereo recognition (available equal/above helper level cHelperParities) if an atom has over- or under-specified stereo bonds attached, i.e. a stereo center with less or more than one up/down-bond, an non-stereo-center atom carrying (a) stereo bond(s), or a stereo center with neighbors coordinates such that the stereo configuration cannot be deduced. This flag is used by the depiction and causes affected atoms to be drawn in margenta.
Determines all atoms of the substituent attached to coreAtom and starting with firstAtom. If isMemberAtom!=null, then all substituent member atoms will have the the respective index being flagged upon return. This includes firstAtom and excludes coreAtom. If substituent!=null, then it will contain the substituent as Molecule. At the position of the coreAtom substituent will contain a wildcard atom. If substituent!=null and atomMap!=null then atomMap receives atom index mapping from this to substituent with non-member atoms being -1. Returns -1 and an empty substituent if coreAtom and firstAtom share a ring
the atom to which the substituent is connected
the substituent's atom that is connected to coreAtom
may be null, otherwise set to contain atom membership mask
may be null, otherwise set to contain the substituent
null or int[] not smaller than this.getAllAtoms()
substituent atom count not counting coreAtom; -1 if coreAtom and firstAtom share a ring
Counts the number of atoms of the substituent connected to coreAtom defined by firstAtom and not including the coreAtom.
atom count of substituent or -1 if coreAtom and firstAtom are in the same ring
This returns atom symmetry numbers from within the molecule canonicalization procedure. Atoms with same symmetry numbers can be considered topologically equivalent. Symmetry ranks are only available after calling ensureHelperArrays(cHelperSymmetry...). In mode cHelperSymmetrySimple stereoheterotopic atoms are considered equivalent. In mode cHelperSymmetryDiastereotopic only diastereotopic atoms are distinguished. In mode cHelperSymmetryEnantiotopic all stereoheterotopic atoms, i.e. enantiotopic and diastereotopic atoms, are distinguished.
Provided that the bond parity of a double bond is available, this method determines, whether connAtom has a counterpart with Z- (cis) configuration at the other end of the double bond. If there is no Z-counterpart, then -1 is returned. Requires cHelperParities.
directly connected to one of the double bond atoms
double bond with available bond parity
-1 or counterpart to connAtom in Z-configuration
Clears helperBits from mValidHelperArrays.
Compute and set atom coordinates for this molecule.
whether atom is one of Li,Na,K,Rb,Cs
whether the atom is in an allylic/benzylic position
Evaluates, whether bond is an amide bond, thio-amide, or amidine bond.
whether the atom's stereo configuration was explicitly declared unknown
Checks whether this atom was marked to be deleted and not deleted yet.
Pseudo paries are parities that indicate a relative configuration. It always needs at least 2 pseudo parities (atom or bond) within a part of a molecule to be meaningful. This information is calculated by ensureHelperArrays(Molecule.cHelperCIP). Molecules extracted from IDCode don't know about pseudo parities.
whether this atom's parity is a relative configuration
Atoms with pseudo parities are not considered stereo centers. While parities are canonized and always refer to the full set of molecules (in case ESR groups are defined), this method returns true if this atom is a stereo center in any(!) of the individual molecules described by the ESR settings.
true if atom is stereo center in at least one molecule after ESR resolution
Checks whether bond is an axial chirality bond of the BINAP type. Condition: non-aromatic, non-small-ring (<= 7 members) single bond connecting two aromatic rings with 6 or more members each that together bear at least three ortho substituents. A stereo bond indicating the chirality is not(!!!) a condition.
true if axial chirality conditions are met
Used for depiction only.
Used for depiction only.
Checks whether this bond was marked to be deleted and not deleted yet.
This hint/flag is set by CoordinateInventor for double bonds without given EZ-parity, because the new coordinates may imply a not intended EZ-parity. If parities are calculated later by the Canonizer is can correctly assign cBondParityUnknown if the bond is a stereo bond. The setBondParity() method clears this flag. This method usually should not be called for other purposes.
whether the bond parity was unknown when 2D- atom coordinates were created
whether atom is one of O,S,Se,Te
A bond is considered delocalized, if it has different bond orders in different, but energetically equivalent mesomeric structures. Bonds in aromatic 6-membered rings typically are delocalized, while those in uncharged 5-membered aromatic rings are not. Indole has 6 delocalized bonds.
whether atom is one of Mg,Ca,Sr,Ba
whether atom is an electronegative one
whether atom is an electropositive one
Checks whether this nitrogen atom is flat, because it has a double bond, is member of an aromatic ring or is part of amide, an enamine or in resonance with an aromatic ring. It is also checked that ortho substituents don't force the amine into a non-resonance torsion. State of helper arrays must be at least cHelperRings.
Molecule objects may represent complete molecules or sub-structure fragments, depending on, whether they are flagges as being a fragment or not. Both representations have much in common, but in certain aspects behave differently. Thus, complete molecules are considered to carry implicit hydrogens to fill unoccupied atom valences. Sub-structure fragments on the other hand may carry atom or bond query features. Depiction, sub-structure search, and other algorithms treat fragments and complete molecules differerently.
whether atom is one of F,Cl,Br,I
Atom marking may be used for any external purpose
whether atom is any metal atom
whether the atom has the natural isotop distribution
whether atom is one of N,P,As
true if this atom is not a metal and not a nobel gas
In a consecutive sequence of sp-hybridized atoms multiple single bonds cause redundant torsions. Only that single bond with the smallest bond index is considered really rotatable; all other single bonds are pseudo rotatable. If one/both end(s) of the sp-atom sequence doesn't carry atoms outside of the straight line then no bond is considered rotatable. A simple terminal single bond
true, if this bond is not considered rotatable because of a redundancy
true if atom is one of H,B,C,N,O,F,Si,P,S,Cl,As,Se,Br,Te,I
Uncharged hydrogen atoms with no isotop information nor with an attached
custom label are considered simple and can usually be suppressed, effectively
converting them from an explicit to an implicit hydrogen atom.
Note: This method returns true for uncharged, natural abundance
hydrogens without custom labels even if they have a non-standard bonding
situation (everything being different from having one single bonded
non-simple-hydrogen neighbour, e.g. unbonded hydrogen, H2, a metal ligand
bond to another atom, two single bonds, etc.) If unusual bonding needs to be
considered, check for that independently from this method.
whether atom is a member of a ring not larger than 7 atoms
whether bond is a member of a ring not larger than 7 atoms
whether atom has a neighbor that is connected through a double/triple bond to a hetero atom
Checks whether bond is drawn as up/down single bond
true if bond is a stereo bond
Marks this atom to be deleted in a later call to deleteMarkedAtomsAndBonds().
Marks this bond to be deleted in a later call to deleteMarkedAtomsAndBonds().
Normalizes different forms of functional groups (e.g. nitro) to a preferred one. This step should precede any canonicalization.
true if the molecule was changed
Removes all plain explicit hydrogens atoms from the molecule, converting them effectively to implicit ones. If the molecules has 2D-coordinates (is3D==false), then this method perceives stereo configurations from up/down-bonds to explicit hydrogens before deleting them and turns another bond into a stereo bond to indicate the proper configuration. If the removal of a hydrogen atom would change an atom's implicit valence, the atom's abnormal valence is set accordingly.
pass true, if atom coordinates are three dimensional
Removes any query features from the molecule
whether any query features were removed
For the given ESR type (AND or OR) renumbers all group indexes starting from 0. Use this, if stereo center deletion or other operations caused an inconsisten ESR number state. Molecule and derived methods do this automatically.
cESRTypeAnd or cESRTypeOr
number of ESR groups
Low level method for constructing/modifying a molecule from scratch. Use setAtomicNo(), possibly setAtomX(), setAtomY() and other setAtomXXX() methods for new atoms.
Low level method for constructing/modifying a molecule from scratch. Use setBondType() and setBondAtom() if you increase the number of bonds with this method.
This is a policy setting for this StereoMolecule as molecule container. If set to true then this StereoMolecule will treat tetrahedral nitrogen atoms with three or four distinguishable substituents as stereo centers and will assign parities. deleteMolecule() does not change this behavior.
Set an atom's maximum valance to be different from the default one. If a carbon atom's valence is set to -1,0 or 4 its radical state is removed. If a carbon atom's valence is set to 2, a singulet carbene state is assumed.
0-14: new maximum valence; -1: use default
The atom Cahn-Ingold-Prelog parity is a calculated property available above/equal helper level cHelperCIP. It encodes the stereo configuration of an atom with its neighbors using up/down-bonds or 3D-atom-coordinates, whatever is available. It depends on the atom indices of the neighbor atoms and their orientation is space. This method is called by the Canonizer and usually should not be called otherwise.
one of cAtomCIPParityRorM,cAtomCIPParitySorP,cAtomCIPParityProblem
This is a user applied information, rather than a calculated value. The stereo center configuration is declared to be unknown. If the atom is recognized a stereo center, then its parity will be cAtomParityUnknown.
If a custom atom label is set, a molecule depiction displays the custom label instead of the original one. Custom labels are not interpreted otherwise. However, they may optionally be encoded into idcodes; see Canonizer.encodeAtomCustomLabels(). If a custom label start with ']' then the label without the ']' symbol is shown at the top left of the original atom label rather than replacing the original atom label. If label is null or equals the normal atom label, then the custom label is removed. This method is less efficient than the byte[] version: setAtomCustomLabel(int, byte[])
null to remove custom label
This is MDL's enhanced stereo representation (ESR). Stereo atoms and bonds with the same ESR type (AND or OR) and the same ESR group number are in the same group, i.e. within this group they have the defined (relative) stereo configuration.
one of cESRTypeAbs,cESRTypeAnd,cESRTypeOr
index starting with 0 (not considered if type is cESRTypeAbs)
Defines an atom list as query feature for substructure search
is null or a sorted int[] of valid atomic numbers
true if atom is a wild card and list contains atoms to be excluded
Defines an atom mapping number within the context of a reaction. Atoms that that share the same mapping number on the reactant and product side are considered to be the same atom.
Atom marking may be used for any external purpose.
Set atom to specific isotop or to have a natural isotop distribution
rounded atom mass or 0 (default) for natural abundance
The atom parity is a calculated property available above/equal helper level
cHelperParities. It describes the stereo configuration of a chiral atom and
is calculated either from 2D-atom-coordinates and up/down-bonds or from
3D-atom-coordinates, whatever is available. It depends on the atom indices of
the neighbor atoms and their orientation in space.
The parity is defined as follows: Look at the chiral atom such that its
neighbor atom with the highest atom index (or the hydrogen atom if it is
implicit) is oriented to the back. If the remaining three neighbors are in
clockwise order (considering ascending atom indexes) than the parity is 1. If
they are in anti-clockwise order, then the parity is 2.
For linear chirality (allenes): Look along the straight line of double bonds
such that the rear neighbor with the lower atom index points to the top. If
the front neighbor with the lower atom index points to the right than the
parity is 1.
This method is called by the Canonizer and usually should not be called
otherwise.
one of cAtomParity1,cAtomParity2,cAtomParityNone,cAtomParityUnknown
true if the configuration is only meaningful relative to another one
Introduce or remove an atom query feature and make sure, the molecule is
flagged to be a sub-structure fragment (see setFragment()). A query feature
is usually a flag, which if set, poses an additional atom/bond matching
constraint for the sub-structure search and, thus, reduces the number of
matching atoms and therefore also the number of molecules found. Often
multiple query feature flags are related and grouped, e.g. to define the
number of hydrogens atoms. These are the flags related to hydrogen
neighbors:
public static final int cAtomQFHydrogen = 0x00000780;
public static final int cAtomQFNot0Hydrogen = 0x00000080;
public static final int cAtomQFNot1Hydrogen = 0x00000100;
public static final int cAtomQFNot2Hydrogen = 0x00000200;
public static final int cAtomQFNot3Hydrogen = 0x00000400;
An inverse logic needs to be applied to translate a user request to the bits
needed. For example, to only accept atoms that have 1 or 2 hydrogen
neighbors, we need to filter out all others. Thus, we would call
setAtomQueryFeature(atom, cAtomQFNot0Hydrogen | cAtomQFNot3Hydrogen, true);
To match only atoms without hydrogen neighbors, call
setAtomQueryFeature(atom, cAtomQFHydrogen & ~cAtomQFNot3Hydrogen, true);
This mechanism allows a very efficient atom matching and therefore very fast
sub-structure search.
one of cAtomQF...
if true, the feature is set, otherwise it is removed
Sets an atom's radical state as singulet,dublet,triplet or none
one of cAtomRadicalStateNone,cAtomRadicalStateS,cAtomRadicalStateD,cAtomRadicalStateT
Set an atom's atomic number and defines the isotop to be natural abundance.
Used for depiction only.
The bond Cahn-Ingold-Prelog parity is a calculated property available above/equal helper level cHelperCIP. It encodes the stereo configuration of a bond with its neighbors using 2D-coordinates and up/down-bonds or 3D-atom-coordinates, whatever is available. It depends on the atom indices of the neighbor atoms and their orientation is space. This method is called by the Canonizer and usually should not be called otherwise. Considered are E/Z-double bonds and M/P-BINAP type single bonds.
one of cBondCIPParityEorP,cBondCIPParityZorM,cBondCIPParityProblem
MDL's enhanced stereo representation for BINAP type of stereo bonds. Stereo atoms and bonds with the same ESR type (AND or OR) and the same ESR group number are in the same group, i.e. within this group they have the defined (relative) stereo configuration.
one of cESRTypeAbs,cESRTypeAnd,cESRTypeOr
index starting with 0
Used for depiction only.
Sets the bond type based on bond order without stereo orientation.
1,2, or 3
The bond parity is a calculated property available above/equal helper level cHelperParities. It encodes the stereo configuration of a double bond or BINAP type single bond from up/down-bonds and 2D-coordinates or 3D-atom-coordinates, whatever is available. It depends on the atom indices of the neighbor atoms and their orientation is space. This method is called by the Canonizer and usually should not be called otherwise.
one of cBondParityEor1,cBondParityZor2,cBondParityNone,cBondParityUnknown
true if the configuration is only meaningful relative to another one
This hint/flag is set by CoordinateInventor for double bonds without given EZ-parity, because the new coordinates may imply a not intended EZ-parity. If parities are calculated later by the Canonizer is can correctly assign cBondParityUnknown if the bond is a stereo bond. The setBondParity() method clears this flag. This method usually should not be called for other purposes.
Defines a bond type combining bod order and stereo orientation.
one of cBondTypeSingle,cBondTypeDouble,cBondTypeUp,cBondTypeCross,...
Sets the overall chirality of the molecule taking into account: Recognition of stereo centers and stereo bonds, defined ESR features, meso detection. The chirality combines the knowledge about how many stereo isomers are represented, whether all of these are meso, whether we have one defined stereo isomer, a mixture of racemates, epimers, or other diastereomers. The information is used during depiction. This method is called by the Canonizer and usually should not be called otherwise.
Molecule objects may represent complete molecules or sub-structure fragments, depending on, whether they are flagges as being a fragment or not. Both representations have much in common, but in certain aspects behave differently. Thus, complete molecules are considered to carry implicit hydrogens to fill unoccupied atom valences. Sub-structure fragments on the other hand may carry atom or bond query features. Depiction, sub-structure search, and other algorithms treat fragments and complete molecules differently.
if false, then all query features are removed
Use this method with extreme care. If you make a change to the molecule, the validity of the helper arrays is typically set to cHelperNone. If you make a small change to a molecule that doesn't change its topology, you may override the automatic automatically cleared helper validity with this method and avoid a new calculation of the neighbour arrays and ring detection.
cHelperNeighbours or cHelperRings
Fragment's query features are checked for consistency and normalized during helper array creation. As part of this, simple hydrogen atoms are converted into hydrogen-count query features. If hydrogen protection is enabled, explicit hydrogens are not touched.
Usually called automatically and hardly needed to be called.
Usually called automatically and hardly needed to be called.
Currently, this method only allows to switch the default atomic number dependent atom coloring off by passing cMoleculeColorNeutral. In future updates it may also accept ARGB values.
currently supported values: cMoleculeColorDefault, cMoleculeColorNeutral
Atom stereo parities and bond E/Z-parities are properties that are usually
perceived from up/down-bonds and atom coordinates, respectively. This is done
during the helper array calculation triggered by
ensureHelperArrays(cHelperParities).
This method tells the molecule that current atom/bond parities are valid,
even if the stereo perception not has been performed. In addition to the
stereo parities one may declare CIP parities and/or symmetry ranks also to be
valid (helperStereoBits != 0). setParitiesValid(0) should be called if no
coordinates are available but the parities are valid nevertheless, e.g. after
the IDCodeParser has parsed an idcode without coordinates. (Note: After
idcode parsing unknown stereo centers have parities cAtomParityNone instead
of cAtomParityUnknown. Thus, calling isStereoCenter(atom) returns false!!!)
Declaring parities valid prevents the Canonizer to run the stereo recognition
again when ensureHelperArrays(cHelperParities or higher) is called.
May also be called after filling valences with explicit hydrogen atoms, which
have no coordinates, to tell the molecule that the earlier created stereo
flags are still valid.
0 or combinations of cHelperBitCIP,cHelperBitSymmetry...,cHelperBitIncludeNitrogenParities
In case bond is a BINAP kind of chiral bond with defined parity, then the preferred neighbour single bond is converted into a stereo bond to correctly reflect its defined parity.
This converts one single bond per parity into a stereo up/down bond to correctly reflect the given parity. This works for tetrahedral and allene atom parities as well as for BINAP type of bond parities. Should only be called with valid TH and EZ parities and valid coordinates, e.g. after idcode parsing with coordinates or after coordinate generation.
This is for compatibility with old MDL stereo representation that contained a 'chiral' flag to indicate that the molecule is not a racemate. If a molecule is constructed from a source format (e.g. a molfile version 2) that contains a 'chiral' flag then setToRacemate() needs to be called if the chiral flag is not(!) set. This causes after stereo center recognition to turn all absolute stereo centers into racemic ones.
Sets all atoms with TH-parity 'unknown' to explicitly defined 'unknown'. Sets all double bonds with EZ-parity 'unknown' to cross bonds.
whether there is a path of bonds leading from atom1 to atom2
Removes all isotop information, i.e. sets all atoms to the natural isotop abundance.
true if something was changed
Removes all unconnected fragments except for the largest one. If small fragments were removed, then canonizeCharge() is called to neutralize charges after potential removal of counter ions. Metal ligand bonds may or may not be considered a connection.
atom mapping from old to new index; null if no fragments were removed
Removes defined and implicit stereo information from the molecule.
Suggests either cBondTypeSingle or cBondTypeMetalLigand whatever seems more appropriate for a new bond between the two atoms.
Whether an atom may be considered to carry implicit hydrogen atoms depends on the atomicNo of that atom. Aluminum and all non/metal atoms except the nobel gases and except hydrogen itself are considered to carry implicit hydrogens to fill up their unoccupied valences. Atoms with an assigned unusual valence always support implicit hydrogens independent of their atomicNo.
true if this atom's unoccupied valences are considered to be implicit hydrogens
Returns a MDL Molfile V2000 string.
Returns a MDL Molfile V3000 string.
Returns an SVG string representing the structure in two dimensions.
Id attribute of the resulting svg element. Defaults to "id" followed by an automatically incremented number.
Parse the provided idcode
and return a Molecule
.
Parse the provided idcode
and return a Molecule
.
boolean indicating if the 2D coordinates should be computed. Default: true.
Parse the provided molfile
and return a Molecule
.
MDL Molfile string in V2000 or V3000
Parse the provided molfile
and return an object with Molecule
and map.
MDL Molfile string in V2000 or V3000.
Parse the provided smiles
and return a Molecule
.
By default, stereo features are parsed, which triggers itself a coordinate
computation and coordinates are computed again after parsing to guarantee that
they are always the same.
If you do not need stereo features and want the fastest parsing, use this method
with {noCoordinates: true, noStereo: true}
.
When the molecule adds a new bond to a new atom or a new ring, then atoms are positioned such that the lengths of the new bonds are equal to the average length of existing bonds. If there are no existing bonds, then this default is used. If the default is not set by this function, then it is 24.
Construct a new molecule.


|
IOTA Access SDK
|
action struct type More...
#include <policy.h>
Data Fields | |
| char * | action_id |
| fee_t | fee |
| unsigned long | tx_value |
| char * | tx_addr |
| char * | tx_hash |
| void * | attributes |
| obligation_t * | obligations |
action struct type
| char* action_id |
action identifier
| void* attributes |
(optional) attribute list
| fee_t fee |
fee type
| obligation_t* obligations |
(optional) obligation list
| char* tx_addr |
(optional) fee tx address
| char* tx_hash |
(optional) fee tx hash
| unsigned long tx_value |
(optional) fee tx value


Parallel Charged Planes With An Embedded Gaussian Cylinder
The Gaussian surface encloses no charge, so the net flux through the
surface must be zero. The strong field is directed inward through
the cap near the positive plane, and outward through the cap near
the negative plane, giving a net zero flux.
Mouse Interactions
- Click and drag with the left mouse button to rotate the model.
- Use the mouse wheel to zoom in and out.
Touch Interactions
- Swipe with a finger to rotate the model.
- Pinch with two fingers to zoom in and out.
⇦ Back


--- layout: post title: Disaggregating social media and civic governance theories date: 2011-08-28 17:59:36.000000000 -04:00 categories: - Commentary on works - Media Studies - Social Science tags: [] status: publish type: post published: true meta: _edit_last: '7106425' author: login: samarthbhaskar email<EMAIL_ADDRESS>display_name: samarthbhaskar first_name: '' last_name: '' ---
"In the Indian capital of New Delhi, a tiny cohort of Internet savvy consumers is demanding better services from their government and is using social media to make it happen, even though the vast majority of the town’s residents remain off the Internet"
The end of this article claims some minor successes (mostly relating to public shaming of abuses of power by the Delhi traffic police) but in the quote above, the line "even though the vast majority of the town's residents remain off the Internet" caught my eye.
I am not sure exactly what my thoughts are yet, but the difference in what demographic of a political constituency uses a social media tool versus embodied protest might be an interesting way to model social media usage for political purposes. Perhaps educated, networked, drivers in New Delhi are completely well-suited as a demographic who would use social media to air grievances. While uneducated, disenfranchised, impoverished residents might not be the right demographic to try and pose or answer questions about social media usage.


I have been a Xanax user for about 2 years now, and it has saved my life. 2.5 years ago I went into a hospital, suffering from convulsions, and basically died. My body temperature dropped to 93 degrees, and my blood pressure so low I had to be revived. It was the most frightening time of my life. For 6 months I was given MRI's, EKG's, and blood work. They could not find the culprit of my problems. I was having panic attacks due to post-traumatic stress disorder. I was given heavy doses of Zoloft, the Paxil, then Effexor, until I was saved by Xanax.
Xanax gave me the ability to relax, and to have my body feel as one again. I was lost. Xanax gave me a map to my life. I control it again and have for 2 years without any real problems.
The most interesting part of this whole story is that I have not had a drink, or smoked, or done anything else besides Xanax for 2 years, and I am content! I am happier than I ever was on any other drug. The feeling of warmth and happiness is a hard one to grasp in this world of evil. I have found the one light in this darkness to see through the veil. How could I ever leave this?
I only can speak highly of alprazolam, but I must stress that it must be taken wisely and ALONE to appreciate what it really does, and not mixed with alcohol, or any others drugs. I have watched many people have bad reactions to these combinations. People who say they have lost memory or felt like time was stolen from them, usually are combiners who drink alcohol or mix another drug with alprazolam. I actually feel smarter and more aware of my surroundings when isolating the drug by itself.
thank you x
REPTOID
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


INFORMATION
EDUCATIONAL BACKGROUND
PROGRAMMING ONLINE
2014-2017
KCSE Certificate Elite School
2006-2013
KCPE Certificate Primary
WORK EXPERIENCE
HOBBIES


--- layout: page title: About permalink: /about/ ---
I am interested in the relationship between human civilisation and culture and the natural world, and how to bring about symbiosis between the two.


yaml - YAML Format Encoder/Decoder
The yaml package provides a simple Tcl-only library for parsing the YAML http://www.yaml.org/ data exchange format as specified in http://www.yaml.org/spec/1.1/.
The yaml package returns data as a Tcl dict. Either the dict package or Tcl 8.5 is required for use.
Parse yaml formatted text txt into a Tcl dict/huddle and return the value.
Change implicit options for the library. Now, the params are the same as ::yaml::yaml2dict. Arguments of::yaml::yaml2dict is more priority than this setting.
Convert a dict/list/huddle object into YAML stream.
spaces indent of each block node. currently default is 2.
word wrap for YAML stream. currently default is 40.
An example of a yaml stream converted to Tcl. A yaml stream is returned as a single item with multiple elements.
{ --- !<tag:clarkevans.com,2002:invoice> invoice: 34843 date : 2001-01-23 bill-to: &id001 given : Chris family : Dumars address: lines: | 458 Walkman Dr. Suite #292 city : Royal Oak state : MI postal : 48046 ship-to: *id001 product: - sku : BL394D quantity : 4 description : Basketball price : 450.00 - sku : BL4438H quantity : 1 description : Super Hoop price : 2392.00 tax : 251.42 total: 4443.52 comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338. } => invoice 34843 date 2001-01-23 bill-to {given Chris family Dumars address {lines {458 Walkman Dr. Suite #292 } city {Royal Oak} state MI postal 48046}} ship-to {given Chris family Dumars address {lines {458 Walkman Dr. Suite #292 } city {Royal Oak} state MI postal 48046}} product {{sku BL394D quantity 4 description Basketball price 450.00} {sku BL4438H quantity 1 description {Super Hoop} price 2392.00}} tax 251.42 total 4443.52 comments {Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.}
An example of a yaml object converted to Tcl. A yaml object is returned as a multi-element list (a dict).
{ --- - [name , hr, avg ] - [Mark McGwire, 65, 0.278] - [Sammy Sosa , 63, 0.288] - Mark McGwire: {hr: 65, avg: 0.278} Sammy Sosa: { hr: 63, avg: 0.288} } => {name hr avg} {{Mark McGwire} 65 0.278} {{Sammy Sosa} 63 0.288} {{Mark McGwire} {hr 65 avg 0.278} {Sammy Sosa} {hr 63 avg 0.288}}
tag parser not implemented. currentry, tags are merely ignored.
Only Anchor => Aliases ordering. back alias-referring is not supported.
Too many braces, or too few braces.
Not enough character set of line feeds. Please use only "\n" as line breaks.
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category yaml of the Tcllib Trackers. Please also report any ideas for enhancements you may have for either package and/or documentation.
When proposing code changes, please provide unified diffs, i.e the output of diff -u.
Note further that attachments are strongly preferred over inlined patches. Attachments can be made by going to the Edit form of the ticket immediately after its creation, and then using the left-most button in the secondary navigation bar.
Copyright © 2008 KATO Kanryu <kanryu6@users.sourceforge.net>


International Men’s Day: 5 Unconventional Ways To Treat Your Partner
by Violet JohnsonSomehow, society has made us believe romance and catering to a loved one is solely the man’s job. There’s no disputing this or trying to start an ancestral war in a bid to prove this wrong; but, it should be considered that the menfolk are humans before anything else.
Hence, the need for them to be pampered as well, even before they ask or insinuate that you (the female) should.
Since we are still celebrating “International Men’s Day” which was on Tuesday, 19, November, here are a few ways you can come through for that special man in your life:
Serve breakfast… in the bed, of course.
Ladies can’t be the only species enjoying “breakfast in bed”, men should at least (once in a while) should be woken up to a tray filled with his favorite meal. And if he loves to start his day with just coffee, then brew the best for him.
Soothe his Nerves
When we (ladies) get stressed, we look for the most relieving ways to ease off and one of them is through getting a massage from him. Hello!!?? The man massaging you has a body too and goes through just as much stress as you do. So, lay him on his chest and run your oily hands across his, relaxing his body, mind and soul. Even an ordinary head massage will go a really long way.
Ladies, spend your money!
There is absolutely no harm in spending your money on your loved one; it is rather selfish to always be in demand and not be willing to give. Step into that gift shop and pick something you know he would like or take him out on an all-expense paid date.
Most importantly, let him know, with each passing day that you care.


Repo internal filesystem layout¶
A reference to the .repo/
tree in repo client checkouts.
Hopefully it’s complete & up-to-date, but who knows!
*** note Warning: This is meant for developers of the repo project itself as a quick reference. Nothing in here must be construed as ABI, or that repo itself will never change its internals in backwards incompatible ways.
[TOC]
.repo/ layout¶
All content under .repo/
is managed by repo
itself with few exceptions.
In general, you should not make manual changes in here.
If a setting was initialized using an option to repo init
, you should use that
command to change the setting later on.
It is always safe to re-run repo init
in existing repo client checkouts.
For example, if you want to change the manifest branch, you can simply run
repo init --manifest-branch=<new name>
and repo will take care of the rest.
config
: Per-repo client checkout settings using git-config file format..repo_config.json
: JSON cache of theconfig
file for repo to read/process quickly.
repo/ state¶
repo/
: A git checkout of the repo project. This is howrepo
re-execs itself to get the latest released version.It tracks the git repository at
REPO_URL
using theREPO_REV
branch. Those are specified atrepo init
time using the--repo-url=<REPO_URL>
and--repo-rev=<REPO_REV>
options.Any changes made to this directory will usually be automatically discarded by repo itself when it checks for updates. If you want to update to the latest version of repo, use
repo selfupdate
instead. If you want to change the git URL/branch that this tracks, re-runrepo init
with the new settings..repo_fetchtimes.json
: Used byrepo sync
to record stats when syncing the various projects.
Manifests¶
For more documentation on the manifest format, including the local_manifests support, see the manifest-format.md file.
manifests/
: A git checkout of the manifest project. Its.git/
state points to themanifest.git
bare checkout (see below). It tracks the git branch specified atrepo init
time via--manifest-branch
.The local branch name is always
default
regardless of the remote tracking branch. Do not get confused if the remote branch is notdefault
, or if there is a remotedefault
that is completely different!No manual changes should be made in here as it will just confuse repo and it won’t automatically recover causing no new changes to be picked up.
manifests.git/
: A bare checkout of the manifest project. It tracks the git repository specified atrepo init
time via--manifest-url
.No manual changes should be made in here as it will just confuse repo. If you want to switch the tracking settings, re-run
repo init
with the new settings.manifest.xml
: The manifest that repo uses. It is generated atrepo init
and uses the--manifest-name
to determine what manifest file to load next out ofmanifests/
.Do not try to modify this to load other manifests as it will confuse repo. If you want to switch manifest files, re-run
repo init
with the new setting.Older versions of repo managed this with symlinks.
manifest.xml -> manifests/<manifest-name>.xml
: A symlink to the manifest that the user wishes to sync. It is specified atrepo init
time via--manifest-name
.manifests.git/.repo_config.json
: JSON cache of themanifests.git/config
file for repo to read/process quickly.local_manifest.xml
(Deprecated): User-authored tweaks to the manifest used to sync. See local manifests for more details.local_manifests/
: Directory of user-authored manifest fragments to tweak the manifest used to sync. See local manifests for more details.
Project objects¶
project.list
: Tracking file used byrepo sync
to determine when projects are added or removed and need corresponding updates in the checkout.projects/
: Bare checkouts of every project synced by the manifest. The filesystem layout matches the<project path=...
setting in the manifest (i.e. where it’s checked out in the repo client source tree). Those checkouts will symlink their.git/
state to paths under here.Some git state is further split out under
project-objects/
.project-objects/
: Git objects that are safe to share across multiple git checkouts. The filesystem layout matches the<project name=...
setting in the manifest (i.e. the path on the remote server) with a.git
suffix. This allows for multiple checkouts of the same remote git repo to share their objects. For example, you could have different branches offoo/bar.git
checked out tofoo/bar-master
,foo/bar-release
, etc… There will be multiple trees underprojects/
for each one, but only one underproject-objects/
.This layout is designed to allow people to sync against different remotes (e.g. a local mirror & a public review server) while avoiding duplicating the content. However, this can run into problems if different remotes use the same path on their respective servers. Best to avoid that.
subprojects/
: Likeprojects/
, but for git submodules.subproject-objects/
: Likeproject-objects/
, but for git submodules.worktrees/
: Bare checkouts of every project synced by the manifest. The filesystem layout matches the<project name=...
setting in the manifest (i.e. the path on the remote server) with a.git
suffix. This has the same advantages as theproject-objects/
layout above.This is used when git worktrees are enabled.
Global settings¶
The .repo/manifests.git/config
file is used to track settings for the entire
repo client checkout.
Most settings use the [repo]
section to avoid conflicts with git.
User controlled settings are initialized when running repo init
.
| Setting | repo init Option |
Use/Meaning |
|---|---|---|
| manifest.groups | --groups & --platform |
The manifest groups to sync |
| repo.archive | --archive |
Use git archive for checkouts |
| repo.clonefilter | --clone-filter |
Filter setting when using [partial git clones] |
| repo.depth | --depth |
Create shallow checkouts when cloning |
| repo.dissociate | --dissociate |
Dissociate from any reference/mirrors after initial clone |
| repo.mirror | --mirror |
Checkout is a repo mirror |
| repo.partialclone | --partial-clone |
Create [partial git clones] |
| repo.reference | --reference |
Reference repo client checkout |
| repo.submodules | --submodules |
Sync git submodules |
| repo.worktree | --worktree |
Use git worktree for checkouts |
| user.email | --config-name |
User's e-mail address; Copied into .git/config when checking out a new project |
| user.name | --config-name |
User's name; Copied into .git/config when checking out a new project |
Repo hooks settings¶
For more details on this feature, see the repo-hooks docs.
We’ll just discuss the internal configuration settings.
These are stored in the registered <repo-hooks>
project itself, so if the
manifest switches to a different project, the settings will not be copied.
| Setting | Use/Meaning |
|---|---|
| repo.hooks.\<hook>.approvedmanifest | User approval for secure manifest sources (e.g. https://) |
| repo.hooks.\<hook>.approvedhash | User approval for insecure manifest sources (e.g. http://) |
For example, if our manifest had the following entries, we would store settings
under .repo/projects/src/repohooks.git/config
(which would be reachable via
git --git-dir=src/repohooks/.git config
).
<project path="src/repohooks" name="chromiumos/repohooks" ... />
<repo-hooks in-project="chromiumos/repohooks" ... />
If <hook>
is pre-upload
, the .git/config
setting might be:
[repo "hooks.pre-upload"]
approvedmanifest = https://chromium.googlesource.com/chromiumos/manifest
Per-project settings¶
These settings are somewhat meant to be tweaked by the user on a per-project
basis (e.g. git config
in a checked out source repo).
Where possible, we re-use standard git settings to avoid confusion, and we refrain from documenting those, so see git-config documentation instead.
See repo help upload
for documentation on [review]
settings.
The [remote]
settings are automatically populated/updated from the manifest.
The [branch]
settings are updated by repo start
and git branch
.
| Setting | Subcommands | Use/Meaning |
|---|---|---|
| review.\<url>.autocopy | upload | Automatically add to --cc=<value> |
| review.\<url>.autoreviewer | upload | Automatically add to --reviewers=<value> |
| review.\<url>.autoupload | upload | Automatically answer "yes" or "no" to all prompts |
| review.\<url>.uploadhashtags | upload | Automatically add to --hashtag=<value> |
| review.\<url>.uploadlabels | upload | Automatically add to --label=<value> |
| review.\<url>.uploadnotify | upload | [Notify setting][upload-notify] to use |
| review.\<url>.uploadtopic | upload | Default [topic] to use |
| review.\<url>.username | upload | Override username with ssh:// review URIs |
| remote.\<remote>.fetch | sync | Set of refs to fetch |
| remote.\<remote>.projectname | \<network> | The name of the project as it exists in Gerrit review |
| remote.\<remote>.pushurl | upload | The base URI for pushing CLs |
| remote.\<remote>.review | upload | The URI of the Gerrit review server |
| remote.\<remote>.url | sync & upload | The URI of the git project to fetch |
| branch.\<branch>.merge | sync & upload | The branch to merge & upload & track |
| branch.\<branch>.remote | sync & upload | The remote to track |
~/ dotconfig layout¶
Repo will create & maintain a few files in the user’s home directory.
.repoconfig/
: Repo’s per-user directory for all random config files/state..repoconfig/config
: Per-user settings using git-config file format..repoconfig/keyring-version
: Cache file for checking if the gnupg subdir has all the same keys as the repo launcher. Used to avoid running gpg constantly as that can be quite slow..repoconfig/gnupg/
: GnuPG’s internal state directory used when repo needs to rungpg
. This provides isolation from the user’s normal~/.gnupg/
..repoconfig/.repo_config.json
: JSON cache of the.repoconfig/config
file for repo to read/process quickly..repo_.gitconfig.json
: JSON cache of the.gitconfig
file for repo to read/process quickly.