Previous TOC Next | Fingerprints/MACCSKeys.pm | Code | PDF | PDFGreen | PDFA4 | PDFA4Green

# NAME

MACCSKeys

# SYNOPSIS

use Fingerprints::MACCSKeys;

use Fingerprints::MACCSKeys qw(:all);

# DESCRIPTION

MACCSKeys [ Ref 45-47 ] class provides the following methods:

new, GenerateFingerprints, GenerateMACCSKeys, GetDescription, SetSize, SetType, StringifyMACCSKeys

MACCSKeys is derived from Fingerprints class which in turn is derived from ObjectProperty base class that provides methods not explicitly defined in MACCSKeys, Fingerprints or ObjectProperty classes 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>();

For each MACCS (Molecular ACCess System) keys definition, atoms are processed to determine their membership to the key and the appropriate molecular fingerprints strings are generated. An atom can belong to multiple MACCS keys.

For MACCSKeyBits value of Type option, a fingerprint bit-vector string containing zeros and ones is generated and for MACCSKeyCount value, a fingerprint vector string corresponding to number of MACCS keys [ Ref 45-47 ] is generated.

MACCSKeyBits or MACCSKeyCount values for Type along with two possible 166 | 322 values of Size supports generation of four different types of MACCS keys fingerprint: MACCS166KeyBits, MACCS166KeyCount, MACCS322KeyBits, MACCS322KeyCount.

The current release of MayaChemTools generates the following types of MACCS keys fingerprints bit-vector and vector strings:

FingerprintsBitVector;MACCSKeyBits;166;BinaryString;Ascending;00000000
0000000000000000000000000000000001001000010010000000010010000000011100
0100101010111100011011000100110110000011011110100110111111111111011111
11111111111110111000
FingerprintsBitVector;MACCSKeyBits;166;HexadecimalString;Ascending;000
000000021210210e845f8d8c60b79dffbffffd1
FingerprintsBitVector;MACCSKeyBits;322;BinaryString;Ascending;11101011
1110011111100101111111000111101100110000000000000011100010000000000000
0000000000000000000000000000000000000000000000101000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000011000000000000000000000000000000
0000000000000000000000000000000000000000
FingerprintsBitVector;MACCSKeyBits;322;HexadecimalString;Ascending;7d7
e7af3edc000c1100000000000000500000000000000000000000000000000300000000
000000000
FingerprintsVector;MACCSKeyCount;166;OrderedNumericalValues;ValuesStri
ng;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 3 0 0 0 0 4 0 0 2 0 0 0 0 0 0 0 0 2 0 0 2 0 0 0 0
0 0 0 0 1 1 8 0 0 0 1 0 0 1 0 1 0 1 0 3 1 3 1 0 0 0 1 2 0 11 1 0 0 0
5 0 0 1 2 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 4 0 0 1 1 0 4 6 1 1 1 2 1 1
3 5 2 2 0 5 3 5 1 1 2 5 1 2 1 2 4 8 3 5 5 2 2 0 3 5 4 1
FingerprintsVector;MACCSKeyCount;322;OrderedNumericalValues;ValuesStri
ng;14 8 2 0 2 0 4 4 2 1 4 0 0 2 5 10 5 2 1 0 0 2 0 5 13 3 28 5 5 3 0 0
0 4 2 1 1 0 1 1 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22 5 3 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 0 2 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

## METHODS

new
  $NewMACCSKeys = new MACCSKeys(%NamesAndValues);

  Using specified MACCSKeys property names and values hash, new method creates a new object and returns a reference to newly created PathLengthFingerprints object. By default, the following properties are initialized:

  Molecule = '';
  Type = ''
  Size = ''

  Examples:

  $MACCSKeys = new MACCSKeys('Molecule' => $Molecule, 'Type' => 'MACCSKeyBits', 'Size' => 166);
  $MACCSKeys = new MACCSKeys('Molecule' => $Molecule, 'Type' => 'MACCSKeyCount', 'Size' => 166);
  $MACCSKeys = new MACCSKeys('Molecule' => $Molecule, 'Type' => 'MACCSKeyBit', 'Size' => 322);
  $MACCSKeys = new MACCSKeys('Molecule' => $Molecule, 'Type' => 'MACCSKeyCount', 'Size' => 322);
  $MACCSKeys->GenerateMACCSKeys();
  print "$MACCSKeys\n";
