Mercurial > repos > deepakjadmin > mayatool3_test2
comparison docs/modules/txt/TopologicalPharmacophoreAtomPairsFingerprints.txt @ 0:4816e4a8ae95 draft default tip
Uploaded
| author | deepakjadmin |
|---|---|
| date | Wed, 20 Jan 2016 09:23:18 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:4816e4a8ae95 |
|---|---|
| 1 NAME | |
| 2 TopologicalPharmacophoreAtomPairsFingerprints | |
| 3 | |
| 4 SYNOPSIS | |
| 5 use Fingerprints::TopologicalPharmacophoreAtomPairsFingerprints; | |
| 6 | |
| 7 use Fingerprints::TopologicalPharmacophoreAtomPairsFingerprints | |
| 8 qw(:all); | |
| 9 | |
| 10 DESCRIPTION | |
| 11 TopologicalPharmacophoreAtomPairsFingerprints [ Ref 60-62, Ref 65, Ref | |
| 12 68 ] class provides the following methods: | |
| 13 | |
| 14 new, GenerateFingerprints, GetDescription, GetAtomPairIDs, | |
| 15 SetAtomTypesToUse, SetAtomTypesWeight, SetFuzzFactor, | |
| 16 SetFuzzificationMethodology, SetFuzzificationMode, SetMaxDistance, | |
| 17 SetMinDistance, SetNormalizationMethodology, SetValuesPrecision, | |
| 18 StringifyTopologicalPharmacophoreAtomPairsFingerprints | |
| 19 | |
| 20 TopologicalPharmacophoreAtomPairsFingerprints is derived from | |
| 21 Fingerprints class which in turn is derived from ObjectProperty base | |
| 22 class that provides methods not explicitly defined in | |
| 23 TopologicalPharmacophoreAtomPairsFingerprints, Fingerprints or | |
| 24 ObjectProperty classes using Perl's AUTOLOAD functionality. These | |
| 25 methods are generated on-the-fly for a specified object property: | |
| 26 | |
| 27 Set<PropertyName>(<PropertyValue>); | |
| 28 $PropertyValue = Get<PropertyName>(); | |
| 29 Delete<PropertyName>(); | |
| 30 | |
| 31 Based on the values specified for AtomTypesToUse, pharmacophore atom | |
| 32 types are assigned to all non-hydrogen atoms in a molecule and a | |
| 33 distance matrix is generated. A pharmacophore atom pairs basis set is | |
| 34 initialized for all unique possible pairs within MinDistance and | |
| 35 MaxDistance range. | |
| 36 | |
| 37 Let: | |
| 38 | |
| 39 P = Valid pharmacophore atom type | |
| 40 | |
| 41 Px = Pharmacophore atom type x | |
| 42 Py = Pharmacophore atom type y | |
| 43 | |
| 44 Dmin = Minimum distance corresponding to number of bonds between two atoms | |
| 45 Dmax = Maximum distance corresponding to number of bonds between two atoms | |
| 46 D = Distance corresponding to number of bonds between two atoms | |
| 47 | |
| 48 Px-Dn-Py = Pharmacophore atom pair ID for atom types Px and Py at distance Dn | |
| 49 | |
| 50 P = Number of pharmacophore atom types to consider | |
| 51 PPDn = Number of possible unique pharmacophore atom pairs at a distance Dn | |
| 52 | |
| 53 PPT = Total number of possible pharmacophore atom pairs at all distances between Dmin and Dmax | |
| 54 | |
| 55 Then: | |
| 56 | |
| 57 PPD = (P * (P - 1))/2 + P | |
| 58 | |
| 59 PPT = ((Dmax - Dmin) + 1) * ((P * (P - 1))/2 + P) | |
| 60 = ((Dmax - Dmin) + 1) * PPD | |
| 61 | |
| 62 So for default values of Dmin = 1, Dmax = 10 and P = 5, | |
| 63 | |
| 64 PPD = (5 * (5 - 1))/2 + 5 = 15 | |
| 65 PPT = ((10 - 1) + 1) * 15 = 150 | |
| 66 | |
| 67 The pharmacophore atom pairs bais set includes 150 values. | |
| 68 | |
| 69 The atom pair IDs correspond to: | |
| 70 | |
| 71 Px-Dn-Py = Pharmacophore atom pair ID for atom types Px and Py at distance Dn | |
| 72 | |
| 73 For example: H-D1-H, H-D2-HBA, PI-D5-PI and so on | |
| 74 | |
| 75 Using distance matrix and pharmacohore atom types, occurrence of unique | |
| 76 pharmacohore atom pairs is counted. The contribution of each atom type | |
| 77 to atom pair interaction is optionally weighted by specified | |
| 78 AtomTypesWeight before assigning its count to appropriate distance bin. | |
| 79 Based on NormalizationMethodology option, pharmacophore atom pairs count | |
| 80 is optionally normalized. Additionally, pharmacohore atom pairs count is | |
| 81 optionally fuzzified before or after the normalization controlled by | |
| 82 values of FuzzifyAtomPairsCount, FuzzificationMode, | |
| 83 FuzzificationMethodology and FuzzFactor. | |
| 84 | |
| 85 The final pharmacophore atom pairs count along with atom pair | |
| 86 identifiers involving all non-hydrogen atoms, with optional | |
| 87 normalization and fuzzification, constitute pharmacophore topological | |
| 88 atom pairs fingerprints of the molecule. | |
| 89 | |
| 90 For *ArbitrarySize* value of AtomPairsSetSizeToUse, the fingerprint | |
| 91 vector correspond to only those topological pharmacophore atom pairs | |
| 92 which are present and have non-zero count. However, for *FixedSize* | |
| 93 value of AtomPairsSetSizeToUse, the fingerprint vector contains all | |
| 94 possible valid topological pharmacophore atom pairs with both zero and | |
| 95 non-zero count values. | |
| 96 | |
| 97 The current release of MayaChemTools generates the following types of | |
| 98 topological pharmacophore atom pairs fingerprints vector strings: | |
| 99 | |
| 100 FingerprintsVector;TopologicalPharmacophoreAtomPairs:ArbitrarySize:Min | |
| 101 Distance1:MaxDistance10;54;NumericalValues;IDsAndValuesString;H-D1-H H | |
| 102 -D1-NI HBA-D1-NI HBD-D1-NI H-D2-H H-D2-HBA H-D2-HBD HBA-D2-HBA HBA-D2- | |
| 103 HBD H-D3-H H-D3-HBA H-D3-HBD H-D3-NI HBA-D3-NI HBD-D3-NI H-D4-H H-D4-H | |
| 104 BA H-D4-HBD HBA-D4-HBA HBA-D4-HBD HBD-D4-HBD H-D5-H H-D5-HBA H-D5-...; | |
| 105 18 1 2 1 22 12 8 1 2 18 6 3 1 1 1 22 13 6 5 7 2 28 9 5 1 1 1 36 16 10 | |
| 106 3 4 1 37 10 8 1 35 10 9 3 3 1 28 7 7 4 18 16 12 5 1 2 1 | |
| 107 | |
| 108 FingerprintsVector;TopologicalPharmacophoreAtomPairs:FixedSize:MinDist | |
| 109 ance1:MaxDistance10;150;OrderedNumericalValues;ValuesString;18 0 0 1 0 | |
| 110 0 0 2 0 0 1 0 0 0 0 22 12 8 0 0 1 2 0 0 0 0 0 0 0 0 18 6 3 1 0 0 0 1 | |
| 111 0 0 1 0 0 0 0 22 13 6 0 0 5 7 0 0 2 0 0 0 0 0 28 9 5 1 0 0 0 1 0 0 1 0 | |
| 112 0 0 0 36 16 10 0 0 3 4 0 0 1 0 0 0 0 0 37 10 8 0 0 0 0 1 0 0 0 0 0 0 | |
| 113 0 35 10 9 0 0 3 3 0 0 1 0 0 0 0 0 28 7 7 4 0 0 0 0 0 0 0 0 0 0 0 18... | |
| 114 | |
| 115 FingerprintsVector;TopologicalPharmacophoreAtomPairs:FixedSize:MinDist | |
| 116 ance1:MaxDistance10;150;OrderedNumericalValues;IDsAndValuesString;H-D1 | |
| 117 -H H-D1-HBA H-D1-HBD H-D1-NI H-D1-PI HBA-D1-HBA HBA-D1-HBD HBA-D1-NI H | |
| 118 BA-D1-PI HBD-D1-HBD HBD-D1-NI HBD-D1-PI NI-D1-NI NI-D1-PI PI-D1-PI H-D | |
| 119 2-H H-D2-HBA H-D2-HBD H-D2-NI H-D2-PI HBA-D2-HBA HBA-D2-HBD HBA-D2...; | |
| 120 18 0 0 1 0 0 0 2 0 0 1 0 0 0 0 22 12 8 0 0 1 2 0 0 0 0 0 0 0 0 18 6 3 | |
| 121 1 0 0 0 1 0 0 1 0 0 0 0 22 13 6 0 0 5 7 0 0 2 0 0 0 0 0 28 9 5 1 0 0 0 | |
| 122 1 0 0 1 0 0 0 0 36 16 10 0 0 3 4 0 0 1 0 0 0 0 | |
| 123 | |
| 124 METHODS | |
| 125 new | |
| 126 $TPAPFP = new TopologicalPharmacophoreAtomPairsFingerprints( | |
| 127 %NamesAndValues); | |
| 128 | |
| 129 Using specified *TopologicalPharmacophoreAtomPairsFingerprints* | |
| 130 property names and values hash, new method creates a new object and | |
| 131 returns a reference to newly created | |
| 132 TopologicalPharmacophoreAtomPairsFingerprints object. By default, | |
| 133 the following properties are initialized: | |
| 134 | |
| 135 Molecule = '' | |
| 136 Type = 'TopologicalPharmacophoreAtomPairs' | |
| 137 MinDistance = 1 | |
| 138 MaxDistance = 10 | |
| 139 NormalizationMethodology = 'None' | |
| 140 AtomTypesToUse = ['HBD', 'HBA', 'PI', 'NI', 'H'] | |
| 141 | |
| 142 FuzzifyAtomPairsCount = 0 | |
| 143 FuzzificationMode = 'AfterNormalization' | |
| 144 FuzzificationMethodology = 'FuzzyBinning' | |
| 145 FuzzFactor = 0.15 | |
| 146 | |
| 147 ValuesPrecision = 2 | |
| 148 | |
| 149 Examples: | |
| 150 | |
| 151 $TPAPFP = new TopologicalPharmacophoreAtomPairsFingerprints( | |
| 152 'Molecule' => $Molecule); | |
| 153 | |
| 154 $TPAPFP = new TopologicalPharmacophoreAtomPairsFingerprints( | |
| 155 'Molecule' => $Molecule, | |
| 156 'AtomPairsSetSizeToUse' => 'ArbitrarySize', | |
| 157 'MinDistance' => 1, | |
| 158 'MaxDistance' => 10, | |
| 159 'NormalizationMethodology' => 'None', | |
| 160 'AtomTypesToUse' => ['HBD', 'HBA', 'PI', 'NI', 'H'], | |
| 161 'FuzzifyAtomPairsCount' => 0); | |
| 162 | |
| 163 $TPAPFP = new TopologicalPharmacophoreAtomPairsFingerprints( | |
| 164 'Molecule' => $Molecule, | |
| 165 'AtomPairsSetSizeToUse' => 'FizedSize', | |
| 166 'MinDistance' => 1, | |
| 167 'MaxDistance' => 10, | |
| 168 'NormalizationMethodology' => 'None', | |
| 169 'AtomTypesToUse' => ['HBD', 'HBA', 'PI', 'NI', 'H'], | |
| 170 'FuzzifyAtomPairsCount' => 1, | |
| 171 'FuzzificationMethodology' => 'FuzzyBinning', | |
| 172 'FuzzFactor' => 0.15, | |
| 173 'ValuesPrecision' => 2); | |
| 174 | |
| 175 $TPAPFP->GenerateFingerprints(); | |
| 176 print "$TPAPFP\n"; | |
| 177 | |
| 178 GetDescription | |
| 179 $Description = $TopologicalPharmacophoreAtomPairsFP->GetDescription(); | |
| 180 | |
| 181 Returns a string containing description of topological pharmacophore | |
| 182 atom pairs fingerprints. | |
| 183 | |
| 184 GenerateFingerprints | |
| 185 $TopologicalPharmacophoreAtomPairsFP->GenerateFingerprints(); | |
| 186 | |
| 187 Generates topological pharmacophore atom pairs fingerprints and | |
| 188 returns *TopologicalPharmacophoreAtomPairsFP*. | |
| 189 | |
| 190 GetAtomPairIDs | |
| 191 $AtomPairIDsRef = $TopologicalPharmacophoreAtomPairsFP->GetAtomPairIDs(); | |
| 192 @AtomPairIDs = $TopologicalPharmacophoreAtomPairsFP->GetAtomPairIDs(); | |
| 193 | |
| 194 Returns atom pair IDs corresponding to atom pairs count values in | |
| 195 topological pharmacophore atom pairs fingerprints vector as an array | |
| 196 or reference to an array. | |
| 197 | |
| 198 SetAtomPairsSetSizeToUse | |
| 199 $TopologicalPharmacophoreAtomPairsFP->SetAtomPairsSetSizeToUse($Values); | |
| 200 | |
| 201 Sets pharmacophore atom pairs set size to use for topological | |
| 202 pharmacophore fingerprints generation and returns | |
| 203 *TopologicalPharmacophoreAtomPairsFingerprints*. | |
| 204 | |
| 205 Possible values for pharmacophore atom pairs set size are: | |
| 206 *ArbitrarySize, FizedSize*. Default value: *ArbitrarySize*. | |
| 207 | |
| 208 For *ArbitrarySize* value of AtomPairsSetSizeToUse, the fingerprint | |
| 209 vector correspond to only those topological pharmacophore atom pairs | |
| 210 which are present and have non-zero count. However, for *FixedSize* | |
| 211 value of AtomPairsSetSizeToUse, the fingerprint vector contains all | |
| 212 possible valid topological pharmacophore atom pairs with both zero | |
| 213 and non-zero count values. | |
| 214 | |
| 215 SetAtomTypesToUse | |
| 216 $TopologicalPharmacophoreAtomPairsFP->SetAtomTypesToUse($ValuesRef); | |
| 217 $TopologicalPharmacophoreAtomPairsFP->SetAtomTypesToUse(@Values); | |
| 218 | |
| 219 Sets pharmacophore atom types to use for topological pharmacophore | |
| 220 fingerprints generation and returns | |
| 221 *TopologicalPharmacophoreAtomPairsFingerprints*. | |
| 222 | |
| 223 Possible values for pharmacophore atom types are: *Ar, CA, H, HBA, | |
| 224 HBD, Hal, NI, PI, RA*. Default value [ Ref 60-62 ] : | |
| 225 *HBD,HBA,PI,NI,H*. | |
| 226 | |
| 227 The pharmacophore atom types abbreviations correspond to: | |
| 228 | |
| 229 HBD: HydrogenBondDonor | |
| 230 HBA: HydrogenBondAcceptor | |
| 231 PI : PositivelyIonizable | |
| 232 NI : NegativelyIonizable | |
| 233 Ar : Aromatic | |
| 234 Hal : Halogen | |
| 235 H : Hydrophobic | |
| 236 RA : RingAtom | |
| 237 CA : ChainAtom | |
| 238 | |
| 239 *AtomTypes::FunctionalClassAtomTypes* module is used to assign | |
| 240 pharmacophore atom types. It uses following definitions [ Ref 60-61, | |
| 241 Ref 65-66 ]: | |
| 242 | |
| 243 HydrogenBondDonor: NH, NH2, OH | |
| 244 HydrogenBondAcceptor: N[!H], O | |
| 245 PositivelyIonizable: +, NH2 | |
| 246 NegativelyIonizable: -, C(=O)OH, S(=O)OH, P(=O)OH | |
| 247 | |
| 248 SetAtomTypesWeight | |
| 249 $TopologicalPharmacophoreAtomPairsFP->SetAtomTypesWeight( | |
| 250 %AtomTypesToWeight); | |
| 251 | |
| 252 Sets weights of specified pharmacophore atom types to use during | |
| 253 calculation of their contribution to atom pair count and returns | |
| 254 *TopologicalPharmacophoreAtomPairsFP*. Default values: *1 for each | |
| 255 atom type*. | |
| 256 | |
| 257 The weight values allow to increase the importance of specific | |
| 258 pharmacophore atom type in the generated fingerprints. A weight | |
| 259 value of 0 for an atom type eliminates its contribution to atom pair | |
| 260 count where as weight value of 2 doubles its contribution. | |
| 261 | |
| 262 SetFuzzFactor | |
| 263 $TopologicalPharmacophoreAtomPairsFP->SetFuzzFactor($Value); | |
| 264 | |
| 265 Sets fuzz factor value to use during fuzzification of atom pairs | |
| 266 count and returns *TopologicalPharmacophoreAtomPairsFP*. Default | |
| 267 value: *0.15*. | |
| 268 | |
| 269 Valid values: For *FuzzyBinning* value of FuzzificationMethodology: | |
| 270 *between 0 and 1.0*; For *FuzzyBinSmoothing* value of | |
| 271 FuzzificationMethodology: *between 0 and 0.5*. | |
| 272 | |
| 273 SetFuzzificationMethodology | |
| 274 $TopologicalPharmacophoreAtomPairsFP->SetFuzzificationMethodology($Value); | |
| 275 | |
| 276 Sets fuzzification methodology to use for fuzzification of atom | |
| 277 pairs count and returns *TopologicalPharmacophoreAtomPairsFP*. | |
| 278 Default value: *FuzzyBinning*. Possible values: *FuzzyBinning | | |
| 279 FuzzyBinSmoothing*. | |
| 280 | |
| 281 In conjunction with values for options FuzzifyAtomPairsCount, | |
| 282 FuzzificationMode and FuzzFactor, FuzzificationMethodology option is | |
| 283 used to fuzzify pharmacophore atom pairs count. | |
| 284 | |
| 285 Let: | |
| 286 | |
| 287 Px = Pharmacophore atom type x | |
| 288 Py = Pharmacophore atom type y | |
| 289 PPxy = Pharmacophore atom pair between atom type Px and Py | |
| 290 | |
| 291 PPxyDn = Pharmacophore atom pairs count between atom type Px and Py | |
| 292 at distance Dn | |
| 293 PPxyDn-1 = Pharmacophore atom pairs count between atom type Px and Py | |
| 294 at distance Dn - 1 | |
| 295 PPxyDn+1 = Pharmacophore atom pairs count between atom type Px and Py | |
| 296 at distance Dn + 1 | |
| 297 | |
| 298 FF = FuzzFactor for FuzzyBinning and FuzzyBinSmoothing | |
| 299 | |
| 300 Then: | |
| 301 | |
| 302 For *FuzzyBinning*: | |
| 303 | |
| 304 PPxyDn = PPxyDn (Unchanged) | |
| 305 | |
| 306 PPxyDn-1 = PPxyDn-1 + PPxyDn * FF | |
| 307 PPxyDn+1 = PPxyDn+1 + PPxyDn * FF | |
| 308 | |
| 309 For *FuzzyBinSmoothing*: | |
| 310 | |
| 311 PPxyDn = PPxyDn - PPxyDn * 2FF for Dmin < Dn < Dmax | |
| 312 PPxyDn = PPxyDn - PPxyDn * FF for Dn = Dmin or Dmax | |
| 313 | |
| 314 PPxyDn-1 = PPxyDn-1 + PPxyDn * FF | |
| 315 PPxyDn+1 = PPxyDn+1 + PPxyDn * FF | |
| 316 | |
| 317 In both fuzzification schemes, a value of 0 for FF implies no | |
| 318 fuzzification of occurrence counts. A value of 1 during | |
| 319 *FuzzyBinning* corresponds to maximum fuzzification of occurrence | |
| 320 counts; however, a value of 1 during *FuzzyBinSmoothing* ends up | |
| 321 completely distributing the value over the previous and next | |
| 322 distance bins. | |
| 323 | |
| 324 So for default value of FuzzFactor (FF) 0.15, the occurrence count | |
| 325 of pharmacohore atom pairs at distance Dn during FuzzyBinning is | |
| 326 left unchanged and the counts at distances Dn -1 and Dn + 1 are | |
| 327 incremented by PPxyDn * 0.15. | |
| 328 | |
| 329 And during *FuzzyBinSmoothing* the occurrence counts at Distance Dn | |
| 330 is scaled back using multiplicative factor of (1 - 2*0.15) and the | |
| 331 occurrence counts at distances Dn -1 and Dn + 1 are incremented by | |
| 332 PPxyDn * 0.15. In other words, occurrence bin count is smoothed out | |
| 333 by distributing it over the previous and next distance value. | |
| 334 | |
| 335 SetFuzzificationMode | |
| 336 $TopologicalPharmacophoreAtomPairsFP->SetFuzzificationMode($Value); | |
| 337 | |
| 338 Sets fuzzification mode to use for fuzzification of atom pairs count | |
| 339 and returns *TopologicalPharmacophoreAtomPairsFP*. Default value: | |
| 340 *AfterNormalization*. Possible values: *BeforeNormalization | | |
| 341 AfterNormalization*. | |
| 342 | |
| 343 SetMaxDistance | |
| 344 $TopologicalPharmacophoreAtomPairsFP->SetMaxDistance($Value); | |
| 345 | |
| 346 Sets maximum bond distance between atom pairs for generating | |
| 347 topological pharmacophore atom pairs fingerprints and returns | |
| 348 *TopologicalPharmacophoreAtomPairsFP*. | |
| 349 | |
| 350 SetMinDistance | |
| 351 $TopologicalPharmacophoreAtomPairsFP->SetMinDistance($Value); | |
| 352 | |
| 353 Sets minimum bond distance between atom pairs for generating | |
| 354 topological pharmacophore atom pairs fingerprints and returns | |
| 355 *TopologicalPharmacophoreAtomPairsFP*. | |
| 356 | |
| 357 SetNormalizationMethodology | |
| 358 $TopologicalPharmacophoreAtomPairsFP->SetNormalizationMethodology($Value); | |
| 359 | |
| 360 Sets normalization methodology to use for scaling the occurrence | |
| 361 count of pharmacophore atom pairs within specified distance range | |
| 362 and returns *TopologicalPharmacophoreAtomPairsFP*. Default value: | |
| 363 *None*. Possible values: *None, ByHeavyAtomsCount or | |
| 364 ByAtomTypesCount*. | |
| 365 | |
| 366 SetValuesPrecision | |
| 367 $TopologicalPharmacophoreAtomPairsFP->SetValuesPrecision($Value); | |
| 368 | |
| 369 Sets precision of atom pairs count real values which might be | |
| 370 generated after normalization or fuzzification and returns | |
| 371 *TopologicalPharmacophoreAtomPairsFP*. Default: up to *2* decimal | |
| 372 places. | |
| 373 | |
| 374 StringifyTopologicalPharmacophoreAtomPairsFingerprints | |
| 375 $String = $TopologicalPharmacophoreAtomPairsFP-> | |
| 376 StringifyTopologicalPharmacophoreAtomPairsFingerprints(); | |
| 377 | |
| 378 Returns a string containing information about | |
| 379 *TopologicalPharmacophoreAtomPairsFingerprints* object. | |
| 380 | |
| 381 AUTHOR | |
| 382 Manish Sud <msud@san.rr.com> | |
| 383 | |
| 384 SEE ALSO | |
| 385 Fingerprints.pm, FingerprintsStringUtil.pm, | |
| 386 AtomNeighborhoodsFingerprints.pm, AtomTypesFingerprints.pm, | |
| 387 EStateIndiciesFingerprints.pm, ExtendedConnectivityFingerprints.pm, | |
| 388 MACCSKeys.pm, PathLengthFingerprints.pm, | |
| 389 TopologicalAtomPairsFingerprints.pm, | |
| 390 TopologicalAtomTripletsFingerprints.pm, | |
| 391 TopologicalAtomTorsionsFingerprints.pm, | |
| 392 TopologicalPharmacophoreAtomTripletsFingerprints.pm | |
| 393 | |
| 394 COPYRIGHT | |
| 395 Copyright (C) 2015 Manish Sud. All rights reserved. | |
| 396 | |
| 397 This file is part of MayaChemTools. | |
| 398 | |
| 399 MayaChemTools is free software; you can redistribute it and/or modify it | |
| 400 under the terms of the GNU Lesser General Public License as published by | |
| 401 the Free Software Foundation; either version 3 of the License, or (at | |
| 402 your option) any later version. | |
| 403 |
