Mercurial > repos > deepakjadmin > mayatool3_test2
diff docs/modules/txt/Atom.txt @ 0:4816e4a8ae95 draft default tip
Uploaded
author | deepakjadmin |
---|---|
date | Wed, 20 Jan 2016 09:23:18 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/modules/txt/Atom.txt Wed Jan 20 09:23:18 2016 -0500 @@ -0,0 +1,1523 @@ +NAME + Atom + +SYNOPSIS + use Atom; + +DESCRIPTION + Atom class provides the following methods: + + 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 + + Atom class is derived from ObjectProperty base class which provides + methods not explicitly defined in Atom or ObjectProperty class using + Perl's AUTOLOAD functionality. These methods are generated on-the-fly + for a specified object property: + + Set<PropertyName>(<PropertyValue>); + $PropertyValue = Get<PropertyName>(); + Delete<PropertyName>(); + + METHODS + new + $NewAtom = new Atom([%PropertyNameAndValues]); + + Using specified *Atom* property names and values hash, new method + creates a new object and returns a reference to newly created Atom + object. By default, following properties are initialized: + + ID = SequentialObjectID + Name = "Atom <SequentialObjectID>" + AtomSymbol = "" + AtomicNumber = 0 + XYZ = ZeroVector + + Except for *ID* property, all other default properties and other + additional properties can be set during invocation of this method. + + Examples: + + $Atom = new Atom(); + $CarbonAtom = new Atom('AtomSymbol' => 'C', 'XYZ' => (0.0, 1.0, + 0.0)); + $OxygenAtom = new Atom('AtomName' => 'Oxygen', AtomSymbol' => 'O', + 'XYZ' => (1.0, 1.0, 1.0)); + + AddHydrogens + $NumOfHydrogensAdded = $Atom->AddHydrogens(); + + Adds hydrogens to an Atom present in a Molecule object and returns + the number of added hydrogens. The current release of MayaChemTools + doesn't assign hydrogen positions. + + Copy + $AtomCopy = $Atom->Copy(); + + Copy *Atom* and its associated data using Storable::dclone and + return a new Atom object. + + DeleteAtom + $Atom->DeleteAtom(); + + Delete *Atom* from a molecule. + + DoesAtomNeighborhoodMatch + $Status = $Atom->DoesAtomNeighborhoodMatch($CentralAtomSpec); + $Status = $Atom->DoesAtomNeighborhoodMatch($CentralAtomSpec, + $NbrAtomSpecsRef); + $Status = $Atom->DoesAtomNeighborhoodMatch($CentralAtomSpec, + $NbrAtomSpecsRef, $AllowedNbrBondSpecsRef); + $Status = $Atom->DoesAtomNeighborhoodMatch($CentralAtomSpec, + $NbrAtomSpecsRef, $NbrBondSpecsRef, + $AllowedNbrOfNbrAtomSpecsRef); + + 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. + + Let: + + 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) + + Then, atom specification corresponds to: + + 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> + + Except for AS 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. + + For *FC* value matching, the following value operators are also + supported: + + o +* : Any positive value + o -* : Any negative value + o > ValidNumber or >= ValidNumber + o < ValidNumber or <= ValidNumber + + A comma delimited atom specification string is used to match any one + of the specified atom specification. + + Notes: + + o During atom specification match to an atom, the first atomic invariant is always assumed to + atom symbol. + + Examples: + + o ('N', 'N', 'N') + o ('N.FC0', 'N.FC0', 'N,N.FC+1.H1') + o ('N.H2', 'N.H2', 'N.H1') + o ('C,N', '!N', '!H') + o ('C,N', 'N.Ar', 'N.R5') + + Let: + + -|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 + + Then, bond specification corresponds to: + + -.: + =.@ + Double.Aromatic + + 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. + + A comma delimited bond specification string is used to match any one + of the specified atom specification. + + Notes: + + 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. + + Examples: + + Aromatic carbon in a 5 membered ring: + $Atom->DoesAtomNeighborhoodMatch('C.Ar.RA5'); + + AcetylenicCarbon: $Atom->DoesAtomNeighborhoodMatch('C.T2.TB1'); or + $Atom->DoesAtomNeighborhoodMatch('C.T2.TB1', + ['*', '*'], ['#', '-']); + + GuadiniumCarbon: $Atom->DoesAtomNeighborhoodMatch('C.X3.BO4', + ['N.FC0', 'N.FC0', 'N.FC0,N.FC+1'], + ['-', '-', '='], + ['C,H', 'C,H', 'C,H']); + + AmideCarbon: $Atom->DoesAtomNeighborhoodMatch('C.X3.BO4,C.X2.BO3', + ['C,H', 'O', 'N'], + ['-', '=', '-'], + ['C,H', 'C', 'C,H,N,O,S,P,F,Cl,Br,I']); + + CarboxylCarbon: $Atom->DoesAtomNeighborhoodMatch('C.X3.BO4,C.X2.BO3', + ['C,H', 'O', 'O.X1.FC0'], + ['-', '=', '-'], + ['C,H', 'C', 'C']); + + CarboxylateCarbon: $Atom->DoesAtomNeighborhoodMatch('C.X3.BO4,C.X2.BO3', + ['C,H', 'O', 'O.X1.FC-1'], + ['-', '=', '-'], + ['C,H', 'C', 'C']); + + DeleteHydrogens + $NumOfHydrogensDeleted = $Atom->AddHydrogens(); + + Delete hydrogens from an Atom present in a Molecule object and + returns the number of deleted hydrogens. + + GetAtomicInvariantValue + $Value = $Atom->GetAtomicInvariantValue($AtomicInvariant); + + Returns atomic invariant value for a specified *AtomicInvariant*. + The current release of MayaChemTools supports following + abbreviations and descriptive names for *AtomicInvarints*: + + 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 + + GetAtomicWeight + $Value = $Aom->GetAtomicWeight(); + + Returns atomic weight of an Atom which corresponds to either + explicity set *AtomicWeight* atom property or atomic weight of the + corresponding element in the periodic table available by + PeriodicTable module. + + GetBondToAtom + $Bond = $Atom->GetBondToAtom($OtherAtom); + + Returns a Bond object corresponding to bond between *Atom* and + *OtherAtom* in a molecule. + + GetBonds + @Bonds = $Aoto->GetBonds(); + + Returns an array of Bond objects corresponding to all bonds from + *Atom* to other bonded atoms in a molecule. + + GetBondsToHeavyAtoms + @Bonds = $Atom->GetBondsToHeavyAtoms(); + + Returns an array of Bond objects corresponding to bonds from *Atom* + to other bonded non-hydrogen atoms in a molecule. + + GetBondsToHydrogenAtoms + @Bonds = $Atom->GetBondsToHydrogenAtoms(); + + Returns an array of Bond objects corresponding to bonds from *Atom* + to any other hydrogen atom in a molecule. + + GetBondsToNonHydrogenAtoms + @Bonds = $Atom->GetBondsToNonHydrogenAtoms(); + + Returns an array of Bond objects corresponding to bonds from *Atom* + to other bonded non-hydrogen atoms in a molecule. + + GetExactMass + $ExactMass = $Atom->GetExactMass(); + + Returns exact mass of an *Atom* which correspond to one of these + three values: explicity set *ExactMass* property; mass of natural + isotope for an explicty set value of *MassNumber*; most abundant + natural isotope mass for *Atom* with valid atomic number value + available by PerodicTable module. + + GetExplicitHydrogens + $NumOfExplicitHydrogens = $Atom->GetExplicitHydrogens(); + + Returns number of hydrogens explicity bonded to an *Atom* in a + molecule. + + GetFormalCharge + $FormalCharge = $Atom->GetFormalCharge(); + + Returns formal charge of an *Atom* in a molecule. + + GetFreeRadicalElectrons + $FreeRadicalElectrons = $Atom->GetFreeRadicalElectrons(); + + Returns number of free radical electrons corresponding to to one of + these three values: *FreeRadicalElectrons* property; + *SpinMultiplicity* property; value of 0. + + For atoms with explicit assignment of *SpinMultiplicity* atom + property values, + + 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) + + FreeRadicalElectrons are calculated as follows: + + 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) + + GetGroupNumber + $GroupNumber = $Atom->GetGroupNumber(); + + Returns group number of an *Atom* in a molecule with a valid atomic + number. + + GetHeavyAtomNeighbors + $NumOfHeavyAtoms = $Atom->GetHeavyAtomNeighbors(); + @HeavyAtoms = $Atom->GetHeavyAtomNeighbors(); + + Return number of heavy atoms or an array of Atom objects + corresponding to heavy atoms bonded to an *Atom* in a molecule. + + GetHeavyAtomNeighborsAtomInformation + ($NumOfAtomNeighbors, $AtomNeighborsRef, + $NumOfAtomNeighborsType, $AtomNeighborsTypeMapRef) = $Atom-> + GetHeavyAtomNeighborsAtomInformation(); + + Returns atoms information for all non-hydrogen atoms attached to an + *Atom* in a molecule. + + The following values are returned: + + 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 + + GetHeavyAtomNeighborsBondformation + ($NumOfBonds, $BondTypeCountMapRef, + $AtomsBondTypesCountMapRef, + $AtomsBondTypeAtomsMap) = $Atom-> + GetHeavyAtomNeighborsBondformation(); + + Returns bonds information for all non-hydrogen atoms attached to an + *Atom* in a molecule. + + The following values are returned: + + 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 + + GetHighestCommonValence + $HighestCommonValence = $Atom->GetHighestCommonValence(); + + Returns highest common valence of an *Atom* which corresponds to + either explicity set *HighestCommonValence* atom property or highest + common valence of the corresponding element in the periodic table + available by PerodicTable module. + + GetHydrogens + $NumOfHydrogens = $Atom->GetHydrogens(); + + Returns total number of hydrogens for an *Atom* in a molecule + including both hydrogen atom neighbors and implicit hydrogens. + + GetHydrogenAtomNeighbors + $NumOfHydrogenAtomNeighbors = $Atom->GetHydrogenAtomNeighbors(); + @HydrogenAtomNeighbors = $Atom->GetHydrogenAtomNeighbors(); + + Return number of hydrogen atoms or an array of *Atom* objects + corresponding to hydrogen atoms bonded to an *Atom* in a molecule. + + GetImplicitHydrogens + $NumOfImplicitHydrogens = $Atom->GetImplicitHydrogens(); + + Returns number of implicit hydrogens for an *Atom* in a molecule. + This value either corresponds to explicitly set *ImplicitHydrogens* + 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. + + GetPotentialTotalCommonValence + $PotentialTotalValence = $Atom->GetPotentialTotalCommonValence(); + + Returns potential total common valence of an *Atom* in a molecule + corresponding to a specific valence model set for the molecule using + its SetValenceModel method or default internal valence model. It is + used during the calculation of missing or implicit hydrogens. + + The current release of MayaChemTools supports three valence models: + *MDLValenceModel, DaylightValenceModel, InternalValenceModel or + MayaChemToolsValenceModel*. + + For *MDLValenceModel* and *DaylightValenceModel*, the following data + files, distributed with the package, are used to calculate potential + total valence: + + lib/data/MDLValenceModelData.csv + lib/data/DaylightValenceModelData.csv + + The calculation of potential total common valence for these two + models is performed as follows: Calculate current effective total + valence of the *Atom* by adding up the bond order of its neighbors + and number of free radical electrons; Find available common valence + for the *Atom*, corresponding to any specified formal charge, higher + than the effective total valence, and return it as + *PotentialTotalValence*. + + The calculation of potential total common valence For + *InternalValenceModel* or *MayaChenToolsValenceModel* doesn't uses + PeriodicTable module to retrieve values for common valence, which in + turn reads in PeriodicTableElements.csv file distributed with the + package. + + For elements with one one common valence, potential total common + valence corresponds to: + + CommonValence + FormalCharge - FreeRadicalElectrons + + 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. + + 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. + + The sign of formal charge is adjusted as follows. + + Group numbers > 14 - Group numbers 15 (N), 16 (O), 17 (F), 18 (He): + + Formal charge sign is not adjusted. Positive and negative values + result in the increase and decrease of valence. + + Group 14 containing C, Si, Ge, Sn, Pb...: + + Formal charge sign is reversed for positive values. Both positive + and negative values result in the decrease of valence. + + Group 13 containing B, Al, Ga, In, Tl...: + + Formal charge sign is always reversed. Positive and negative values + result in the decrease and increase of valence. + + Groups 1 (H) through 12 (Zn)...: + + Formal charge sign is reversed for positive values. Both positive + and negative values result in the decrease of valence. + + Lanthanides and actinides: + + Formal charge sign is reversed for positive values. Both positive + and negative values result in the decrease of valence. + + GetLargestBondOrder + $LargestBO =$Atom->GetLargestBondOrder(); + + Returns largest bond order for an *Atom* among the bonds to other + atoms in a molecule. + + GetLargestBondOrderToHeavyAtoms + $LargestBO =$Atom->GetLargestBondOrderToHeavyAtoms(); + + Returns largest bond order for an *Atom* among the bonds to other + heavy atoms in a molecule. + + GetLargestBondOrderToNonHydrogenAtoms + $LargestBO =$Atom->GetLargestBondOrderToNonHydrogenAtoms(); + + Returns largest bond order for an *Atom* among the bonds to other + non-hydrogen atoms in a molecule. + + GetLargestRing + @RingAtoms = $Atom->GetLargestRing(); + + Returns an array of ring *Atom* objects corresponding to the largest + ring containing *Atom* in a molecule. + + GetLowestCommonValence + $LowestCommonValence = $Atom->GetLowestCommonValence(); + + Returns lowest common valence of an *Atom* which corresponds to + either explicity set *LowestCommonValence* atom property or highest + common valence of the corresponding element in the periodic table + available by PerodicTable module. + + GetMassNumber + $MassNumber = $Aom->GetMassNumber(); + + Returns atomic weight of an Atom which corresponds to either + explicity set *MassNumber* atom property or mass number of the most + abundant natural isotope of the corresponding element in the + periodic table available by PeriodicTable module. + + GetMissingHydrogens + $NumOfMissingHydrogens = $Atom->GetMissingHydrogens(); + + Returns number of missing hydrogens for an *Atom* in a molecule. + This value either corresponds to explicitly set *ImplicitHydrogens* + 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. + + GetNeighbors + $NumOfNeighbors = $Atom->GetNeighbors(); + @Neighbors = $Atom->GetNeighbors(); + + Returns number of neighbor atoms or an array of *Atom* objects + corresponding to all atoms bonded to an *Atom* in a molecule. + + GetNeighborsUsingAtomSpecification + @AtomNeighbors = $Atom->GetNeighborsUsingAtomSpecification($AtomSpec); + $NumOfNeighbors = $Atom->GetNeighborsUsingAtomSpecification($AtomSpec); + + @AtomNeighbors = $Atom->GetNeighborsUsingAtomSpecification($AtomSpec, + @ExcludeNeighbors); + + Returns number of neighbor atoms or an array of *Atom* objects + matching atom specification corresponding to atom neighbors of an + *Atom* in a molecule. Optionally, *Atom* neighbors can be excluded + from the neighbors list using *ExcludeNeighbors*. + + Notes: + + 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 + + GetNonHydrogenAtomNeighbors + $NumOfNeighbors = $Atom->GetNonHydrogenAtomNeighbors(); + @Neighbors = $Atom->GetNonHydrogenAtomNeighbors(); + + Returns number of non-hydrogen atoms or an array of Atom objects + corresponding to non-hydrogen atoms bonded to an *Atom* in a + molecule. + + GetNonHydrogenAtomNeighborsAtomInformation + ($NumOfAtomNeighbors, $AtomNeighborsRef, + $NumOfAtomNeighborsType, $AtomNeighborsTypeMapRef) = $Atom-> + GetNonHydrogenAtomNeighborsAtomInformation(); + + Returns atoms information for all non-hydrogen atoms attached to an + *Atom* in a molecule. + + The following values are returned: + + 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 + + GetNonHydrogenAtomNeighborsBondInformation + ($NumOfBonds, $BondTypeCountMapRef, + $AtomsBondTypesCountMapRef, + $AtomsBondTypeAtomsMap) = $Atom-> + GetNonHydrogenAtomNeighborsBondInformation(); + + Returns bonds information for all non-hydrogen atoms attached to an + *Atom* in a molecule. + + The following values are returned: + + 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 + + GetNonHydrogenNeighborOfHydrogenAtom + $Atom = $Atom->GetNonHydrogenNeighborOfHydrogenAtom(); + + Returns non-hydrogen or heavy atom neighbor of a hydrogen atom in a + molecule.. + + GetNumOfAromaticBondsToHeavyAtoms + $NumOfBonds = $Atom->GetNumOfAromaticBondsToHeavyAtoms(); + + Returns number of aromatic bonds from an *Atom* to other + non-hydrogen or heavy atoms in a molecule. + + GetNumOfAromaticBondsToNonHydrogenAtoms + $NumOfBonds = $Atom->GetNumOfAromaticBondsToNonHydrogenAtoms(); + + Returns number of aromatic bonds from an *Atom* to other + non-hydrogen or heavy atoms in a molecule. + + GetNumOfBonds + $NumOfBonds = $Atom->GetNumOfBonds(); + + Returns number of bonds from an *Atom* to other atoms in a molecule. + + GetNumOfBondsAvailableForHeavyAtoms + $NumOfBonds = $Atom->GetNumOfBondsAvailableForHeavyAtoms(); + + Get number of bonds available to form additional bonds with heavy + atoms, excluding any implicit bonds to hydrogens set using + *ImplicitHydrogens* property. + + It's different from number of implicit or missing hydrogens, both of + which are equivalent. + + For example, in a SMILES 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. + + GetNumOfBondsAvailableForNonHydrogenAtoms + $NumOfBonds = $Atom->GetNumOfBondsAvailableForNonHydrogenAtoms(); + + Get number of bonds available to form additional bonds with heavy + atoms, excluding any implicit bonds to hydrogens set using + ImplicitHydrogens property. + + GetNumOfBondsToHeavyAtoms + $NumOfBondsToHeavyAtoms = $Atom->GetNumOfBondsToHeavyAtoms(); + + Returns number of bonds from an *Atom* to other heavy atoms in a + molecule. + + GetNumOfBondsToHydrogenAtoms + $NumOfBonds = $Atom->GetNumOfBondsToHydrogenAtoms(); + + Returns number of bonds from an *Atom* to other hydrogen atoms in a + molecule. + + GetNumOfBondsToNonHydrogenAtoms + $NumOfBonds = $Atom->GetNumOfBondsToNonHydrogenAtoms(); + + Returns number of bonds from an *Atom* to other non-hydrogen atoms + in a molecule. + + GetNumOfBondTypesToHeavyAtoms + ($NumOfSingleBonds, $NumOfDoubleBonds, + $NumOfTripleBonds, $NumOfAromaticBonds) = $Atom-> + GetNumOfBondTypesToHeavyAtoms($CountAromaticBonds); + + Get number of single, double, triple, and aromatic bonds from an + *Atom* to all other non-hydrogen atoms in a molecule. + + Value of *CountAtomaticBonds* 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. + + GetNumOfBondTypesToNonHydrogenAtoms + ($NumOfSingleBonds, $NumOfDoubleBonds, + $NumOfTripleBonds, $NumOfAromaticBonds) = $Atom-> + GetNumOfBondTypesToNonHydrogenAtoms($CountAromaticBonds); + + Get number of single, double, triple, and aromatic bonds from an + *Atom* to all other non-hydrogen atoms in a molecule. + + Value of *CountAtomaticBonds* 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. + + GetNumOfDoubleBondsToHeavyAtoms + $NumOfDoubleBonds = $Atom->GetNumOfDoubleBondsToHeavyAtoms(); + + Returns number of double bonds from an *Atom* to other heavy atoms + or non-hydrogen atoms in a molecule. + + GetNumOfDoubleBondsToNonHydrogenAtoms + $NumOfDoubleBonds =$Atom->GetNumOfDoubleBondsToNonHydrogenAtoms(); + + Returns number of double bonds from an *Atom* to other heavy atoms + or non-hydrogen atoms in a molecule. + + GetNumOfHeavyAtomNeighbors + $NumOfNeighbors = $Atom->GetNumOfHeavyAtomNeighbors(); + + Returns number heavy atom neighbors for an *Atom* in a molecule. + + GetNumOfHydrogenAtomNeighbors + $NumOfNeighbors = $Atom->GetNumOfHydrogenAtomNeighbors(); + + Returns number hydrogens atom neighbors for an *Atom* in a molecule. + + GetNumOfMissingHydrogens + $NumOfMissingHydrogens = $Atom->GetNumOfMissingHydrogens(); + + Returns number of implicit hydrogens for an *Atom* in a molecule. + This value either corresponds to explicitly set *ImplicitHydrogens* + 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. + + GetNumOfExplicitHydrogens + $NumOfExplicitHydrogens = $Atom->GetNumOfExplicitHydrogens(); + + Returns number hydrogens atom neighbors for an *Atom* in a molecule. + + GetNumOfHydrogens + $NumOfHydrogens = $Atom->GetNumOfHydrogens(); + + Returns total number of hydrogens for an *Atom* in a molecule + including both hydrogen atom neighbors and implicit hydrogens. + + GetNumOfImplicitHydrogens + $NumOfImplicitHydrogens = $Atom->GetNumOfImplicitHydrogens(); + + Returns number of implicit hydrogens for an *Atom* in a molecule. + This value either corresponds to explicitly set *ImplicitHydrogens* + 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. + + GetNumOfNeighbors + $NumOfNeighbors = $Atom->GetNumOfNeighbors(); + + Returns number atom neighbors for an *Atom* in a molecule. + + GetNumOfNonHydrogenAtomNeighbors + $NumNeighbors = $This->GetNumOfNonHydrogenAtomNeighbors(); + + Returns number non-hydrogens atom neighbors for an *Atom* in a + molecule. + + GetNumOfRings + $NumOfRings = $Atom->GetNumOfRings(); + + Returns number of rings containing *Atom* in a molecule. + + GetNumOfRingsWithEvenSize + $NumOfRings = $Atom->GetNumOfRingsWithEvenSize(); + + Returns number of rings with even size containing *Atom* in a + molecule. + + GetNumOfRingsWithOddSize + $NumOfRings = $Atom->GetNumOfRingsWithOddSize(); + + Returns number of rings with odd size containing *Atom* in a + molecule. + + GetNumOfRingsWithSize + $NumOfRings = $Atom->GetNumOfRingsWithSize($RingSize); + + Returns number of rings with specific *RingSize* containing *Atom* + in a molecule. + + GetNumOfRingsWithSizeGreaterThan + $NumOfRings = $Atom->GetNumOfRingsWithSizeGreaterThan($RingSize); + + Returns number of rings with size greater than specific *RingSize* + containing *Atom* in a molecule. + + GetNumOfRingsWithSizeLessThan + $NumOfRings = $Atom->GetNumOfRingsWithSizeLessThan($RingSize); + + Returns number of rings with size less than specific *RingSize* + containing *Atom* in a molecule. + + GetNumOfSigmaAndPiBondsToHeavyAtoms + ($NumOfSigmaBonds, $NumOfPiBonds) = $Atom-> + GetNumOfSigmaAndPiBondsToHeavyAtoms(); + + Get number of sigma and pi bonds from an *Atom* to all other + non-hydrogen atoms in a molecule. + + 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. + + GetNumOfSigmaAndPiBondsToNonHydrogenAtoms + ($NumOfSigmaBonds, $NumOfPiBonds) = $Atom-> + GetNumOfSigmaAndPiBondsToNonHydrogenAtoms(); + + Get number of sigma and pi bonds from an *Atom* to all other + non-hydrogen atoms in a molecule. + + 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. + + GetNumOfSingleBondsToNonHydrogenAtoms + $NumOfSingleBonds =$Atom->GetNumOfSingleBondsToNonHydrogenAtoms(); + + Returns number of single bonds from an *Atom* to other heavy atoms + or non-hydrogen atoms in a molecule. + + GetNumOfSingleBondsToHeavyAtoms + $NumOfSingleBonds = $Atom->GetNumOfSingleBondsToHeavyAtoms(); + + Returns number of single bonds from an *Atom* to other heavy atoms + or non-hydrogen atoms in a molecule. + + GetNumOfTripleBondsToNonHydrogenAtoms + $NumOfTripleBonds =$Atom->GetNumOfTripleBondsToNonHydrogenAtoms(); + + Returns number of triple bonds from an *Atom* to other heavy atoms + or non-hydrogen atoms in a molecule. + + GetNumOfTripleBondsToHeavyAtoms + $NumOfTripleBonds = $Atom->GetNumOfTripleBondsToHeavyAtoms(); + + Returns number of triple bonds from an *Atom* to other heavy atoms + or non-hydrogen atoms in a molecule. + + GetPeriodNumber + $PeriodNumber = $Atom->GetPeriodNumber(); + + Returns periodic table period number for an *Atom* in a molecule + with a valid atomic number . + + GetRings + @Rings = $Aotm->GetRings(); + + Returns an array of references to arrays containing ring atoms + corressponding to all rings containing *Atom* in a molecule. + + GetRingsWithEvenSize + @Rings = $Aotm->GetRingsWithEvenSize(); + + Returns an array of references to arrays containing ring atoms + corressponding to all rings with even size containing *Atom* in a + molecule. + + GetRingsWithOddSize + @Rings = $Aotm->GetRingsWithOddSize(); + + Returns an array of references to arrays containing ring atoms + corressponding to all rings with odd size containing *Atom* in a + molecule. + + GetRingsWithSize + @Rings = $Aotm->GetRingsWithSize($RingSize); + + Returns an array of references to arrays containing ring atoms + corressponding to all rings with specific *RingSize *containing + *Atom* in a molecule. + + GetRingsWithSizeGreaterThan + @Rings = $Aotm->GetRingsWithSizeGreaterThan($RingSize); + + Returns an array of references to arrays containing ring atoms + corressponding to all rings with size greater than specific + *RingSize *containing *Atom* in a molecule. + + GetRingsWithSizeLessThan + @Rings = $Aotm->GetRingsWithSizeLessThan($RingSize); + + Returns an array of references to arrays containing ring atoms + corressponding to all rings with size less than specific *RingSize + *containing *Atom* in a molecule. + + GetSizeOfLargestRing + $Size = $Atom->GetSizeOfLargestRing(); + + Returns size of the largest ring containing *Atom* in a molecule. + + GetSizeOfSmallestRing + $Size = $Atom->GetSizeOfSmallestRing(); + + Returns size of the smallest ring containing *Atom* in a molecule. + + GetSmallestRing + @RingAtoms = $Atom->GetSmallestRing(); + + Returns an array of ring *Atom* objects corresponding to the largest + ring containing *Atom* in a molecule. + + GetSpinMultiplicity + $SpinMultiplicity = $Atom->GetSpinMultiplicity(); + + Returns spin multiplicity of an *Atom* corresponding to one of these + three values: explicitly set SpinMultiplicity property value; + calculated from FreeRadicalElectrons property; value of 0. + + The SpinMultiplicity is calculate from *FreeRadicalElectrons* + property as follows: + + FreeRadicalElectrons: 1; SpinMultiplicity: 2 + FreeRadicalElectrons: 2; SpinMultiplicity: 1 + FreeRadicalElectrons: other; SpinMultiplicity: 0 + + GetSumOfBondOrders + $SumBondOrders = $Atom->GetSumOfBondOrders(); + + Returns sum of bond orders corresponding to all atoms bonded to an + *Atom* in a molecule. + + GetSumOfBondOrdersToHeavyAtoms + $SumBondOrders = $Atom->GetSumOfBondOrdersToHeavyAtoms(); + + Returns sum of bond orders corresponding to all heavy atoms bonded + to an *Atom* in a molecule. + + GetSumOfBondOrdersToHydrogenAtoms + $SumBondOrders = $Atom->GetSumOfBondOrdersToHydrogenAtoms(); + + Returns sum of bond orders corresponding to all hydrogen atoms + bonded to an *Atom* in a molecule. + + GetSumOfBondOrdersToNonHydrogenAtoms + $SumBondOrders = $Atom->GetSumOfBondOrdersToNonHydrogenAtoms(); + + Returns sum of bond orders corresponding to all non-hydrogen atoms + bonded to an *Atom* in a molecule. + + GetValence + $Valence = $Atom->GetValence(); + + Returns valence of an *Atom* in a molecule. Valence corresponds to + number of electrons used by an atom in bonding: + + Valence = ValenceElectrons - ValenceFreeElectrons = BondingElectrons + + Single, double and triple bonds with bond orders of 1, 2, and 3 + correspond to contribution of 1, 2, and 3 bonding electrons. So: + + Valence = SumOfBondOrders + NumOfMissingHydrogens + FormalCharge + + where positive and negative values of FormalCharge increase and + decrease the number of bonding electrons, respectively. + + The current release of MayaChemTools supports the following three + valence models, which are used during calculation of implicit + hydrogens: MDLValenceModel, DaylightValenceModel, + InternalValenceModel or MayaChemToolsValenceModel. + + Notes: + + . 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) + + GetValenceElectrons + $ValenceElectrons = $Atom->GetValenceElectrons(); + + Returns valence electrons for an Atom which corresponds to either + explicity set *ValenceElectrons* atom property or valence electrons + for the corresponding element in the periodic table available by + PeriodicTable module. + + GetValenceFreeElectrons + $ValenceFreeElectrons = $Atom->GetValenceFreeElectrons(); + $ValenceFreeElectrons = $Atom->GetValenceFreeElectrons( + $ExcludeFreeRadicalElectrons); + + Returns valence frees electrons for an Atom in a molecule. It + corresponds to: + + ValenceElectrons - Valence + or + ValenceElectrons - NumOfMissingHydrogens - SumOfBondOrders - FormalCharge + + Free radical electrons are included in the valence free electrons + count by default. + + Examples: + + 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 + + GetX + $X = $Atom->GetX(); + + Returns value of X-coordinate for an *Atom*. + + GetXYZ + @XYZ = $Atom->GetXYZ(); + $XYZRef = $Atom->GetXYZ(); + + Returns an array or a reference to an array containing values for + *Atom* coordinates. + + GetXYZVector + $XYZVector = $Atom->GetXYZVector(); + + Returns a *Vector* object containing values for *Atom* coordinates + + GetY + $Y = $Atom->GetY(); + + Returns value of Y-coordinate for an *Atom*. + + GetZ + $Z = $Atom->GetZ(); + + Returns value of Z-coordinate for an *Atom*. + + IsAmideCarbon + $Status = $Atom->IsAmideCarbon(); + + Returns 1 or 0 based on whether it's amide carbon *Atom*. + + An amide group is defineds as: + + R-C(=O)-N(-R')-R'' + + where: + + o R = Hydrogen or groups of atoms attached through carbon + o R' = Hydrogens or groups of atoms attached through carbon or + hetro atoms + o R'' = Hydrogens or groups of atoms attached through carbon or + hetro atoms + + IsAmideNitrogen + $Status = $Atom->IsAmideNitrogen(); + + Returns 1 or 0 based on whether it's amide nitrogen *Atom*. + + IsAromatic + $Status = $Atom->IsAromatic(); + + Returns 1 or 0 based on whether it's an aromatic *Atom*. + + IsArsenic + $Status = $Atom->IsArsenic(); + + Returns 1 or 0 based on whether it's an arsenic *Atom*. + + IsBondedToAtom + $Status = $Atom->IsBondedToAtom($OtherAtom); + + Returns 1 or 0 based on whether *Atom* is bonded to *OtherAtom*. + + IsBromine + $Status = $Atom->IsBromine(); + + Returns 1 or 0 based on whether it's a bromine *Atom*. + + IsCarbon + $Status = $Atom->IsCarbon(); + + Returns 1 or 0 based on whether it's a carbon *Atom*. + + IsCarboxylCarbon + $Status = $Atom->IsCarboxylCarbon(); + + Returns 1 or 0 based on whether it's a carboxyl carbon atom in + carboxyl group: R-C(=O)-OH. + + IsCarboxylOxygen + $Status = $Atom->IsCarboxylOxygen(); + + Returns 1 or 0 based on whether it's a carboxyl oxygen atom in + carboxyl group: R-C(=O)-OH. + + IsCarboxylateCarbon + $Status = $Atom->IsCarboxylateCarbon(); + + Returns 1 or 0 based on whether it's a carboxylate carbon atom in + carboxyl group: R-C(=O)-O-. + + IsCarboxylateOxygen + $Status = $Atom->IsCarboxylateOxygen(); + + Returns 1 or 0 based on whether it's a carboxylate oxygen atom in + carboxyl group: R-C(=O)-O-. + + IsChlorine + $Status = $Atom->IsChlorine(); + + Returns 1 or 0 based on whether it's a chlorine *Atom*. + + IsFluorine + $Status = $Atom->IsFluorine(); + + Returns 1 or 0 based on whether it's a fluorine *Atom*. + + IsFunctionalClassType + $Status =$Atom->IsFunctionalClassType($Type); + + Returns 1 or 0 based on whether it's a specified functional class + *Type*. + + The current release of MayaChemTools supports following + abbreviations and descriptive names for *FunctionalClassType*: + + HBD: HydrogenBondDonor + HBA: HydrogenBondAcceptor + PI : PositivelyIonizable + NI : NegativelyIonizable + Ar : Aromatic + Hal : Halogen + H : Hydrophobic + RA : RingAtom + CA : ChainAtom + + The following definitions are used to determine functional class + types: [ Ref 60-61, Ref 65-66 ]: + + HydrogenBondDonor: NH, NH2, OH + HydrogenBondAcceptor: N[!H], O + PositivelyIonizable: +, NH2 + NegativelyIonizable: -, C(=O)OH, S(=O)OH, P(=O)OH + + IsGuadiniumCarbon + $Status = $Atom->IsGuadiniumCarbon(); + + 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. + + IsGuadiniumNitrogen + $Status = $Atom->IsGuadiniumNitrogen(); + + Returns 1 or 0 based on whether it's a guadinium nitrogen in + guadinium group. + + A guadinium group is defined as: + + R2N-C(=NR)-(NR2) or R2N-C(=NR2+)-(NR2) + + where: + + 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 + + IsHBondAcceptor + $Status =$Atom->IsHBondAcceptor(); + $Status =$Atom->IsHBondAcceptor($HydrogenBondsType); + + Returns 1 or 0 based on whether it's a hydrogen bond acceptor + *Atom*. + + IsHBondDonor + $Status =$Atom->IsHBondDonor(); + $Status =$Atom->IsHBondDonor($HydrogenBondsType); + + Returns 1 or 0 based on whether it's a hydrogen bond donor *Atom*. + + IsHydrogenBondAcceptor + $Status =$Atom->IsHydrogenBondAcceptor(); + $Status =$Atom->IsHydrogenBondAcceptor($HydrogenBondsType); + + Returns 1 or 0 based on whether it's a hydrogen bond acceptor + *Atom*. + + IsHydrogenBondDonor + $Status =$Atom->IsHydrogenBondDonor(); + $Status =$Atom->IsHydrogenBondDonor($HydrogenBondsType); + + Returns 1 or 0 based on whether it's a hydrogen bond donor *Atom*. + + The current release of MayaChemTools supports identification of two + types of hydrogen bond donor and acceptor atoms with these names: + + HBondsType1 or HydrogenBondsType1 + HBondsType2 or HydrogenBondsType2 + + The names of these hydrogen bond types are rather arbitrary. + However, their definitions have specific meaning and are as follows: + + 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 + + By default, *HydrogenBondsType1* is used to calculate number + hydrogen bond donor and acceptor atoms. *HydrogenBondsType2* + corresponds to RuleOf5 definition of hydrogen bond donors and + acceptors. + + IsHalogen + $Status =$Atom->IsHalogen(); + + Returns 1 or 0 based on whether it's a halogen *Atom*. + + IsHeteroAtom + $Status = $Atom->IsHeteroAtom(); + + Returns 0 or 1 based on whether it's a hetro *Atom*. Following atoms + are considered hetro atoms: N, O, F, P, S, Cl, Br, I. + + IsHydrogen + $Status = $Atom->IsHydrogen(); + + Returns 1 or 0 based on whether it's a hydrogen *Atom*. + + IsHydrophobic + $Status =$Atom->IsHydrophobic(); + + Returns 1 or 0 based on whether it's a hydrophobic *Atom*. + + IsInRing + $Status = $Atom->IsInRing(); + + Returns 1 or 0 based on whether *Atom* is present in a ring. + + IsInRingOfSize + $Status = $Atom->IsInRingOfSize($Size); + + Returns 1 or 0 based on whether *Atom* is present in a ring of + specific *Size*. + + IsIodine + $Status = $Atom->IsIodine(); + + Returns 1 or 0 based on whether it's an iodine *Atom*. + + IsIsotope + $Status =$Atom->IsIsotope(); + + Returns 1 or 0 based on whether it's an isotope *Atom*. + + IsLipophilic + $Status =$Atom->IsLipophilic(); + + Returns 1 or 0 based on whether it's a lipophilic *Atom*. + + IsMetallic + $Status = $Atom->IsMetallic(); + + Returns 1 or 0 based on whether it's a metallic *Atom*. + + IsNegativelyIonizable + $Status =$Atom->IsNegativelyIonizable(); + + Returns 1 or 0 based on whether it's a negatively ionizable atom + *Atom*. + + IsNitrogen + $Status = $Atom->IsNitrogen(); + + Returns 1 or 0 based on whether it's a nitrogen *Atom*. + + IsNonCarbonOrHydrogen + $Status =$Atom->IsNonCarbonOrHydrogen(); + + Returns 1 or 0 based on whether it's not a carbon or hydrogen + *Atom*. + + IsNotInRing + $Status = $Atom->IsNotInRing(); + + Returns 1 or 0 based on whether *Atom* is not present in a ring. + + IsOnlyInOneRing + $Status = $Atom->IsOnlyInOneRing(); + + Returns 1 or 0 based on whether *Atom* is only present in one ring. + + IsOxygen + $Status = $Atom->IsOxygen(); + + Returns 0 or 1 based on whether it's an oxygen *Atom*. + + IsPhosphorus + $Status = $Atom->IsPhosphorus(); + + Returns 0 or 1 based on whether it's a phosphorus *Atom*. + + IsPhosphateOxygen + $Status = $Atom->IsPhosphateOxygen(); + + Returns 1 or 0 based on whether it's a phosphate oxygen in phosphate + group. + + A phosphate group is defined as: + + AO-(O=)P(-OA)-OA + + Where: + + A - Any group of atoms including hydrogens + + IsPhosphatePhosphorus + $Status = $Atom->IsPhosphatePhosphorus(); + + Returns 1 or 0 based on whether it's a phosphate phosphorus in + phosphate group. + + IsPolarAtom + $Status = $Atom->IsPolarAtom(); + + Returns 0 or 1 based on whether it's a polar *Atom*. Following atoms + are considered polar atoms: N, O, P, S. + + IsPolarHydrogen + $Status = $Atom->IsPolarHydrogen(); + + Returns 0 or 1 based on whether it's a hydrogen *Atom* bonded to a + polar atom. + + IsPositivelyIonizable + $Status =$Atom->IsPositivelyIonizable(); + + Returns 1 or 0 based on whether it's a positively ionizable *Atom*. + + IsSaturated + $Status = $Atom->IsSaturated(); + + Returns 1 or 0 based on whether it's a saturated *Atom*. An atom + attached to other atoms with only single bonds is considered a + saturated atom. + + IsSelenium + $Status = $Atom->IsSelenium(); + + Returns 0 or 1 based on whether it's a selenium *Atom*. + + IsStereoCenter + $Status = $Atom->IsStereoCenter(); + + Returns 0 or 1 based on whether it's marked as a stero center *Atom* + by explicit setting of *StereoCenter* atom propert to value of *1*. + + IsSilicon + $Status = $Atom->IsSilicon(); + + Returns 0 or 1 based on whether it's a silicon *Atom*. + + IsSulfur + $Status = $Atom->IsSulfur(); + + Returns 0 or 1 based on whether it's a sulfur *Atom*. + + IsSulphur + $Status = $Atom->IsSulphur(); + + Returns 0 or 1 based on whether it's a sulfur *Atom*. + + IsTellurium + $Status = $Atom->IsTellurium(); + + Returns 0 or 1 based on whether it's a tellurium *Atom*. + + IsTerminal + $Status = $Atom->IsTerminal(); + + Returns 0 or 1 based on whether it's a terminal *Atom* attached to + no more than one non-hydrogen atom. + + IsUnsaturated + $Status = $Atom->IsUnsaturated(); + + Returns 1 or 0 based on whether it's as unsaturated *Atom*. An atom + attached to other atoms with at least one non-single bond is + considered an unsaturated atom. + + IsTopologicalPharmacophoreType + $Status =$Atom->IsTopologicalPharmacophoreType(); + + Returns 1 or 0 based on whether it's any of the supportyed + topological pharmacophore *Atom* type. See *IsFunctionalClassType* + for a list of supported types. + + SetAtomSymbol + $Atom->SetAtomSymbol($AtomicSymbol); + + Sets atom symbol for *Atom* and returns *Atom* object. The + appropriate atomic number is also set automatically. + + SetAtomicNumber + $Atom->SetAtomicNumber($AtomicNumber); + + Sets atomic number for *Atom* and returns *Atom* object. The + appropriate atom symbol is also set automatically. + + SetMassNumber + $Atom->SetMassNumber($MassNumber); + + Sets mass number for *Atom* and returns *Atom* object. + + SetStereoCenter + $Atom->SetStereoCenter($StereoCenter); + + Sets stereo center for *Atom* and returns *Atom* object. + + SetStereochemistry + $Atom->SetStereochemistry($Stereochemistry); + + Sets stereo chemistry for *Atom* and returns *Atom* object. + + SetX + $Atom->SetX($Value); + + Sets X-coordinate value for *Atom* and returns *Atom* object. + + SetXYZ + $Atom->SetXYZ(@XYZValues); + $Atom->SetXYZ($XYZValuesRef); + $Atom->SetXYZ($XYZVector); + + Sets *Atom* coordinates using an array, reference to an array or a + *Vector* object and returns *Atom* object. + + SetY + $Atom->SetY($Value); + + Sets Y-coordinate value for *Atom* and returns *Atom* object. + + SetZ + $Atom->SetZ($Value); + + Sets Z-coordinate value for *Atom* and returns *Atom* object. + + StringifyAtom + $AtomString = $Atom->StringifyAtom(); + + Returns a string containing information about *Atom* object. + +AUTHOR + Manish Sud <msud@san.rr.com> + +SEE ALSO + Bond.pm, Molecule.pm, MoleculeFileIO.pm + +COPYRIGHT + Copyright (C) 2015 Manish Sud. All rights reserved. + + This file is part of MayaChemTools. + + MayaChemTools is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 3 of the License, or (at + your option) any later version. +