GetDescription
  $Description = $MACCSKeys->GetDescription();

  Returns a string containing description of MACCS keys fingerprints.

GenerateMACCSKeys or GenerateFingerprints
  $MACCSKeys = $MACCSKeys->GenerateMACCSKeys();

  Generates MACCS keys fingerprints and returns MACCSKeys.

  For MACCSKeyBits value of Type, a fingerprint bit-vector string containing zeros and ones is generated and for MACCSKeyCount value, a fingerprint vector string corresponding to number of MACCS keys is generated.

  MACCSKeyBits or MACCSKeyCount values for Type option along with two possible 166 | 322 values of Size supports generation of four different types of MACCS keys fingerprint: MACCS166KeyBits, MACCS166KeyCount, MACCS322KeyBits, MACCS322KeyCount.

  Definition of MACCS keys uses the following atom and bond symbols to define atom and bond environments:

  Atom symbols for 166 keys [ Ref 47 ]:
  A : Any valid periodic table element symbol
  Q : Hetro atoms; any non-C or non-H atom
  X : Halogens; F, Cl, Br, I
  Z : Others; other than H, C, N, O, Si, P, S, F, Cl, Br, I
  Atom symbols for 322 keys [ Ref 46 ]:
  A : Any valid periodic table element symbol
  Q : Hetro atoms; any non-C or non-H atom
  X : Others; other than H, C, N, O, Si, P, S, F, Cl, Br, I
  Z is neither defined nor used
  Bond types:
  - : Single
  = : Double
  T : Triple
  # : Triple
  ~ : Single or double query bond
  % : An aromatic query bond
  None : Any bond type; no explicit bond specified
  $ : Ring bond; $ before a bond type specifies ring bond
  ! : Chain or non-ring bond; ! before a bond type specifies chain bond
  @ : A ring linkage and the number following it specifies the atoms position in the line, thus @1 means linked back to the first atom in the list.
  Aromatic: Kekule or Arom5
  Kekule: Bonds in 6-membered rings with alternate single/double bonds
  or perimeter bonds
  Arom5: Bonds in 5-membered rings with two double bonds and a hetro
  atom at the apex of the ring.

  MACCS 166 keys [ Ref 45-47 ] are defined as follows:

  Key Description
  1 ISOTOPE
  2 103 < ATOMIC NO. < 256
  3 GROUP IVA,VA,VIA PERIODS 4-6 (Ge...)
  4 ACTINIDE
  5 GROUP IIIB,IVB (Sc...)
  6 LANTHANIDE
  7 GROUP VB,VIB,VIIB (V...)
  8 QAAA@1
  9 GROUP VIII (Fe...)
  10 GROUP IIA (ALKALINE EARTH)
  11 4M RING
  12 GROUP IB,IIB (Cu...)
  13 ON(C)C
  14 S-S
  15 OC(O)O
  16 QAA@1
  17 CTC
  18 GROUP IIIA (B...)
  19 7M RING
  20 SI
  21 C=C(Q)Q
  22 3M RING
  23 NC(O)O
  24 N-O
  25 NC(N)N
  26 C$=C($A)$A
  27 I
  28 QCH2Q
  29 P
  30 CQ(C)(C)A
  31 QX
  32 CSN
  33 NS
  34 CH2=A
  35 GROUP IA (ALKALI METAL)
  36 S HETEROCYCLE
  37 NC(O)N
  38 NC(C)N
  39 OS(O)O
  40 S-O
  41 CTN
  42 F
  43 QHAQH
  44 OTHER
  45 C=CN
  46 BR
  47 SAN
  48 OQ(O)O
  49 CHARGE
  50 C=C(C)C
  51 CSO
  52 NN
  53 QHAAAQH
  54 QHAAQH
  55 OSO
  56 ON(O)C
  57 O HETEROCYCLE
  58 QSQ
  59 Snot%A%A
  60 S=O
  61 AS(A)A
  62 A$A!A$A
  63 N=O
  64 A$A!S
  65 C%N
  66 CC(C)(C)A
  67 QS
  68 QHQH (&...)
  69 QQH
  70 QNQ
  71 NO
  72 OAAO
  73 S=A
  74 CH3ACH3
  75 A!N$A
  76 C=C(A)A
  77 NAN
  78 C=N
  79 NAAN
  80 NAAAN
  81 SA(A)A
  82 ACH2QH
  83 QAAAA@1
  84 NH2
  85 CN(C)C
  86 CH2QCH2
  87 X!A$A
  88 S
  89 OAAAO
  90 QHAACH2A
  91 QHAAACH2A
  92 OC(N)C
  93 QCH3
  94 QN
  95 NAAO
  96 5M RING
  97 NAAAO
  98 QAAAAA@1
  99 C=C
  100 ACH2N
  101 8M RING
  102 QO
  103 CL
  104 QHACH2A
  105 A$A($A)$A
  106 QA(Q)Q
  107 XA(A)A
  108 CH3AAACH2A
  109 ACH2O
  110 NCO
  111 NACH2A
  112 AA(A)(A)A
  113 Onot%A%A
  114 CH3CH2A
  115 CH3ACH2A
  116 CH3AACH2A
  117 NAO
  118 ACH2CH2A > 1
  119 N=A
  120 HETEROCYCLIC ATOM > 1 (&...)
  121 N HETEROCYCLE
  122 AN(A)A
  123 OCO
  124 QQ
  125 AROMATIC RING > 1
  126 A!O!A
  127 A$A!O > 1 (&...)
  128 ACH2AAACH2A
  129 ACH2AACH2A
  130 QQ > 1 (&...)
  131 QH > 1
  132 OACH2A
  133 A$A!N
  134 X (HALOGEN)
  135 Nnot%A%A
  136 O=A > 1
  137 HETEROCYCLE
  138 QCH2A > 1 (&...)
  139 OH
  140 O > 3 (&...)
  141 CH3 > 2 (&...)
  142 N > 1
  143 A$A!O
  144 Anot%A%Anot%A
  145 6M RING > 1
  146 O > 2
  147 ACH2CH2A
  148 AQ(A)A
  149 CH3 > 1
  150 A!A$A!A
  151 NH
  152 OC(C)C
  153 QCH2A
  154 C=O
  155 A!CH2!A
  156 NA(A)A
  157 C-O
  158 C-N
  159 O > 1
  160 CH3
  161 N
  162 AROMATIC
  163 6M RING
  164 O
  165 RING
  166 FRAGMENTS

  MACCS 322 keys set as defined in tables 1, 2 and 3 [ Ref 46 ] include:

  o 26 atom properties of type P, as listed in Table 1
  o 32 one-atom environments, as listed in Table 3
  o 264 atom-bond-atom combinations listed in Table 4

  Total number of keys in three tables is : 322

  Atom symbol, X, used for 322 keys [ Ref 46 ] doesn't refer to Halogens as it does for 166 keys. In order to keep the definition of 322 keys consistent with the published definitions, the symbol X is used to imply "others" atoms, but it's internally mapped to symbol X as defined for 166 keys during the generation of key values.

  Atom properties-based keys (26):

  Key Description
  1 A(AAA) or AA(A)A - atom with at least three neighbors
  2 Q - heteroatom
  3 Anot%not-A - atom involved in one or more multiple bonds, not aromatic
  4 A(AAAA) or AA(A)(A)A - atom with at least four neighbors
  5 A(QQ) or QA(Q) - atom with at least two heteroatom neighbors
  6 A(QQQ) or QA(Q)Q - atom with at least three heteroatom neighbors
  7 QH - heteroatom with at least one hydrogen attached
  8 CH2(AA) or ACH2A - carbon with at least two single bonds and at least two hydrogens attached
  9 CH3(A) or ACH3 - carbon with at least one single bond and at least three hydrogens attached
  10 Halogen
  11 A(-A-A-A) or A-A(-A)-A - atom has at least three single bonds
  12 AAAAAA@1 > 2 - atom is in at least two different six-membered rings
  13 A($A$A$A) or A$A($A)$A - atom has more than two ring bonds
  14 A$A!A$A - atom is at a ring/chain boundary. When a comparison is done with another atom the path passes through the chain bond.
  15 Anot%A%Anot%A - atom is at an aromatic/nonaromatic boundary. When a comparison is done with another atom the path passes through the aromatic bond.
  16 A!A!A - atom with more than one chain bond
  17 A!A$A!A - atom is at a ring/chain boundary. When a comparison is done with another atom the path passes through the ring bond.
  18 A%Anot%A%A - atom is at an aromatic/nonaromatic boundary. When a comparison is done with another atom the path passes through the nonaromatic bond.
  19 HETEROCYCLE - atom is a heteroatom in a ring.
  20 rare properties: atom with five or more neighbors, atom in four or more rings, or atom types other than H, C, N, O, S, F, Cl, Br, or I
  21 rare properties: atom has a charge, is an isotope, has two or more multiple bonds, or has a triple bond.
  22 N - nitrogen
  23 S - sulfur
  24 O - oxygen
  25 A(AA)A(A)A(AA) - atom has two neighbors, each with three or more neighbors (including the central atom).
  26 CHACH2 - atom has two hydrocarbon (CH2) neighbors

  Atomic environments properties-based keys (32):

  Key Description
  27 C(CC)
  28 C(CCC)
  29 C(CN)
  30 C(CCN)
  31 C(NN)
  32 C(NNC)
  33 C(NNN)
  34 C(CO)
  35 C(CCO)
  36 C(NO)
  37 C(NCO)
  38 C(NNO)
  39 C(OO)
  40 C(COO)
  41 C(NOO)
  42 C(OOO)
  43 Q(CC)
  44 Q(CCC)
  45 Q(CN)
  46 Q(CCN)
  47 Q(NN)
  48 Q(CNN)
  49 Q(NNN)
  50 Q(CO)
  51 Q(CCO)
  52 Q(NO)
  53 Q(CNO)
  54 Q(NNO)
  55 Q(OO)
  56 Q(COO)
  57 Q(NOO)
  58 Q(OOO)

  Note: The first symbol is the central atom, with atoms bonded to the central atom listed in parentheses. Q is any non-C, non-H atom. If only two atoms are in parentheses, there is no implication concerning the other atoms bonded to the central atom.

  Atom-Bond-Atom properties-based keys: (264)

  Key Description
  59 C-C
  60 C-N
  61 C-O
  62 C-S
  63 C-Cl
  64 C-P
  65 C-F
  66 C-Br
  67 C-Si
  68 C-I
  69 C-X
  70 N-N
  71 N-O
  72 N-S
  73 N-Cl
  74 N-P
  75 N-F
  76 N-Br
  77 N-Si
  78 N-I
  79 N-X
  80 O-O
  81 O-S
  82 O-Cl
  83 O-P
  84 O-F
  85 O-Br
  86 O-Si
  87 O-I
  88 O-X
  89 S-S
  90 S-Cl
  91 S-P
  92 S-F
  93 S-Br
  94 S-Si
  95 S-I
  96 S-X
  97 Cl-Cl
  98 Cl-P
  99 Cl-F
  100 Cl-Br
  101 Cl-Si
  102 Cl-I
  103 Cl-X
  104 P-P
  105 P-F
  106 P-Br
  107 P-Si
  108 P-I
  109 P-X
  110 F-F
  111 F-Br
  112 F-Si
  113 F-I
  114 F-X
  115 Br-Br
  116 Br-Si
  117 Br-I
  118 Br-X
  119 Si-Si
  120 Si-I
  121 Si-X
  122 I-I
  123 I-X
  124 X-X
  125 C=C
  126 C=N
  127 C=O
  128 C=S
  129 C=Cl
  130 C=P
  131 C=F
  132 C=Br
  133 C=Si
  134 C=I
  135 C=X
  136 N=N
  137 N=O
  138 N=S
  139 N=Cl
  140 N=P
  141 N=F
  142 N=Br
  143 N=Si
  144 N=I
  145 N=X
  146 O=O
  147 O=S
  148 O=Cl
  149 O=P
  150 O=F
  151 O=Br
  152 O=Si
  153 O=I
  154 O=X
  155 S=S
  156 S=Cl
  157 S=P
  158 S=F
  159 S=Br
  160 S=Si
  161 S=I
  162 S=X
  163 Cl=Cl
  164 Cl=P
  165 Cl=F
  166 Cl=Br
  167 Cl=Si
  168 Cl=I
  169 Cl=X
  170 P=P
  171 P=F
  172 P=Br
  173 P=Si
  174 P=I
  175 P=X
  176 F=F
  177 F=Br
  178 F=Si
  179 F=I
  180 F=X
  181 Br=Br
  182 Br=Si
  183 Br=I
  184 Br=X
  185 Si=Si
  186 Si=I
  187 Si=X
  188 I=I
  189 I=X
  190 X=X
  191 C#C
  192 C#N
  193 C#O
  194 C#S
  195 C#Cl
  196 C#P
  197 C#F
  198 C#Br
  199 C#Si
  200 C#I
  201 C#X
  202 N#N
  203 N#O
  204 N#S
  205 N#Cl
  206 N#P
  207 N#F
  208 N#Br
  209 N#Si
  210 N#I
  211 N#X
  212 O#O
  213 O#S
  214 O#Cl
  215 O#P
  216 O#F
  217 O#Br
  218 O#Si
  219 O#I
  220 O#X
  221 S#S
  222 S#Cl
  223 S#P
  224 S#F
  225 S#Br
  226 S#Si
  227 S#I
  228 S#X
  229 Cl#Cl
  230 Cl#P
  231 Cl#F
  232 Cl#Br
  233 Cl#Si
  234 Cl#I
  235 Cl#X
  236 P#P
  237 P#F
  238 P#Br
  239 P#Si
  240 P#I
  241 P#X
  242 F#F
  243 F#Br
  244 F#Si
  245 F#I
  246 F#X
  247 Br#Br
  248 Br#Si
  249 Br#I
  250 Br#X
  251 Si#Si
  252 Si#I
  253 Si#X
  254 I#I
  255 I#X
  256 X#X
  257 C$C
  258 C$N
  259 C$O
  260 C$S
  261 C$Cl
  262 C$P
  263 C$F
  264 C$Br
  265 C$Si
  266 C$I
  267 C$X
  268 N$N
  269 N$O
  270 N$S
  271 N$Cl
  272 N$P
  273 N$F
  274 N$Br
  275 N$Si
  276 N$I
  277 N$X
  278 O$O
  279 O$S
  280 O$Cl
  281 O$P
  282 O$F
  283 O$Br
  284 O$Si
  285 O$I
  286 O$X
  287 S$S
  288 S$Cl
  289 S$P
  290 S$F
  291 S$Br
  292 S$Si
  293 S$I
  294 S$X
  295 Cl$Cl
  296 Cl$P
  297 Cl$F
  298 Cl$Br
  299 Cl$Si
  300 Cl$I
  301 Cl$X
  302 P$P
  303 P$F
  304 P$Br
  305 P$Si
  306 P$I
  307 P$X
  308 F$F
  309 F$Br
  310 F$Si
  311 F$I
  312 F$X
  313 Br$Br
  314 Br$Si
  315 Br$I
  316 Br$X
  317 Si$Si
  318 Si$I
  319 Si$X
  320 I$I
  321 I$X
  322 X$X
SetSize
  $MACCSKeys->SetSize($Size);

  Sets size of MACCS keys and returns MACCSKeys. Possible values: 166 or 322.

SetType
  $MACCSKeys->SetType($Type);

  Sets type of MACCS keys and returns MACCSKeys. Possible values: MACCSKeysBits or MACCSKeysCount.

StringifyMACCSKeys
  $String = $MACCSKeys->StringifyMACCSKeys();

  Returns a string containing information about MACCSKeys object.

# AUTHOR

Manish Sud

# SEE ALSO

Fingerprints.pm, FingerprintsStringUtil.pm, AtomNeighborhoodsFingerprints.pm, AtomTypesFingerprints.pm, EStateIndiciesFingerprints.pm, ExtendedConnectivityFingerprints.pm, PathLengthFingerprints.pm, TopologicalAtomPairsFingerprints.pm, TopologicalAtomTripletsFingerprints.pm, TopologicalAtomTorsionsFingerprints.pm, TopologicalPharmacophoreAtomPairsFingerprints.pm, TopologicalPharmacophoreAtomTripletsFingerprints.pm

# COPYRIGHT

Copyright (C) 2018 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.

Previous TOC Next | October 25, 2018 | Fingerprints/MACCSKeys.pm