Mercurial > repos > deepakjadmin > mayatool3_test3
diff mayachemtools/docs/modules/man3/Atom.3 @ 0:73ae111cf86f draft
Uploaded
author | deepakjadmin |
---|---|
date | Wed, 20 Jan 2016 11:55:01 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mayachemtools/docs/modules/man3/Atom.3 Wed Jan 20 11:55:01 2016 -0500 @@ -0,0 +1,1961 @@ +.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.ie \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.el \{\ +. de IX +.. +.\} +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "ATOM 1" +.TH ATOM 1 "2015-03-29" "perl v5.14.2" "MayaChemTools" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +Atom +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +use Atom; +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fBAtom\fR class provides the following methods: +.PP +new, AddHydrogens, Copy, DeleteAtom, DeleteHydrogens, DoesAtomNeighborhoodMatch, +GetAtomicInvariantValue, GetAtomicWeight, GetBondToAtom, GetBonds, +GetBondsToHeavyAtoms, GetBondsToHydrogenAtoms, GetBondsToNonHydrogenAtoms, +GetExactMass, GetExplicitHydrogens, GetFormalCharge, GetFreeRadicalElectrons, +GetGroupNumber, GetHeavyAtomNeighbors, GetHeavyAtomNeighborsAtomInformation, +GetHeavyAtomNeighborsBondformation, GetHighestCommonValence, +GetHydrogenAtomNeighbors, GetHydrogens, GetImplicitHydrogens, GetLargestBondOrder, +GetLargestBondOrderToHeavyAtoms, GetLargestBondOrderToNonHydrogenAtoms, +GetLargestRing, GetLowestCommonValence, GetMassNumber, GetMissingHydrogens, +GetNeighbors, GetNeighborsUsingAtomSpecification, GetNonHydrogenAtomNeighbors, +GetNonHydrogenAtomNeighborsAtomInformation, +GetNonHydrogenAtomNeighborsBondInformation, GetNonHydrogenNeighborOfHydrogenAtom, +GetNumOfAromaticBondsToHeavyAtoms, GetNumOfAromaticBondsToNonHydrogenAtoms, +GetNumOfBondTypesToHeavyAtoms, GetNumOfBondTypesToNonHydrogenAtoms, GetNumOfBonds, +GetNumOfBondsToHeavyAtoms, GetNumOfBondsToHydrogenAtoms, +GetNumOfBondsToNonHydrogenAtoms, GetNumOfDoubleBondsToHeavyAtoms, +GetNumOfBondsAvailableForHeavyAtoms, GetNumOfBondsAvailableForNonHydrogenAtoms, +GetNumOfDoubleBondsToNonHydrogenAtoms, GetNumOfExplicitHydrogens, +GetNumOfHeavyAtomNeighbors, GetNumOfHydrogenAtomNeighbors, GetNumOfHydrogens, +GetNumOfImplicitHydrogens, GetNumOfMissingHydrogens, GetNumOfNeighbors, +GetNumOfNonHydrogenAtomNeighbors, GetNumOfRings, GetNumOfRingsWithEvenSize, +GetNumOfRingsWithOddSize, GetNumOfRingsWithSize, GetNumOfRingsWithSizeGreaterThan, +GetNumOfRingsWithSizeLessThan, GetNumOfSigmaAndPiBondsToHeavyAtoms, +GetNumOfSigmaAndPiBondsToNonHydrogenAtoms, GetNumOfSingleBondsToHeavyAtoms, +GetNumOfSingleBondsToNonHydrogenAtoms, GetNumOfTripleBondsToHeavyAtoms, +GetNumOfTripleBondsToNonHydrogenAtoms, GetPeriodNumber, +GetPotentialTotalCommonValence, GetRings, GetRingsWithEvenSize, +GetRingsWithOddSize, GetRingsWithSize, GetRingsWithSizeGreaterThan, +GetRingsWithSizeLessThan, GetSizeOfLargestRing, GetSizeOfSmallestRing, +GetSmallestRing, GetSpinMultiplicity, GetSumOfBondOrders, +GetSumOfBondOrdersToHeavyAtoms, GetSumOfBondOrdersToHydrogenAtoms, +GetSumOfBondOrdersToNonHydrogenAtoms, GetValence, GetValenceElectrons, +GetValenceFreeElectrons, GetX, GetXYZ, GetXYZVector, GetY, GetZ, IsAmideCarbon, +IsAmideNitrogen, IsAromatic, IsArsenic, IsBondedToAtom, IsBromine, IsCarbon, IsCarboxylCarbon, +IsCarboxylOxygen, IsCarboxylateCarbon, IsCarboxylateOxygen, IsChlorine, +IsFluorine, IsFunctionalClassType, IsGuadiniumCarbon, IsGuadiniumNitrogen, +IsHBondAcceptor, IsHBondDonor, IsHalogen, IsHeteroAtom, IsHydrogen, +IsHydrogenBondAcceptor, IsHydrogenBondDonor, IsHydrophobic, IsInRing, +IsInRingOfSize, IsIodine, IsIsotope, IsLipophilic, IsMetallic, +IsNegativelyIonizable, IsNitrogen, IsNonCarbonOrHydrogen, IsNotInRing, +IsOnlyInOneRing, IsOxygen, IsPhosphateOxygen, IsPhosphatePhosphorus, IsPhosphorus, +IsPolarAtom, IsPolarHydrogen, IsPositivelyIonizable, IsSaturated, IsSelenium, +IsSilicon, IsStereoCenter, IsSulfur, IsSulphur, IsTellurium, IsTerminal, +IsTopologicalPharmacophoreType, IsUnsaturated, SetAtomSymbol, SetAtomicNumber, +SetExplicitHydrogens, SetMassNumber, SetStereoCenter, SetStereochemistry, +SetX, SetXYZ, SetY, SetZ, StringifyAtom +.PP +\&\fBAtom\fR class is derived from \fBObjectProperty\fR base class which provides methods not explicitly +defined in \fBAtom\fR or \fBObjectProperty\fR class using Perl's \s-1AUTOLOAD\s0 functionality. These methods +are generated on-the-fly for a specified object property: +.PP +.Vb 3 +\& Set<PropertyName>(<PropertyValue>); +\& $PropertyValue = Get<PropertyName>(); +\& Delete<PropertyName>(); +.Ve +.SS "\s-1METHODS\s0" +.IX Subsection "METHODS" +.IP "\fBnew\fR" 4 +.IX Item "new" +.Vb 1 +\& $NewAtom = new Atom([%PropertyNameAndValues]); +.Ve +.Sp +Using specified \fIAtom\fR property names and values hash, \fBnew\fR method creates a new object +and returns a reference to newly created \fBAtom\fR object. By default, following properties are +initialized: +.Sp +.Vb 5 +\& ID = SequentialObjectID +\& Name = "Atom <SequentialObjectID>" +\& AtomSymbol = "" +\& AtomicNumber = 0 +\& XYZ = ZeroVector +.Ve +.Sp +Except for \fI\s-1ID\s0\fR property, all other default properties and other additional properties can +be set during invocation of this method. +.Sp +Examples: +.Sp +.Vb 5 +\& $Atom = new Atom(); +\& $CarbonAtom = new Atom(\*(AqAtomSymbol\*(Aq => \*(AqC\*(Aq, \*(AqXYZ\*(Aq => (0.0, 1.0, +\& 0.0)); +\& $OxygenAtom = new Atom(\*(AqAtomName\*(Aq => \*(AqOxygen\*(Aq, AtomSymbol\*(Aq => \*(AqO\*(Aq, +\& \*(AqXYZ\*(Aq => (1.0, 1.0, 1.0)); +.Ve +.IP "\fBAddHydrogens\fR" 4 +.IX Item "AddHydrogens" +.Vb 1 +\& $NumOfHydrogensAdded = $Atom\->AddHydrogens(); +.Ve +.Sp +Adds hydrogens to an \fBAtom\fR present in a \fBMolecule\fR object and returns +the number of added hydrogens. The current release of MayaChemTools doesn't +assign hydrogen positions. +.IP "\fBCopy\fR" 4 +.IX Item "Copy" +.Vb 1 +\& $AtomCopy = $Atom\->Copy(); +.Ve +.Sp +Copy \fIAtom\fR and its associated data using \fBStorable::dclone\fR and return a new +\&\fBAtom\fR object. +.IP "\fBDeleteAtom\fR" 4 +.IX Item "DeleteAtom" +.Vb 1 +\& $Atom\->DeleteAtom(); +.Ve +.Sp +Delete \fIAtom\fR from a molecule. +.IP "\fBDoesAtomNeighborhoodMatch\fR" 4 +.IX Item "DoesAtomNeighborhoodMatch" +.Vb 8 +\& $Status = $Atom\->DoesAtomNeighborhoodMatch($CentralAtomSpec); +\& $Status = $Atom\->DoesAtomNeighborhoodMatch($CentralAtomSpec, +\& $NbrAtomSpecsRef); +\& $Status = $Atom\->DoesAtomNeighborhoodMatch($CentralAtomSpec, +\& $NbrAtomSpecsRef, $AllowedNbrBondSpecsRef); +\& $Status = $Atom\->DoesAtomNeighborhoodMatch($CentralAtomSpec, +\& $NbrAtomSpecsRef, $NbrBondSpecsRef, +\& $AllowedNbrOfNbrAtomSpecsRef); +.Ve +.Sp +Returns 1 or 0 based on whether atom matches central atom and its neighborhood +using specified atom and bonds specifications. Neighborhood atom and bond specifications +are specified as array references containing neighbor atom and bond specifications. +.Sp +Let: +.Sp +.Vb 2 +\& AS = Atom symbol corresponding to element symbol, atomic number (#n) +\& or any atom (A) +\& +\& X<n> = Number of non\-hydrogen atom neighbors or heavy atoms +\& attached to atom +\& T<n> = Total number of atom neighbors including implicit and explicit +\& hydrogens +\& BO<n> = Sum of bond orders to non\-hydrogen atom neighbors or heavy +\& atoms attached to atom +\& LBO<n> = Largest bond order of non\-hydrogen atom neighbors or heavy +\& atoms attached to atom +\& SB<n> = Number of single bonds to non\-hydrogen atom neighbors or +\& heavy atoms attached to atom +\& TSB<n> = Total number of single bonds to atom neighbors including implicit +\& and explicit hydrogens +\& DB<n> = Number of double bonds to non\-hydrogen atom neighbors or +\& heavy atoms attached to atom +\& TB<n> = Number of triple bonds to non\-hydrogen atom neighbors or +\& heavy atoms attached to atom +\& AB<n> = Number of aromatic bonds to non\-hydrogen atom neighbors or +\& heavy atoms attached to atom +\& H<n> = Number of implicit and explicit hydrogens for atom +\& Ar = Aromatic annotation indicating whether atom is aromatic +\& RA or RA<n> = Ring atom annotation indicating whether atom +\& is a ring +\& TR<n> = Total number of rings containing atom +\& FC<+n/\-n> = Formal charge assigned to atom +\& MN<n> = Mass number indicating isotope other than most abundant isotope +\& SM<n> = Spin multiplicity of atom. Possible values: 1 (singlet), +\& 2 (doublet) or 3 (triplet) +.Ve +.Sp +Then, atom specification corresponds to: +.Sp +.Vb 2 +\& AS.X<n>.T<n>.BO<n>.LBO<n>.<SB><n>.TSB<n>.<DB><n>.<TB><n>.AB<n>.H<n>.Ar. +\& RA<n>.TR<n>FC<+n/\-n>.MN<n>.SM<n> +.Ve +.Sp +Except for \s-1AS\s0 which is a required atomic invariant in atom specification, all other atomic invariants are +optional. For an atom specification to match an atom, the values of all specified atomic invariants must +match. Exclamation in from of atomic invariant can be used to negate its effect during the match. +.Sp +For \fI\s-1FC\s0\fR value matching, the following value operators are also supported: +.Sp +.Vb 4 +\& o +* : Any positive value +\& o \-* : Any negative value +\& o > ValidNumber or >= ValidNumber +\& o < ValidNumber or <= ValidNumber +.Ve +.Sp +A comma delimited atom specification string is used to match any one of the specified atom specification. +.Sp +Notes: +.Sp +.Vb 2 +\& o During atom specification match to an atom, the first atomic invariant is always assumed to +\& atom symbol. +.Ve +.Sp +Examples: +.Sp +.Vb 5 +\& o (\*(AqN\*(Aq, \*(AqN\*(Aq, \*(AqN\*(Aq) +\& o (\*(AqN.FC0\*(Aq, \*(AqN.FC0\*(Aq, \*(AqN,N.FC+1.H1\*(Aq) +\& o (\*(AqN.H2\*(Aq, \*(AqN.H2\*(Aq, \*(AqN.H1\*(Aq) +\& o (\*(AqC,N\*(Aq, \*(Aq!N\*(Aq, \*(Aq!H\*(Aq) +\& o (\*(AqC,N\*(Aq, \*(AqN.Ar\*(Aq, \*(AqN.R5\*(Aq) +.Ve +.Sp +Let: +.Sp +.Vb 4 +\& \-|1|s|Single = Single bond +\& =|2|d|Double = Double bond +\& #|3|t|Triple = Triple bond +\& :|1.5|a|Ar|Aromatic = Aromatic bond +\& +\& @|RB|Ring = Ring bond +\& ~|*|Any = Any bond +.Ve +.Sp +Then, bond specification corresponds to: +.Sp +.Vb 3 +\& \-.: +\& =.@ +\& Double.Aromatic +.Ve +.Sp +For a bond specification to match bond between two atoms, the values of all specified bond symbols must +match. Exclamation in from of bond symbol can be used to negate its effect during the match. +.Sp +A comma delimited bond specification string is used to match any one of the specified atom specification. +.Sp +Notes: +.Sp +.Vb 3 +\& o During atom neighborhood match for central atom neighborhood atom and bond specifications, +\& implicit or missing hydrogens are automatically checked for any matches to unmatched +\& specifications. +.Ve +.Sp +Examples: +.Sp +.Vb 2 +\& Aromatic carbon in a 5 membered ring: +\& $Atom\->DoesAtomNeighborhoodMatch(\*(AqC.Ar.RA5\*(Aq); +\& +\& AcetylenicCarbon: $Atom\->DoesAtomNeighborhoodMatch(\*(AqC.T2.TB1\*(Aq); or +\& $Atom\->DoesAtomNeighborhoodMatch(\*(AqC.T2.TB1\*(Aq, +\& [\*(Aq*\*(Aq, \*(Aq*\*(Aq], [\*(Aq#\*(Aq, \*(Aq\-\*(Aq]); +\& +\& GuadiniumCarbon: $Atom\->DoesAtomNeighborhoodMatch(\*(AqC.X3.BO4\*(Aq, +\& [\*(AqN.FC0\*(Aq, \*(AqN.FC0\*(Aq, \*(AqN.FC0,N.FC+1\*(Aq], +\& [\*(Aq\-\*(Aq, \*(Aq\-\*(Aq, \*(Aq=\*(Aq], +\& [\*(AqC,H\*(Aq, \*(AqC,H\*(Aq, \*(AqC,H\*(Aq]); +\& +\& AmideCarbon: $Atom\->DoesAtomNeighborhoodMatch(\*(AqC.X3.BO4,C.X2.BO3\*(Aq, +\& [\*(AqC,H\*(Aq, \*(AqO\*(Aq, \*(AqN\*(Aq], +\& [\*(Aq\-\*(Aq, \*(Aq=\*(Aq, \*(Aq\-\*(Aq], +\& [\*(AqC,H\*(Aq, \*(AqC\*(Aq, \*(AqC,H,N,O,S,P,F,Cl,Br,I\*(Aq]); +\& +\& CarboxylCarbon: $Atom\->DoesAtomNeighborhoodMatch(\*(AqC.X3.BO4,C.X2.BO3\*(Aq, +\& [\*(AqC,H\*(Aq, \*(AqO\*(Aq, \*(AqO.X1.FC0\*(Aq], +\& [\*(Aq\-\*(Aq, \*(Aq=\*(Aq, \*(Aq\-\*(Aq], +\& [\*(AqC,H\*(Aq, \*(AqC\*(Aq, \*(AqC\*(Aq]); +\& +\& CarboxylateCarbon: $Atom\->DoesAtomNeighborhoodMatch(\*(AqC.X3.BO4,C.X2.BO3\*(Aq, +\& [\*(AqC,H\*(Aq, \*(AqO\*(Aq, \*(AqO.X1.FC\-1\*(Aq], +\& [\*(Aq\-\*(Aq, \*(Aq=\*(Aq, \*(Aq\-\*(Aq], +\& [\*(AqC,H\*(Aq, \*(AqC\*(Aq, \*(AqC\*(Aq]); +.Ve +.IP "\fBDeleteHydrogens\fR" 4 +.IX Item "DeleteHydrogens" +.Vb 1 +\& $NumOfHydrogensDeleted = $Atom\->AddHydrogens(); +.Ve +.Sp +Delete hydrogens from an \fBAtom\fR present in a \fBMolecule\fR object and returns +the number of deleted hydrogens. +.IP "\fBGetAtomicInvariantValue\fR" 4 +.IX Item "GetAtomicInvariantValue" +.Vb 1 +\& $Value = $Atom\->GetAtomicInvariantValue($AtomicInvariant); +.Ve +.Sp +Returns atomic invariant value for a specified \fIAtomicInvariant\fR. The current release +of MayaChemTools supports following abbreviations and descriptive names for +\&\fIAtomicInvarints\fR: +.Sp +.Vb 10 +\& AS : Atom or element symbol +\& X : NumOfNonHydrogenAtomNeighbors or NumOfHeavyAtomNeighbors +\& T : TotalNumOfAtomNeighbors +\& BO : SumOfBondOrdersToNonHydrogenAtoms or SumOfBondOrdersToHeavyAtoms +\& LBO : LargestBondOrderToNonHydrogenAtoms or LargestBondOrderToHeavyAtoms +\& SB : NumOfSingleBondsToNonHydrogenAtoms or NumOfSingleBondsToHeavyAtoms +\& TSB : TotalNumOfSingleBonds +\& DB : NumOfDoubleBondsToNonHydrogenAtoms or NumOfDoubleBondsToHeavyAtoms +\& TB : NumOfTripleBondsToNonHydrogenAtoms or NumOfTripleBondsToHeavyAtoms +\& AB : NumOfAromaticBondsToNonHydrogenAtoms or NumOfAromaticBondsToHeavyAtoms +\& H : NumOfImplicitAndExplicitHydrogens +\& Ar : Aromatic +\& Str : Stereochemistry +\& RA : RingAtom +\& FC : FormalCharge +\& AN : AtomicNumber +\& AM : AtomicMass +\& MN : MassNumber +\& SM : SpinMultiplicity +.Ve +.IP "\fBGetAtomicWeight\fR" 4 +.IX Item "GetAtomicWeight" +.Vb 1 +\& $Value = $Aom\->GetAtomicWeight(); +.Ve +.Sp +Returns atomic weight of an \fBAtom\fR which corresponds to either explicity set \fIAtomicWeight\fR +atom property or atomic weight of the corresponding element in the periodic table available by +\&\fBPeriodicTable\fR module. +.IP "\fBGetBondToAtom\fR" 4 +.IX Item "GetBondToAtom" +.Vb 1 +\& $Bond = $Atom\->GetBondToAtom($OtherAtom); +.Ve +.Sp +Returns a \fBBond\fR object corresponding to bond between \fIAtom\fR and \fIOtherAtom\fR in +a molecule. +.IP "\fBGetBonds\fR" 4 +.IX Item "GetBonds" +.Vb 1 +\& @Bonds = $Aoto\->GetBonds(); +.Ve +.Sp +Returns an array of \fBBond\fR objects corresponding to all bonds from \fIAtom\fR to other +bonded atoms in a molecule. +.IP "\fBGetBondsToHeavyAtoms\fR" 4 +.IX Item "GetBondsToHeavyAtoms" +.Vb 1 +\& @Bonds = $Atom\->GetBondsToHeavyAtoms(); +.Ve +.Sp +Returns an array of \fBBond\fR objects corresponding to bonds from \fIAtom\fR to other bonded +non-hydrogen atoms in a molecule. +.IP "\fBGetBondsToHydrogenAtoms\fR" 4 +.IX Item "GetBondsToHydrogenAtoms" +.Vb 1 +\& @Bonds = $Atom\->GetBondsToHydrogenAtoms(); +.Ve +.Sp +Returns an array of \fBBond\fR objects corresponding to bonds from \fIAtom\fR to any other +hydrogen atom in a molecule. +.IP "\fBGetBondsToNonHydrogenAtoms\fR" 4 +.IX Item "GetBondsToNonHydrogenAtoms" +.Vb 1 +\& @Bonds = $Atom\->GetBondsToNonHydrogenAtoms(); +.Ve +.Sp +Returns an array of \fBBond\fR objects corresponding to bonds from \fIAtom\fR to other bonded +non-hydrogen atoms in a molecule. +.IP "\fBGetExactMass\fR" 4 +.IX Item "GetExactMass" +.Vb 1 +\& $ExactMass = $Atom\->GetExactMass(); +.Ve +.Sp +Returns exact mass of an \fIAtom\fR which correspond to one of these three values: explicity set +\&\fIExactMass\fR property; mass of natural isotope for an explicty set value of \fIMassNumber\fR; most +abundant natural isotope mass for \fIAtom\fR with valid atomic number value available by +\&\fBPerodicTable\fR module. +.IP "\fBGetExplicitHydrogens\fR" 4 +.IX Item "GetExplicitHydrogens" +.Vb 1 +\& $NumOfExplicitHydrogens = $Atom\->GetExplicitHydrogens(); +.Ve +.Sp +Returns number of hydrogens explicity bonded to an \fIAtom\fR in a molecule. +.IP "\fBGetFormalCharge\fR" 4 +.IX Item "GetFormalCharge" +.Vb 1 +\& $FormalCharge = $Atom\->GetFormalCharge(); +.Ve +.Sp +Returns formal charge of an \fIAtom\fR in a molecule. +.IP "\fBGetFreeRadicalElectrons\fR" 4 +.IX Item "GetFreeRadicalElectrons" +.Vb 1 +\& $FreeRadicalElectrons = $Atom\->GetFreeRadicalElectrons(); +.Ve +.Sp +Returns number of free radical electrons corresponding to to one of these +three values: \fIFreeRadicalElectrons\fR property; \fISpinMultiplicity\fR property; value +of 0. +.Sp +For atoms with explicit assignment of \fISpinMultiplicity\fR atom property values, +.Sp +.Vb 5 +\& Singlet \- two unparied electrons corresponding to one spin state +\& Doublet \- free radical; an unpaired electron corresponding to two +\& spin states +\& Triplet \- two unparied electrons corresponding to three spin states +\& (divalent carbon atoms: carbenes) +.Ve +.Sp +\&\fBFreeRadicalElectrons\fR are calculated as follows: +.Sp +.Vb 3 +\& Doublet: 1 (one valence electron not available for bonding) +\& Singlet: 2 (two valence electrons not available for bonding) +\& Triplet: 2 (two valence electrons not available for bonding) +.Ve +.IP "\fBGetGroupNumber\fR" 4 +.IX Item "GetGroupNumber" +.Vb 1 +\& $GroupNumber = $Atom\->GetGroupNumber(); +.Ve +.Sp +Returns group number of an \fIAtom\fR in a molecule with a valid atomic number. +.IP "\fBGetHeavyAtomNeighbors\fR" 4 +.IX Item "GetHeavyAtomNeighbors" +.Vb 2 +\& $NumOfHeavyAtoms = $Atom\->GetHeavyAtomNeighbors(); +\& @HeavyAtoms = $Atom\->GetHeavyAtomNeighbors(); +.Ve +.Sp +Return number of heavy atoms or an array of \fBAtom\fR objects corresponding to heavy atoms +bonded to an \fIAtom\fR in a molecule. +.IP "\fBGetHeavyAtomNeighborsAtomInformation\fR" 4 +.IX Item "GetHeavyAtomNeighborsAtomInformation" +.Vb 3 +\& ($NumOfAtomNeighbors, $AtomNeighborsRef, +\& $NumOfAtomNeighborsType, $AtomNeighborsTypeMapRef) = $Atom\-> +\& GetHeavyAtomNeighborsAtomInformation(); +.Ve +.Sp +Returns atoms information for all non-hydrogen atoms attached to an \fIAtom\fR +in a molecule. +.Sp +The following values are returned: +.Sp +.Vb 6 +\& o Number of non\-hydrogen atom neighbors +\& o A reference to an array containing atom objects corresponding to +\& non\-hydrogen atom neighbors +\& o Number of different types of non\-hydrogen atom neighbors +\& o A reference to a hash containing atom symbol as key with value +\& corresponding to its count for non\-hydrogen atom neighbors +.Ve +.IP "\fBGetHeavyAtomNeighborsBondformation\fR" 4 +.IX Item "GetHeavyAtomNeighborsBondformation" +.Vb 4 +\& ($NumOfBonds, $BondTypeCountMapRef, +\& $AtomsBondTypesCountMapRef, +\& $AtomsBondTypeAtomsMap) = $Atom\-> +\& GetHeavyAtomNeighborsBondformation(); +.Ve +.Sp +Returns bonds information for all non-hydrogen atoms attached to an \fIAtom\fR +in a molecule. +.Sp +The following values are returned: +.Sp +.Vb 12 +\& o Number of bonds to non\-hydrogen atom neighbors +\& o A reference to an array containing bond objects corresponding to +\& non\-hydrogen atom neighbors +\& o A reference to a hash containing bond type as key with value +\& corresponding to its count for non\-hydrogen atom neighbors. Bond +\& types are: Single, Double or Triple +\& o A reference to a hash containing atom symbol as key pointing to bond +\& type as second key with values corresponding to count of bond types for atom +\& symbol for non\-hydrogen atom neighbors +\& o A reference to a hash containing atom symbol as key pointing to bond +\& type as second key with values corresponding to atom objects array involved +\& in corresponding bond type for atom symbol for non\-hydrogen atom neighbors +.Ve +.IP "\fBGetHighestCommonValence\fR" 4 +.IX Item "GetHighestCommonValence" +.Vb 1 +\& $HighestCommonValence = $Atom\->GetHighestCommonValence(); +.Ve +.Sp +Returns highest common valence of an \fIAtom\fR which corresponds to either explicity set +\&\fIHighestCommonValence\fR atom property or highest common valence of the corresponding +element in the periodic table available by \fBPerodicTable\fR module. +.IP "\fBGetHydrogens\fR" 4 +.IX Item "GetHydrogens" +.Vb 1 +\& $NumOfHydrogens = $Atom\->GetHydrogens(); +.Ve +.Sp +Returns total number of hydrogens for an \fIAtom\fR in a molecule including both hydrogen atom +neighbors and implicit hydrogens. +.IP "\fBGetHydrogenAtomNeighbors\fR" 4 +.IX Item "GetHydrogenAtomNeighbors" +.Vb 2 +\& $NumOfHydrogenAtomNeighbors = $Atom\->GetHydrogenAtomNeighbors(); +\& @HydrogenAtomNeighbors = $Atom\->GetHydrogenAtomNeighbors(); +.Ve +.Sp +Return number of hydrogen atoms or an array of \fIAtom\fR objects corresponding to hydrogen +atoms bonded to an \fIAtom\fR in a molecule. +.IP "\fBGetImplicitHydrogens\fR" 4 +.IX Item "GetImplicitHydrogens" +.Vb 1 +\& $NumOfImplicitHydrogens = $Atom\->GetImplicitHydrogens(); +.Ve +.Sp +Returns number of implicit hydrogens for an \fIAtom\fR in a molecule. This value either +corresponds to explicitly set \fIImplicitHydrogens\fR atom property or calculated as the +difference between the value of potential total valence and sum of bond orders to +both hydrogen and non-hydrogen atom neighbors. +.IP "\fBGetPotentialTotalCommonValence\fR" 4 +.IX Item "GetPotentialTotalCommonValence" +.Vb 1 +\& $PotentialTotalValence = $Atom\->GetPotentialTotalCommonValence(); +.Ve +.Sp +Returns potential total common valence of an \fIAtom\fR in a molecule corresponding +to a specific valence model set for the molecule using its \fBSetValenceModel\fR method +or default internal valence model. It is used during the calculation of missing or +implicit hydrogens. +.Sp +The current release of MayaChemTools supports three valence models: \fIMDLValenceModel, +DaylightValenceModel, InternalValenceModel or MayaChemToolsValenceModel\fR. +.Sp +For \fIMDLValenceModel\fR and \fIDaylightValenceModel\fR, the following data files, distributed +with the package, are used to calculate potential total valence: +.Sp +.Vb 2 +\& lib/data/MDLValenceModelData.csv +\& lib/data/DaylightValenceModelData.csv +.Ve +.Sp +The calculation of potential total common valence for these two models is performed as +follows: Calculate current effective total valence of the \fIAtom\fR by adding up the bond +order of its neighbors and number of free radical electrons; Find available common valence +for the \fIAtom\fR, corresponding to any specified formal charge, higher than the effective +total valence, and return it as \fIPotentialTotalValence\fR. +.Sp +The calculation of potential total common valence For \fIInternalValenceModel\fR or +\&\fIMayaChenToolsValenceModel\fR doesn't uses \fBPeriodicTable\fR module to retrieve values +for common valence, which in turn reads in PeriodicTableElements.csv file distributed with +the package. +.Sp +For elements with one one common valence, potential total common valence corresponds +to: +.Sp +.Vb 1 +\& CommonValence + FormalCharge \- FreeRadicalElectrons +.Ve +.Sp +For elements with multiple common valences, each common valence is used to +calculate total potential common valence as shown above, and the first total potential +common valence greater than the sum of bond orders to all neighbors is selected as +the final total common valence. +.Sp +FormalCharge sign is reversed for electropositive elements with positive formal charge +during common valence calculations. Electropositive elements, metals and transition elements, +have usually plus formal charge and it leads to decrease in common valence; the negative +formal charge should result in the decrease of common valence. +.Sp +The sign of formal charge is adjusted as follows. +.Sp +Group numbers > 14 \- Group numbers 15 (N), 16 (O), 17 (F), 18 (He): +.Sp +Formal charge sign is not adjusted. Positive and negative values result in the +increase and decrease of valence. +.Sp +Group 14 containing C, Si, Ge, Sn, Pb...: +.Sp +Formal charge sign is reversed for positive values. Both positive and negative +values result in the decrease of valence. +.Sp +Group 13 containing B, Al, Ga, In, Tl...: +.Sp +Formal charge sign is always reversed. Positive and negative values result in the +decrease and increase of valence. +.Sp +Groups 1 (H) through 12 (Zn)...: +.Sp +Formal charge sign is reversed for positive values. Both positive and negative +values result in the decrease of valence. +.Sp +Lanthanides and actinides: +.Sp +Formal charge sign is reversed for positive values. Both positive and negative +values result in the decrease of valence. +.IP "\fBGetLargestBondOrder\fR" 4 +.IX Item "GetLargestBondOrder" +.Vb 1 +\& $LargestBO =$Atom\->GetLargestBondOrder(); +.Ve +.Sp +Returns largest bond order for an \fIAtom\fR among the bonds to other atoms in a molecule. +.IP "\fBGetLargestBondOrderToHeavyAtoms\fR" 4 +.IX Item "GetLargestBondOrderToHeavyAtoms" +.Vb 1 +\& $LargestBO =$Atom\->GetLargestBondOrderToHeavyAtoms(); +.Ve +.Sp +Returns largest bond order for an \fIAtom\fR among the bonds to other heavy atoms in a molecule. +.IP "\fBGetLargestBondOrderToNonHydrogenAtoms\fR" 4 +.IX Item "GetLargestBondOrderToNonHydrogenAtoms" +.Vb 1 +\& $LargestBO =$Atom\->GetLargestBondOrderToNonHydrogenAtoms(); +.Ve +.Sp +Returns largest bond order for an \fIAtom\fR among the bonds to other non-hydrogen atoms +in a molecule. +.IP "\fBGetLargestRing\fR" 4 +.IX Item "GetLargestRing" +.Vb 1 +\& @RingAtoms = $Atom\->GetLargestRing(); +.Ve +.Sp +Returns an array of ring \fIAtom\fR objects corresponding to the largest ring containing \fIAtom\fR +in a molecule. +.IP "\fBGetLowestCommonValence\fR" 4 +.IX Item "GetLowestCommonValence" +.Vb 1 +\& $LowestCommonValence = $Atom\->GetLowestCommonValence(); +.Ve +.Sp +Returns lowest common valence of an \fIAtom\fR which corresponds to either explicity set +\&\fILowestCommonValence\fR atom property or highest common valence of the corresponding +element in the periodic table available by \fBPerodicTable\fR module. +.IP "\fBGetMassNumber\fR" 4 +.IX Item "GetMassNumber" +.Vb 1 +\& $MassNumber = $Aom\->GetMassNumber(); +.Ve +.Sp +Returns atomic weight of an \fBAtom\fR which corresponds to either explicity set \fIMassNumber\fR +atom property or mass number of the most abundant natural isotope of the corresponding element +in the periodic table available by \fBPeriodicTable\fR module. +.IP "\fBGetMissingHydrogens\fR" 4 +.IX Item "GetMissingHydrogens" +.Vb 1 +\& $NumOfMissingHydrogens = $Atom\->GetMissingHydrogens(); +.Ve +.Sp +Returns number of missing hydrogens for an \fIAtom\fR in a molecule. This value either +corresponds to explicitly set \fIImplicitHydrogens\fR atom property or calculated as the +difference between the value of potential total valence and sum of bond orders to +both hydrogen and non-hydrogen atom neighbors. +.IP "\fBGetNeighbors\fR" 4 +.IX Item "GetNeighbors" +.Vb 2 +\& $NumOfNeighbors = $Atom\->GetNeighbors(); +\& @Neighbors = $Atom\->GetNeighbors(); +.Ve +.Sp +Returns number of neighbor atoms or an array of \fIAtom\fR objects corresponding to all +atoms bonded to an \fIAtom\fR in a molecule. +.IP "\fBGetNeighborsUsingAtomSpecification\fR" 4 +.IX Item "GetNeighborsUsingAtomSpecification" +.Vb 2 +\& @AtomNeighbors = $Atom\->GetNeighborsUsingAtomSpecification($AtomSpec); +\& $NumOfNeighbors = $Atom\->GetNeighborsUsingAtomSpecification($AtomSpec); +\& +\& @AtomNeighbors = $Atom\->GetNeighborsUsingAtomSpecification($AtomSpec, +\& @ExcludeNeighbors); +.Ve +.Sp +Returns number of neighbor atoms or an array of \fIAtom\fR objects matching atom +specification corresponding to atom neighbors of an \fIAtom\fR in a molecule. Optionally, +\&\fIAtom\fR neighbors can be excluded from the neighbors list using \fIExcludeNeighbors\fR. +.Sp +Notes: +.Sp +.Vb 3 +\& o AtomSpecification correspond to any valid AtomicInvariant based atomic specifications +\& as supported by DoesAtomNeighborhoodMatch method +\& o Multiple atom specifications can be used in a string delimited by comma +.Ve +.IP "\fBGetNonHydrogenAtomNeighbors\fR" 4 +.IX Item "GetNonHydrogenAtomNeighbors" +.Vb 2 +\& $NumOfNeighbors = $Atom\->GetNonHydrogenAtomNeighbors(); +\& @Neighbors = $Atom\->GetNonHydrogenAtomNeighbors(); +.Ve +.Sp +Returns number of non-hydrogen atoms or an array of \fBAtom\fR objects corresponding to non-hydrogen +atoms bonded to an \fIAtom\fR in a molecule. +.IP "\fBGetNonHydrogenAtomNeighborsAtomInformation\fR" 4 +.IX Item "GetNonHydrogenAtomNeighborsAtomInformation" +.Vb 3 +\& ($NumOfAtomNeighbors, $AtomNeighborsRef, +\& $NumOfAtomNeighborsType, $AtomNeighborsTypeMapRef) = $Atom\-> +\& GetNonHydrogenAtomNeighborsAtomInformation(); +.Ve +.Sp +Returns atoms information for all non-hydrogen atoms attached to an \fIAtom\fR +in a molecule. +.Sp +The following values are returned: +.Sp +.Vb 6 +\& o Number of non\-hydrogen atom neighbors +\& o A reference to an array containing atom objects corresponding to +\& non\-hydrogen atom neighbors +\& o Number of different types of non\-hydrogen atom neighbors +\& o A reference to a hash containing atom symbol as key with value +\& corresponding to its count for non\-hydrogen atom neighbors +.Ve +.IP "\fBGetNonHydrogenAtomNeighborsBondInformation\fR" 4 +.IX Item "GetNonHydrogenAtomNeighborsBondInformation" +.Vb 4 +\& ($NumOfBonds, $BondTypeCountMapRef, +\& $AtomsBondTypesCountMapRef, +\& $AtomsBondTypeAtomsMap) = $Atom\-> +\& GetNonHydrogenAtomNeighborsBondInformation(); +.Ve +.Sp +Returns bonds information for all non-hydrogen atoms attached to an \fIAtom\fR +in a molecule. +.Sp +The following values are returned: +.Sp +.Vb 12 +\& o Number of bonds to non\-hydrogen atom neighbors +\& o A reference to an array containing bond objects corresponding to +\& non\-hydrogen atom neighbors +\& o A reference to a hash containing bond type as key with value +\& corresponding to its count for non\-hydrogen atom neighbors. Bond +\& types are: Single, Double or Triple +\& o A reference to a hash containing atom symbol as key pointing to bond +\& type as second key with values corresponding to count of bond types for atom +\& symbol for non\-hydrogen atom neighbors +\& o A reference to a hash containing atom symbol as key pointing to bond +\& type as second key with values corresponding to atom objects array involved +\& in corresponding bond type for atom symbol for non\-hydrogen atom neighbors +.Ve +.IP "\fBGetNonHydrogenNeighborOfHydrogenAtom\fR" 4 +.IX Item "GetNonHydrogenNeighborOfHydrogenAtom" +.Vb 1 +\& $Atom = $Atom\->GetNonHydrogenNeighborOfHydrogenAtom(); +.Ve +.Sp +Returns non-hydrogen or heavy atom neighbor of a hydrogen atom in a molecule.. +.IP "\fBGetNumOfAromaticBondsToHeavyAtoms\fR" 4 +.IX Item "GetNumOfAromaticBondsToHeavyAtoms" +.Vb 1 +\& $NumOfBonds = $Atom\->GetNumOfAromaticBondsToHeavyAtoms(); +.Ve +.Sp +Returns number of aromatic bonds from an \fIAtom\fR to other non-hydrogen or heavy atoms in +a molecule. +.IP "\fBGetNumOfAromaticBondsToNonHydrogenAtoms\fR" 4 +.IX Item "GetNumOfAromaticBondsToNonHydrogenAtoms" +.Vb 1 +\& $NumOfBonds = $Atom\->GetNumOfAromaticBondsToNonHydrogenAtoms(); +.Ve +.Sp +Returns number of aromatic bonds from an \fIAtom\fR to other non-hydrogen or heavy atoms in +a molecule. +.IP "\fBGetNumOfBonds\fR" 4 +.IX Item "GetNumOfBonds" +.Vb 1 +\& $NumOfBonds = $Atom\->GetNumOfBonds(); +.Ve +.Sp +Returns number of bonds from an \fIAtom\fR to other atoms in a molecule. +.IP "\fBGetNumOfBondsAvailableForHeavyAtoms\fR" 4 +.IX Item "GetNumOfBondsAvailableForHeavyAtoms" +.Vb 1 +\& $NumOfBonds = $Atom\->GetNumOfBondsAvailableForHeavyAtoms(); +.Ve +.Sp +Get number of bonds available to form additional bonds with heavy atoms, excluding +any implicit bonds to hydrogens set using \fIImplicitHydrogens\fR property. +.Sp +It's different from number of implicit or missing hydrogens, both of which are equivalent. +.Sp +For example, in a \s-1SMILES\s0 string, [nH] ring atom corresponds to an aromatic nitrogen. +Although the hydrogen specified for n is treated internally as implicit hydrogen and shows +up in missing hydrogen count, it's not available to participate in double bonds to additional +heavy atoms. +.IP "\fBGetNumOfBondsAvailableForNonHydrogenAtoms\fR" 4 +.IX Item "GetNumOfBondsAvailableForNonHydrogenAtoms" +.Vb 1 +\& $NumOfBonds = $Atom\->GetNumOfBondsAvailableForNonHydrogenAtoms(); +.Ve +.Sp +Get number of bonds available to form additional bonds with heavy atoms, excluding +any implicit bonds to hydrogens set using ImplicitHydrogens property. +.IP "\fBGetNumOfBondsToHeavyAtoms\fR" 4 +.IX Item "GetNumOfBondsToHeavyAtoms" +.Vb 1 +\& $NumOfBondsToHeavyAtoms = $Atom\->GetNumOfBondsToHeavyAtoms(); +.Ve +.Sp +Returns number of bonds from an \fIAtom\fR to other heavy atoms in a molecule. +.IP "\fBGetNumOfBondsToHydrogenAtoms\fR" 4 +.IX Item "GetNumOfBondsToHydrogenAtoms" +.Vb 1 +\& $NumOfBonds = $Atom\->GetNumOfBondsToHydrogenAtoms(); +.Ve +.Sp +Returns number of bonds from an \fIAtom\fR to other hydrogen atoms in a molecule. +.IP "\fBGetNumOfBondsToNonHydrogenAtoms\fR" 4 +.IX Item "GetNumOfBondsToNonHydrogenAtoms" +.Vb 1 +\& $NumOfBonds = $Atom\->GetNumOfBondsToNonHydrogenAtoms(); +.Ve +.Sp +Returns number of bonds from an \fIAtom\fR to other non-hydrogen atoms in a molecule. +.IP "\fBGetNumOfBondTypesToHeavyAtoms\fR" 4 +.IX Item "GetNumOfBondTypesToHeavyAtoms" +.Vb 3 +\& ($NumOfSingleBonds, $NumOfDoubleBonds, +\& $NumOfTripleBonds, $NumOfAromaticBonds) = $Atom\-> +\& GetNumOfBondTypesToHeavyAtoms($CountAromaticBonds); +.Ve +.Sp +Get number of single, double, triple, and aromatic bonds from an \fIAtom\fR to all other +non-hydrogen atoms in a molecule. +.Sp +Value of \fICountAtomaticBonds\fR parameter controls whether number of aromatic +bonds is returned; default is not to count aromatic bonds. During counting of +aromatic bonds, the bond marked aromatic is not included in the count +of other bond types. +.IP "\fBGetNumOfBondTypesToNonHydrogenAtoms\fR" 4 +.IX Item "GetNumOfBondTypesToNonHydrogenAtoms" +.Vb 3 +\& ($NumOfSingleBonds, $NumOfDoubleBonds, +\& $NumOfTripleBonds, $NumOfAromaticBonds) = $Atom\-> +\& GetNumOfBondTypesToNonHydrogenAtoms($CountAromaticBonds); +.Ve +.Sp +Get number of single, double, triple, and aromatic bonds from an \fIAtom\fR to all other +non-hydrogen atoms in a molecule. +.Sp +Value of \fICountAtomaticBonds\fR parameter controls whether number of aromatic +bonds is returned; default is not to count aromatic bonds. During counting of +aromatic bonds, the bond marked aromatic is not included in the count +of other bond types. +.IP "\fBGetNumOfDoubleBondsToHeavyAtoms\fR" 4 +.IX Item "GetNumOfDoubleBondsToHeavyAtoms" +.Vb 1 +\& $NumOfDoubleBonds = $Atom\->GetNumOfDoubleBondsToHeavyAtoms(); +.Ve +.Sp +Returns number of double bonds from an \fIAtom\fR to other heavy atoms or non-hydrogen +atoms in a molecule. +.IP "\fBGetNumOfDoubleBondsToNonHydrogenAtoms\fR" 4 +.IX Item "GetNumOfDoubleBondsToNonHydrogenAtoms" +.Vb 1 +\& $NumOfDoubleBonds =$Atom\->GetNumOfDoubleBondsToNonHydrogenAtoms(); +.Ve +.Sp +Returns number of double bonds from an \fIAtom\fR to other heavy atoms or non-hydrogen +atoms in a molecule. +.IP "\fBGetNumOfHeavyAtomNeighbors\fR" 4 +.IX Item "GetNumOfHeavyAtomNeighbors" +.Vb 1 +\& $NumOfNeighbors = $Atom\->GetNumOfHeavyAtomNeighbors(); +.Ve +.Sp +Returns number heavy atom neighbors for an \fIAtom\fR in a molecule. +.IP "\fBGetNumOfHydrogenAtomNeighbors\fR" 4 +.IX Item "GetNumOfHydrogenAtomNeighbors" +.Vb 1 +\& $NumOfNeighbors = $Atom\->GetNumOfHydrogenAtomNeighbors(); +.Ve +.Sp +Returns number hydrogens atom neighbors for an \fIAtom\fR in a molecule. +.IP "\fBGetNumOfMissingHydrogens\fR" 4 +.IX Item "GetNumOfMissingHydrogens" +.Vb 1 +\& $NumOfMissingHydrogens = $Atom\->GetNumOfMissingHydrogens(); +.Ve +.Sp +Returns number of implicit hydrogens for an \fIAtom\fR in a molecule. This value either +corresponds to explicitly set \fIImplicitHydrogens\fR atom property or calculated as the +difference between the value of potential total valence and sum of bond orders to +both hydrogen and non-hydrogen atom neighbors. +.IP "\fBGetNumOfExplicitHydrogens\fR" 4 +.IX Item "GetNumOfExplicitHydrogens" +.Vb 1 +\& $NumOfExplicitHydrogens = $Atom\->GetNumOfExplicitHydrogens(); +.Ve +.Sp +Returns number hydrogens atom neighbors for an \fIAtom\fR in a molecule. +.IP "\fBGetNumOfHydrogens\fR" 4 +.IX Item "GetNumOfHydrogens" +.Vb 1 +\& $NumOfHydrogens = $Atom\->GetNumOfHydrogens(); +.Ve +.Sp +Returns total number of hydrogens for an \fIAtom\fR in a molecule including both hydrogen atom +neighbors and implicit hydrogens. +.IP "\fBGetNumOfImplicitHydrogens\fR" 4 +.IX Item "GetNumOfImplicitHydrogens" +.Vb 1 +\& $NumOfImplicitHydrogens = $Atom\->GetNumOfImplicitHydrogens(); +.Ve +.Sp +Returns number of implicit hydrogens for an \fIAtom\fR in a molecule. This value either +corresponds to explicitly set \fIImplicitHydrogens\fR atom property or calculated as the +difference between the value of potential total valence and sum of bond orders to +both hydrogen and non-hydrogen atom neighbors. +.IP "\fBGetNumOfNeighbors\fR" 4 +.IX Item "GetNumOfNeighbors" +.Vb 1 +\& $NumOfNeighbors = $Atom\->GetNumOfNeighbors(); +.Ve +.Sp +Returns number atom neighbors for an \fIAtom\fR in a molecule. +.IP "\fBGetNumOfNonHydrogenAtomNeighbors\fR" 4 +.IX Item "GetNumOfNonHydrogenAtomNeighbors" +.Vb 1 +\& $NumNeighbors = $This\->GetNumOfNonHydrogenAtomNeighbors(); +.Ve +.Sp +Returns number non-hydrogens atom neighbors for an \fIAtom\fR in a molecule. +.IP "\fBGetNumOfRings\fR" 4 +.IX Item "GetNumOfRings" +.Vb 1 +\& $NumOfRings = $Atom\->GetNumOfRings(); +.Ve +.Sp +Returns number of rings containing \fIAtom\fR in a molecule. +.IP "\fBGetNumOfRingsWithEvenSize\fR" 4 +.IX Item "GetNumOfRingsWithEvenSize" +.Vb 1 +\& $NumOfRings = $Atom\->GetNumOfRingsWithEvenSize(); +.Ve +.Sp +Returns number of rings with even size containing \fIAtom\fR in a molecule. +.IP "\fBGetNumOfRingsWithOddSize\fR" 4 +.IX Item "GetNumOfRingsWithOddSize" +.Vb 1 +\& $NumOfRings = $Atom\->GetNumOfRingsWithOddSize(); +.Ve +.Sp +Returns number of rings with odd size containing \fIAtom\fR in a molecule. +.IP "\fBGetNumOfRingsWithSize\fR" 4 +.IX Item "GetNumOfRingsWithSize" +.Vb 1 +\& $NumOfRings = $Atom\->GetNumOfRingsWithSize($RingSize); +.Ve +.Sp +Returns number of rings with specific \fIRingSize\fR containing \fIAtom\fR in a molecule. +.IP "\fBGetNumOfRingsWithSizeGreaterThan\fR" 4 +.IX Item "GetNumOfRingsWithSizeGreaterThan" +.Vb 1 +\& $NumOfRings = $Atom\->GetNumOfRingsWithSizeGreaterThan($RingSize); +.Ve +.Sp +Returns number of rings with size greater than specific \fIRingSize\fR containing \fIAtom\fR +in a molecule. +.IP "\fBGetNumOfRingsWithSizeLessThan\fR" 4 +.IX Item "GetNumOfRingsWithSizeLessThan" +.Vb 1 +\& $NumOfRings = $Atom\->GetNumOfRingsWithSizeLessThan($RingSize); +.Ve +.Sp +Returns number of rings with size less than specific \fIRingSize\fR containing \fIAtom\fR in a molecule. +.IP "\fBGetNumOfSigmaAndPiBondsToHeavyAtoms\fR" 4 +.IX Item "GetNumOfSigmaAndPiBondsToHeavyAtoms" +.Vb 2 +\& ($NumOfSigmaBonds, $NumOfPiBonds) = $Atom\-> +\& GetNumOfSigmaAndPiBondsToHeavyAtoms(); +.Ve +.Sp +Get number of sigma and pi bonds from an \fIAtom\fR to all other non-hydrogen +atoms in a molecule. +.Sp +Sigma and pi bonds are counted using the following methodology: a single bond +correspond to one sigma bond; a double bond contributes one to sigma bond count +and one to pi bond count; a triple bond contributes one to sigma bond count and +two to pi bond count. +.IP "\fBGetNumOfSigmaAndPiBondsToNonHydrogenAtoms\fR" 4 +.IX Item "GetNumOfSigmaAndPiBondsToNonHydrogenAtoms" +.Vb 2 +\& ($NumOfSigmaBonds, $NumOfPiBonds) = $Atom\-> +\& GetNumOfSigmaAndPiBondsToNonHydrogenAtoms(); +.Ve +.Sp +Get number of sigma and pi bonds from an \fIAtom\fR to all other non-hydrogen +atoms in a molecule. +.Sp +Sigma and pi bonds are counted using the following methodology: a single bond +correspond to one sigma bond; a double bond contributes one to sigma bond count +and one to pi bond count; a triple bond contributes one to sigma bond count and +two to pi bond count. +.IP "\fBGetNumOfSingleBondsToNonHydrogenAtoms\fR" 4 +.IX Item "GetNumOfSingleBondsToNonHydrogenAtoms" +.Vb 1 +\& $NumOfSingleBonds =$Atom\->GetNumOfSingleBondsToNonHydrogenAtoms(); +.Ve +.Sp +Returns number of single bonds from an \fIAtom\fR to other heavy atoms or non-hydrogen +atoms in a molecule. +.IP "\fBGetNumOfSingleBondsToHeavyAtoms\fR" 4 +.IX Item "GetNumOfSingleBondsToHeavyAtoms" +.Vb 1 +\& $NumOfSingleBonds = $Atom\->GetNumOfSingleBondsToHeavyAtoms(); +.Ve +.Sp +Returns number of single bonds from an \fIAtom\fR to other heavy atoms or non-hydrogen +atoms in a molecule. +.IP "\fBGetNumOfTripleBondsToNonHydrogenAtoms\fR" 4 +.IX Item "GetNumOfTripleBondsToNonHydrogenAtoms" +.Vb 1 +\& $NumOfTripleBonds =$Atom\->GetNumOfTripleBondsToNonHydrogenAtoms(); +.Ve +.Sp +Returns number of triple bonds from an \fIAtom\fR to other heavy atoms or non-hydrogen +atoms in a molecule. +.IP "\fBGetNumOfTripleBondsToHeavyAtoms\fR" 4 +.IX Item "GetNumOfTripleBondsToHeavyAtoms" +.Vb 1 +\& $NumOfTripleBonds = $Atom\->GetNumOfTripleBondsToHeavyAtoms(); +.Ve +.Sp +Returns number of triple bonds from an \fIAtom\fR to other heavy atoms or non-hydrogen +atoms in a molecule. +.IP "\fBGetPeriodNumber\fR" 4 +.IX Item "GetPeriodNumber" +.Vb 1 +\& $PeriodNumber = $Atom\->GetPeriodNumber(); +.Ve +.Sp +Returns periodic table period number for an \fIAtom\fR in a molecule with a valid atomic number . +.IP "\fBGetRings\fR" 4 +.IX Item "GetRings" +.Vb 1 +\& @Rings = $Aotm\->GetRings(); +.Ve +.Sp +Returns an array of references to arrays containing ring atoms corressponding to all rings containing +\&\fIAtom\fR in a molecule. +.IP "\fBGetRingsWithEvenSize\fR" 4 +.IX Item "GetRingsWithEvenSize" +.Vb 1 +\& @Rings = $Aotm\->GetRingsWithEvenSize(); +.Ve +.Sp +Returns an array of references to arrays containing ring atoms corressponding to all rings with even size +containing \fIAtom\fR in a molecule. +.IP "\fBGetRingsWithOddSize\fR" 4 +.IX Item "GetRingsWithOddSize" +.Vb 1 +\& @Rings = $Aotm\->GetRingsWithOddSize(); +.Ve +.Sp +Returns an array of references to arrays containing ring atoms corressponding to all rings with odd size +containing \fIAtom\fR in a molecule. +.IP "\fBGetRingsWithSize\fR" 4 +.IX Item "GetRingsWithSize" +.Vb 1 +\& @Rings = $Aotm\->GetRingsWithSize($RingSize); +.Ve +.Sp +Returns an array of references to arrays containing ring atoms corressponding to all rings with specific +\&\fIRingSize \fRcontaining \fIAtom\fR in a molecule. +.IP "\fBGetRingsWithSizeGreaterThan\fR" 4 +.IX Item "GetRingsWithSizeGreaterThan" +.Vb 1 +\& @Rings = $Aotm\->GetRingsWithSizeGreaterThan($RingSize); +.Ve +.Sp +Returns an array of references to arrays containing ring atoms corressponding to all rings with size +greater than specific \fIRingSize \fRcontaining \fIAtom\fR in a molecule. +.IP "\fBGetRingsWithSizeLessThan\fR" 4 +.IX Item "GetRingsWithSizeLessThan" +.Vb 1 +\& @Rings = $Aotm\->GetRingsWithSizeLessThan($RingSize); +.Ve +.Sp +Returns an array of references to arrays containing ring atoms corressponding to all rings with size +less than specific \fIRingSize \fRcontaining \fIAtom\fR in a molecule. +.IP "\fBGetSizeOfLargestRing\fR" 4 +.IX Item "GetSizeOfLargestRing" +.Vb 1 +\& $Size = $Atom\->GetSizeOfLargestRing(); +.Ve +.Sp +Returns size of the largest ring containing \fIAtom\fR in a molecule. +.IP "\fBGetSizeOfSmallestRing\fR" 4 +.IX Item "GetSizeOfSmallestRing" +.Vb 1 +\& $Size = $Atom\->GetSizeOfSmallestRing(); +.Ve +.Sp +Returns size of the smallest ring containing \fIAtom\fR in a molecule. +.IP "\fBGetSmallestRing\fR" 4 +.IX Item "GetSmallestRing" +.Vb 1 +\& @RingAtoms = $Atom\->GetSmallestRing(); +.Ve +.Sp +Returns an array of ring \fIAtom\fR objects corresponding to the largest ring containing \fIAtom\fR +in a molecule. +.IP "\fBGetSpinMultiplicity\fR" 4 +.IX Item "GetSpinMultiplicity" +.Vb 1 +\& $SpinMultiplicity = $Atom\->GetSpinMultiplicity(); +.Ve +.Sp +Returns spin multiplicity of an \fIAtom\fR corresponding to one of these three +values: explicitly set \fBSpinMultiplicity\fR property value; calculated from +\&\fBFreeRadicalElectrons\fR property; value of 0. +.Sp +The \fBSpinMultiplicity\fR is calculate from \fIFreeRadicalElectrons\fR property as +follows: +.Sp +.Vb 3 +\& FreeRadicalElectrons: 1; SpinMultiplicity: 2 +\& FreeRadicalElectrons: 2; SpinMultiplicity: 1 +\& FreeRadicalElectrons: other; SpinMultiplicity: 0 +.Ve +.IP "\fBGetSumOfBondOrders\fR" 4 +.IX Item "GetSumOfBondOrders" +.Vb 1 +\& $SumBondOrders = $Atom\->GetSumOfBondOrders(); +.Ve +.Sp +Returns sum of bond orders corresponding to all atoms bonded to an \fIAtom\fR in a molecule. +.IP "\fBGetSumOfBondOrdersToHeavyAtoms\fR" 4 +.IX Item "GetSumOfBondOrdersToHeavyAtoms" +.Vb 1 +\& $SumBondOrders = $Atom\->GetSumOfBondOrdersToHeavyAtoms(); +.Ve +.Sp +Returns sum of bond orders corresponding to all heavy atoms bonded to an \fIAtom\fR in a molecule. +.IP "\fBGetSumOfBondOrdersToHydrogenAtoms\fR" 4 +.IX Item "GetSumOfBondOrdersToHydrogenAtoms" +.Vb 1 +\& $SumBondOrders = $Atom\->GetSumOfBondOrdersToHydrogenAtoms(); +.Ve +.Sp +Returns sum of bond orders corresponding to all hydrogen atoms bonded to an \fIAtom\fR in a molecule. +.IP "\fBGetSumOfBondOrdersToNonHydrogenAtoms\fR" 4 +.IX Item "GetSumOfBondOrdersToNonHydrogenAtoms" +.Vb 1 +\& $SumBondOrders = $Atom\->GetSumOfBondOrdersToNonHydrogenAtoms(); +.Ve +.Sp +Returns sum of bond orders corresponding to all non-hydrogen atoms bonded to an \fIAtom\fR +in a molecule. +.IP "\fBGetValence\fR" 4 +.IX Item "GetValence" +.Vb 1 +\& $Valence = $Atom\->GetValence(); +.Ve +.Sp +Returns valence of an \fIAtom\fR in a molecule. Valence corresponds to number of electrons used +by an atom in bonding: +.Sp +.Vb 1 +\& Valence = ValenceElectrons \- ValenceFreeElectrons = BondingElectrons +.Ve +.Sp +Single, double and triple bonds with bond orders of 1, 2, and 3 correspond to +contribution of 1, 2, and 3 bonding electrons. So: +.Sp +.Vb 1 +\& Valence = SumOfBondOrders + NumOfMissingHydrogens + FormalCharge +.Ve +.Sp +where positive and negative values of FormalCharge increase and decrease the number of bonding +electrons, respectively. +.Sp +The current release of MayaChemTools supports the following three valence models, which +are used during calculation of implicit hydrogens: MDLValenceModel, DaylightValenceModel, +InternalValenceModel or MayaChemToolsValenceModel. +.Sp +Notes: +.Sp +.Vb 10 +\& . Missing hydrogens are included in the valence. +\& . For neutral molecules, valence and sum of bond orders are equal. +\& . For molecules containing only single bonds, SumOfBondOrders and +\& NumOfBonds are equal. +\& . Free radical electrons lead to the decrease in valence. For atoms with +\& explicit assignment of SpinMultiplicity property values corresponding to +\& Singlet (two unparied electrons corresponding to one spin state), Doublet +\& (free radical; an unpaired electron corresponding to two spin states), +\& and Triplet (two unparied electrons corresponding to three spin states; +\& divalent carbon atoms (carbenes)), FreeRadicalElectrons are calculated as follows: +\& +\& SpinMultiplicity: Doublet(2); FreeRadicalElectrons: 1 (one valence +\& electron not available for bonding) +\& SpinMultiplicity: Singlet(1)/Triplet(3); FreeRadicalElectrons: 2 (two +\& valence electrons not available for bonding) +.Ve +.IP "\fBGetValenceElectrons\fR" 4 +.IX Item "GetValenceElectrons" +.Vb 1 +\& $ValenceElectrons = $Atom\->GetValenceElectrons(); +.Ve +.Sp +Returns valence electrons for an \fBAtom\fR which corresponds to either explicity set \fIValenceElectrons\fR +atom property or valence electrons for the corresponding element in the periodic table available by +\&\fBPeriodicTable\fR module. +.IP "\fBGetValenceFreeElectrons\fR" 4 +.IX Item "GetValenceFreeElectrons" +.Vb 3 +\& $ValenceFreeElectrons = $Atom\->GetValenceFreeElectrons(); +\& $ValenceFreeElectrons = $Atom\->GetValenceFreeElectrons( +\& $ExcludeFreeRadicalElectrons); +.Ve +.Sp +Returns valence frees electrons for an \fBAtom\fR in a molecule. It corresponds to: +.Sp +.Vb 3 +\& ValenceElectrons \- Valence +\& or +\& ValenceElectrons \- NumOfMissingHydrogens \- SumOfBondOrders \- FormalCharge +.Ve +.Sp +Free radical electrons are included in the valence free electrons count by default. +.Sp +Examples: +.Sp +.Vb 6 +\& NH3: ValenceFreeElectrons = 5 \- 3 = 5 \- 3 \- 0 \- 0 = 2 +\& NH2: ValenceFreeElectrons = 5 \- 3 = 5 \- 2 \- 1 \- 0 = 2 +\& NH4+; ValenceFreeElectrons = 5 \- 5 = 5 \- 4 \- 0 \- 1 = 0 +\& NH3+; ValenceFreeElectrons = 5 \- 5 = 5 \- 3 \- 1 \- 1 = 0 +\& C(=O)O\- : ValenceFreeElectrons on O\- = 6 \- 0 = 6 \- 1 \- 0 \- (\-1) = 6 +\& C(=O)O\- : ValenceFreeElectrons on =O = 6 \- 2 = 6 \- 2 \- 0 \- 0 = 4 +.Ve +.IP "\fBGetX\fR" 4 +.IX Item "GetX" +.Vb 1 +\& $X = $Atom\->GetX(); +.Ve +.Sp +Returns value of X\-coordinate for an \fIAtom\fR. +.IP "\fBGetXYZ\fR" 4 +.IX Item "GetXYZ" +.Vb 2 +\& @XYZ = $Atom\->GetXYZ(); +\& $XYZRef = $Atom\->GetXYZ(); +.Ve +.Sp +Returns an array or a reference to an array containing values for \fIAtom\fR coordinates. +.IP "\fBGetXYZVector\fR" 4 +.IX Item "GetXYZVector" +.Vb 1 +\& $XYZVector = $Atom\->GetXYZVector(); +.Ve +.Sp +Returns a \fIVector\fR object containing values for \fIAtom\fR coordinates +.IP "\fBGetY\fR" 4 +.IX Item "GetY" +.Vb 1 +\& $Y = $Atom\->GetY(); +.Ve +.Sp +Returns value of Y\-coordinate for an \fIAtom\fR. +.IP "\fBGetZ\fR" 4 +.IX Item "GetZ" +.Vb 1 +\& $Z = $Atom\->GetZ(); +.Ve +.Sp +Returns value of Z\-coordinate for an \fIAtom\fR. +.IP "\fBIsAmideCarbon\fR" 4 +.IX Item "IsAmideCarbon" +.Vb 1 +\& $Status = $Atom\->IsAmideCarbon(); +.Ve +.Sp +Returns 1 or 0 based on whether it's amide carbon \fIAtom\fR. +.Sp +An amide group is defineds as: +.Sp +.Vb 1 +\& R\-C(=O)\-N(\-R\*(Aq)\-R\*(Aq\*(Aq +.Ve +.Sp +where: +.Sp +.Vb 5 +\& o R = Hydrogen or groups of atoms attached through carbon +\& o R\*(Aq = Hydrogens or groups of atoms attached through carbon or +\& hetro atoms +\& o R\*(Aq\*(Aq = Hydrogens or groups of atoms attached through carbon or +\& hetro atoms +.Ve +.IP "\fBIsAmideNitrogen\fR" 4 +.IX Item "IsAmideNitrogen" +.Vb 1 +\& $Status = $Atom\->IsAmideNitrogen(); +.Ve +.Sp +Returns 1 or 0 based on whether it's amide nitrogen \fIAtom\fR. +.IP "\fBIsAromatic\fR" 4 +.IX Item "IsAromatic" +.Vb 1 +\& $Status = $Atom\->IsAromatic(); +.Ve +.Sp +Returns 1 or 0 based on whether it's an aromatic \fIAtom\fR. +.IP "\fBIsArsenic\fR" 4 +.IX Item "IsArsenic" +.Vb 1 +\& $Status = $Atom\->IsArsenic(); +.Ve +.Sp +Returns 1 or 0 based on whether it's an arsenic \fIAtom\fR. +.IP "\fBIsBondedToAtom\fR" 4 +.IX Item "IsBondedToAtom" +.Vb 1 +\& $Status = $Atom\->IsBondedToAtom($OtherAtom); +.Ve +.Sp +Returns 1 or 0 based on whether \fIAtom\fR is bonded to \fIOtherAtom\fR. +.IP "\fBIsBromine\fR" 4 +.IX Item "IsBromine" +.Vb 1 +\& $Status = $Atom\->IsBromine(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a bromine \fIAtom\fR. +.IP "\fBIsCarbon\fR" 4 +.IX Item "IsCarbon" +.Vb 1 +\& $Status = $Atom\->IsCarbon(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a carbon \fIAtom\fR. +.IP "\fBIsCarboxylCarbon\fR" 4 +.IX Item "IsCarboxylCarbon" +.Vb 1 +\& $Status = $Atom\->IsCarboxylCarbon(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a carboxyl carbon atom in carboxyl group: +R\-C(=O)\-OH. +.IP "\fBIsCarboxylOxygen\fR" 4 +.IX Item "IsCarboxylOxygen" +.Vb 1 +\& $Status = $Atom\->IsCarboxylOxygen(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a carboxyl oxygen atom in carboxyl group: +R\-C(=O)\-OH. +.IP "\fBIsCarboxylateCarbon\fR" 4 +.IX Item "IsCarboxylateCarbon" +.Vb 1 +\& $Status = $Atom\->IsCarboxylateCarbon(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a carboxylate carbon atom in carboxyl group: +R\-C(=O)\-O\-. +.IP "\fBIsCarboxylateOxygen\fR" 4 +.IX Item "IsCarboxylateOxygen" +.Vb 1 +\& $Status = $Atom\->IsCarboxylateOxygen(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a carboxylate oxygen atom in carboxyl group: +R\-C(=O)\-O\-. +.IP "\fBIsChlorine\fR" 4 +.IX Item "IsChlorine" +.Vb 1 +\& $Status = $Atom\->IsChlorine(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a chlorine \fIAtom\fR. +.IP "\fBIsFluorine\fR" 4 +.IX Item "IsFluorine" +.Vb 1 +\& $Status = $Atom\->IsFluorine(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a fluorine \fIAtom\fR. +.IP "\fBIsFunctionalClassType\fR" 4 +.IX Item "IsFunctionalClassType" +.Vb 1 +\& $Status =$Atom\->IsFunctionalClassType($Type); +.Ve +.Sp +Returns 1 or 0 based on whether it's a specified functional class \fIType\fR. +.Sp +The current release of MayaChemTools supports following abbreviations and descriptive +names for \fIFunctionalClassType\fR: +.Sp +.Vb 9 +\& HBD: HydrogenBondDonor +\& HBA: HydrogenBondAcceptor +\& PI : PositivelyIonizable +\& NI : NegativelyIonizable +\& Ar : Aromatic +\& Hal : Halogen +\& H : Hydrophobic +\& RA : RingAtom +\& CA : ChainAtom +.Ve +.Sp +The following definitions are used to determine functional class types: [ Ref 60\-61, Ref 65\-66 ]: +.Sp +.Vb 4 +\& HydrogenBondDonor: NH, NH2, OH +\& HydrogenBondAcceptor: N[!H], O +\& PositivelyIonizable: +, NH2 +\& NegativelyIonizable: \-, C(=O)OH, S(=O)OH, P(=O)OH +.Ve +.IP "\fBIsGuadiniumCarbon\fR" 4 +.IX Item "IsGuadiniumCarbon" +.Vb 1 +\& $Status = $Atom\->IsGuadiniumCarbon(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a guadinium carbon in guadinium group by +checking its neighbors for a nitrogen in guadinium group. +.IP "\fBIsGuadiniumNitrogen\fR" 4 +.IX Item "IsGuadiniumNitrogen" +.Vb 1 +\& $Status = $Atom\->IsGuadiniumNitrogen(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a guadinium nitrogen in guadinium group. +.Sp +A guadinium group is defined as: +.Sp +.Vb 1 +\& R2N\-C(=NR)\-(NR2) or R2N\-C(=NR2+)\-(NR2) +.Ve +.Sp +where: +.Sp +.Vb 3 +\& o R = Hydrogens or group of atoms attached through carbon +\& o Only one of the three nitrogens has a double bond to carbon +\& and has optional formal charge allowing it to be neutral or charged state +.Ve +.IP "\fBIsHBondAcceptor\fR" 4 +.IX Item "IsHBondAcceptor" +.Vb 2 +\& $Status =$Atom\->IsHBondAcceptor(); +\& $Status =$Atom\->IsHBondAcceptor($HydrogenBondsType); +.Ve +.Sp +Returns 1 or 0 based on whether it's a hydrogen bond acceptor \fIAtom\fR. +.IP "\fBIsHBondDonor\fR" 4 +.IX Item "IsHBondDonor" +.Vb 2 +\& $Status =$Atom\->IsHBondDonor(); +\& $Status =$Atom\->IsHBondDonor($HydrogenBondsType); +.Ve +.Sp +Returns 1 or 0 based on whether it's a hydrogen bond donor \fIAtom\fR. +.IP "\fBIsHydrogenBondAcceptor\fR" 4 +.IX Item "IsHydrogenBondAcceptor" +.Vb 2 +\& $Status =$Atom\->IsHydrogenBondAcceptor(); +\& $Status =$Atom\->IsHydrogenBondAcceptor($HydrogenBondsType); +.Ve +.Sp +Returns 1 or 0 based on whether it's a hydrogen bond acceptor \fIAtom\fR. +.IP "\fBIsHydrogenBondDonor\fR" 4 +.IX Item "IsHydrogenBondDonor" +.Vb 2 +\& $Status =$Atom\->IsHydrogenBondDonor(); +\& $Status =$Atom\->IsHydrogenBondDonor($HydrogenBondsType); +.Ve +.Sp +Returns 1 or 0 based on whether it's a hydrogen bond donor \fIAtom\fR. +.Sp +The current release of MayaChemTools supports identification of two types of hydrogen bond +donor and acceptor atoms with these names: +.Sp +.Vb 2 +\& HBondsType1 or HydrogenBondsType1 +\& HBondsType2 or HydrogenBondsType2 +.Ve +.Sp +The names of these hydrogen bond types are rather arbitrary. However, their definitions have +specific meaning and are as follows: +.Sp +.Vb 1 +\& HydrogenBondsType1 [ Ref 60\-61, Ref 65\-66 ]: +\& +\& Donor: NH, NH2, OH \- Any N and O with available H +\& Acceptor: N[!H], O \- Any N without available H and any O +\& +\& HydrogenBondsType2 [ Ref 91 ]: +\& +\& Donor: NH, NH2, OH \- N and O with available H +\& Acceptor: N, O \- And N and O +.Ve +.Sp +By default, \fIHydrogenBondsType1\fR is used to calculate number hydrogen bond donor +and acceptor atoms. \fIHydrogenBondsType2\fR corresponds to \fBRuleOf5\fR definition +of hydrogen bond donors and acceptors. +.IP "\fBIsHalogen\fR" 4 +.IX Item "IsHalogen" +.Vb 1 +\& $Status =$Atom\->IsHalogen(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a halogen \fIAtom\fR. +.IP "\fBIsHeteroAtom\fR" 4 +.IX Item "IsHeteroAtom" +.Vb 1 +\& $Status = $Atom\->IsHeteroAtom(); +.Ve +.Sp +Returns 0 or 1 based on whether it's a hetro \fIAtom\fR. Following atoms are considered hetro atoms: +\&\fBN, O, F, P, S, Cl, Br, I\fR. +.IP "\fBIsHydrogen\fR" 4 +.IX Item "IsHydrogen" +.Vb 1 +\& $Status = $Atom\->IsHydrogen(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a hydrogen \fIAtom\fR. +.IP "\fBIsHydrophobic\fR" 4 +.IX Item "IsHydrophobic" +.Vb 1 +\& $Status =$Atom\->IsHydrophobic(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a hydrophobic \fIAtom\fR. +.IP "\fBIsInRing\fR" 4 +.IX Item "IsInRing" +.Vb 1 +\& $Status = $Atom\->IsInRing(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIAtom\fR is present in a ring. +.IP "\fBIsInRingOfSize\fR" 4 +.IX Item "IsInRingOfSize" +.Vb 1 +\& $Status = $Atom\->IsInRingOfSize($Size); +.Ve +.Sp +Returns 1 or 0 based on whether \fIAtom\fR is present in a ring of specific \fISize\fR. +.IP "\fBIsIodine\fR" 4 +.IX Item "IsIodine" +.Vb 1 +\& $Status = $Atom\->IsIodine(); +.Ve +.Sp +Returns 1 or 0 based on whether it's an iodine \fIAtom\fR. +.IP "\fBIsIsotope\fR" 4 +.IX Item "IsIsotope" +.Vb 1 +\& $Status =$Atom\->IsIsotope(); +.Ve +.Sp +Returns 1 or 0 based on whether it's an isotope \fIAtom\fR. +.IP "\fBIsLipophilic\fR" 4 +.IX Item "IsLipophilic" +.Vb 1 +\& $Status =$Atom\->IsLipophilic(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a lipophilic \fIAtom\fR. +.IP "\fBIsMetallic\fR" 4 +.IX Item "IsMetallic" +.Vb 1 +\& $Status = $Atom\->IsMetallic(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a metallic \fIAtom\fR. +.IP "\fBIsNegativelyIonizable\fR" 4 +.IX Item "IsNegativelyIonizable" +.Vb 1 +\& $Status =$Atom\->IsNegativelyIonizable(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a negatively ionizable atom \fIAtom\fR. +.IP "\fBIsNitrogen\fR" 4 +.IX Item "IsNitrogen" +.Vb 1 +\& $Status = $Atom\->IsNitrogen(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a nitrogen \fIAtom\fR. +.IP "\fBIsNonCarbonOrHydrogen\fR" 4 +.IX Item "IsNonCarbonOrHydrogen" +.Vb 1 +\& $Status =$Atom\->IsNonCarbonOrHydrogen(); +.Ve +.Sp +Returns 1 or 0 based on whether it's not a carbon or hydrogen \fIAtom\fR. +.IP "\fBIsNotInRing\fR" 4 +.IX Item "IsNotInRing" +.Vb 1 +\& $Status = $Atom\->IsNotInRing(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIAtom\fR is not present in a ring. +.IP "\fBIsOnlyInOneRing\fR" 4 +.IX Item "IsOnlyInOneRing" +.Vb 1 +\& $Status = $Atom\->IsOnlyInOneRing(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIAtom\fR is only present in one ring. +.IP "\fBIsOxygen\fR" 4 +.IX Item "IsOxygen" +.Vb 1 +\& $Status = $Atom\->IsOxygen(); +.Ve +.Sp +Returns 0 or 1 based on whether it's an oxygen \fIAtom\fR. +.IP "\fBIsPhosphorus\fR" 4 +.IX Item "IsPhosphorus" +.Vb 1 +\& $Status = $Atom\->IsPhosphorus(); +.Ve +.Sp +Returns 0 or 1 based on whether it's a phosphorus \fIAtom\fR. +.IP "\fBIsPhosphateOxygen\fR" 4 +.IX Item "IsPhosphateOxygen" +.Vb 1 +\& $Status = $Atom\->IsPhosphateOxygen(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a phosphate oxygen in phosphate group. +.Sp +A phosphate group is defined as: +.Sp +.Vb 1 +\& AO\-(O=)P(\-OA)\-OA +.Ve +.Sp +Where: +.Sp +.Vb 1 +\& A \- Any group of atoms including hydrogens +.Ve +.IP "\fBIsPhosphatePhosphorus\fR" 4 +.IX Item "IsPhosphatePhosphorus" +.Vb 1 +\& $Status = $Atom\->IsPhosphatePhosphorus(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a phosphate phosphorus in phosphate group. +.IP "\fBIsPolarAtom\fR" 4 +.IX Item "IsPolarAtom" +.Vb 1 +\& $Status = $Atom\->IsPolarAtom(); +.Ve +.Sp +Returns 0 or 1 based on whether it's a polar \fIAtom\fR. Following atoms are considered polar atoms: +\&\fBN, O, P, S\fR. +.IP "\fBIsPolarHydrogen\fR" 4 +.IX Item "IsPolarHydrogen" +.Vb 1 +\& $Status = $Atom\->IsPolarHydrogen(); +.Ve +.Sp +Returns 0 or 1 based on whether it's a hydrogen \fIAtom\fR bonded to a polar atom. +.IP "\fBIsPositivelyIonizable\fR" 4 +.IX Item "IsPositivelyIonizable" +.Vb 1 +\& $Status =$Atom\->IsPositivelyIonizable(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a positively ionizable \fIAtom\fR. +.IP "\fBIsSaturated\fR" 4 +.IX Item "IsSaturated" +.Vb 1 +\& $Status = $Atom\->IsSaturated(); +.Ve +.Sp +Returns 1 or 0 based on whether it's a saturated \fIAtom\fR. An atom attached +to other atoms with only single bonds is considered a saturated atom. +.IP "\fBIsSelenium\fR" 4 +.IX Item "IsSelenium" +.Vb 1 +\& $Status = $Atom\->IsSelenium(); +.Ve +.Sp +Returns 0 or 1 based on whether it's a selenium \fIAtom\fR. +.IP "\fBIsStereoCenter\fR" 4 +.IX Item "IsStereoCenter" +.Vb 1 +\& $Status = $Atom\->IsStereoCenter(); +.Ve +.Sp +Returns 0 or 1 based on whether it's marked as a stero center \fIAtom\fR by explicit setting +of \fIStereoCenter\fR atom propert to value of \fI1\fR. +.IP "\fBIsSilicon\fR" 4 +.IX Item "IsSilicon" +.Vb 1 +\& $Status = $Atom\->IsSilicon(); +.Ve +.Sp +Returns 0 or 1 based on whether it's a silicon \fIAtom\fR. +.IP "\fBIsSulfur\fR" 4 +.IX Item "IsSulfur" +.Vb 1 +\& $Status = $Atom\->IsSulfur(); +.Ve +.Sp +Returns 0 or 1 based on whether it's a sulfur \fIAtom\fR. +.IP "\fBIsSulphur\fR" 4 +.IX Item "IsSulphur" +.Vb 1 +\& $Status = $Atom\->IsSulphur(); +.Ve +.Sp +Returns 0 or 1 based on whether it's a sulfur \fIAtom\fR. +.IP "\fBIsTellurium\fR" 4 +.IX Item "IsTellurium" +.Vb 1 +\& $Status = $Atom\->IsTellurium(); +.Ve +.Sp +Returns 0 or 1 based on whether it's a tellurium \fIAtom\fR. +.IP "\fBIsTerminal\fR" 4 +.IX Item "IsTerminal" +.Vb 1 +\& $Status = $Atom\->IsTerminal(); +.Ve +.Sp +Returns 0 or 1 based on whether it's a terminal \fIAtom\fR attached to no +more than one non-hydrogen atom. +.IP "\fBIsUnsaturated\fR" 4 +.IX Item "IsUnsaturated" +.Vb 1 +\& $Status = $Atom\->IsUnsaturated(); +.Ve +.Sp +Returns 1 or 0 based on whether it's as unsaturated \fIAtom\fR. An atom attached +to other atoms with at least one non-single bond is considered an unsaturated atom. +.IP "\fBIsTopologicalPharmacophoreType\fR" 4 +.IX Item "IsTopologicalPharmacophoreType" +.Vb 1 +\& $Status =$Atom\->IsTopologicalPharmacophoreType(); +.Ve +.Sp +Returns 1 or 0 based on whether it's any of the supportyed topological pharmacophore +\&\fIAtom\fR type. See \fIIsFunctionalClassType\fR for a list of supported types. +.IP "\fBSetAtomSymbol\fR" 4 +.IX Item "SetAtomSymbol" +.Vb 1 +\& $Atom\->SetAtomSymbol($AtomicSymbol); +.Ve +.Sp +Sets atom symbol for \fIAtom\fR and returns \fIAtom\fR object. The appropriate atomic number is also +set automatically. +.IP "\fBSetAtomicNumber\fR" 4 +.IX Item "SetAtomicNumber" +.Vb 1 +\& $Atom\->SetAtomicNumber($AtomicNumber); +.Ve +.Sp +Sets atomic number for \fIAtom\fR and returns \fIAtom\fR object. The appropriate atom symbol is also +set automatically. +.IP "\fBSetMassNumber\fR" 4 +.IX Item "SetMassNumber" +.Vb 1 +\& $Atom\->SetMassNumber($MassNumber); +.Ve +.Sp +Sets mass number for \fIAtom\fR and returns \fIAtom\fR object. +.IP "\fBSetStereoCenter\fR" 4 +.IX Item "SetStereoCenter" +.Vb 1 +\& $Atom\->SetStereoCenter($StereoCenter); +.Ve +.Sp +Sets stereo center for \fIAtom\fR and returns \fIAtom\fR object. +.IP "\fBSetStereochemistry\fR" 4 +.IX Item "SetStereochemistry" +.Vb 1 +\& $Atom\->SetStereochemistry($Stereochemistry); +.Ve +.Sp +Sets stereo chemistry for \fIAtom\fR and returns \fIAtom\fR object. +.IP "\fBSetX\fR" 4 +.IX Item "SetX" +.Vb 1 +\& $Atom\->SetX($Value); +.Ve +.Sp +Sets X\-coordinate value for \fIAtom\fR and returns \fIAtom\fR object. +.IP "\fBSetXYZ\fR" 4 +.IX Item "SetXYZ" +.Vb 3 +\& $Atom\->SetXYZ(@XYZValues); +\& $Atom\->SetXYZ($XYZValuesRef); +\& $Atom\->SetXYZ($XYZVector); +.Ve +.Sp +Sets \fIAtom\fR coordinates using an array, reference to an array or a \fIVector\fR object and +returns \fIAtom\fR object. +.IP "\fBSetY\fR" 4 +.IX Item "SetY" +.Vb 1 +\& $Atom\->SetY($Value); +.Ve +.Sp +Sets Y\-coordinate value for \fIAtom\fR and returns \fIAtom\fR object. +.IP "\fBSetZ\fR" 4 +.IX Item "SetZ" +.Vb 1 +\& $Atom\->SetZ($Value); +.Ve +.Sp +Sets Z\-coordinate value for \fIAtom\fR and returns \fIAtom\fR object. +.IP "\fBStringifyAtom\fR" 4 +.IX Item "StringifyAtom" +.Vb 1 +\& $AtomString = $Atom\->StringifyAtom(); +.Ve +.Sp +Returns a string containing information about \fIAtom\fR object. +.SH "AUTHOR" +.IX Header "AUTHOR" +Manish Sud <msud@san.rr.com> +.SH "SEE ALSO" +.IX Header "SEE ALSO" +Bond.pm, Molecule.pm, MoleculeFileIO.pm +.SH "COPYRIGHT" +.IX Header "COPYRIGHT" +Copyright (C) 2015 Manish Sud. All rights reserved. +.PP +This file is part of MayaChemTools. +.PP +MayaChemTools is free software; you can redistribute it and/or modify it under +the terms of the \s-1GNU\s0 Lesser General Public License as published by the Free +Software Foundation; either version 3 of the License, or (at your option) +any later version.