Mercurial > repos > deepakjadmin > mayatool3_test2
comparison docs/modules/txt/FingerprintsVector.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 FingerprintsVector | |
| 3 | |
| 4 SYNOPSIS | |
| 5 use Fingerprints::FingerprintsVector; | |
| 6 | |
| 7 use Fingerprints::FingerprintsVector qw(:all); | |
| 8 | |
| 9 DESCRIPTION | |
| 10 FingerprintsVector class provides the following methods: | |
| 11 | |
| 12 new, AddValueIDs, AddValues, CityBlockDistanceCoefficient, | |
| 13 CosineSimilarityCoefficient, CzekanowskiSimilarityCoefficient, | |
| 14 DiceSimilarityCoefficient, EuclideanDistanceCoefficient, GetDescription, | |
| 15 GetFingerprintsVectorString, GetID, GetIDsAndValuesPairsString, | |
| 16 GetIDsAndValuesString, GetNumOfNonZeroValues, GetNumOfValueIDs, | |
| 17 GetNumOfValues, GetSupportedDistanceAndSimilarityCoefficients, | |
| 18 GetSupportedDistanceCoefficients, GetSupportedSimilarityCoefficients, | |
| 19 GetType, GetValue, GetValueID, GetValueIDs, GetValueIDsString, | |
| 20 GetValues, GetValuesAndIDsPairsString, GetValuesAndIDsString, | |
| 21 GetValuesString, GetVectorType, HammingDistanceCoefficient, | |
| 22 IsFingerprintsVector, JaccardSimilarityCoefficient, | |
| 23 ManhattanDistanceCoefficient, NewFromIDsAndValuesPairsString, | |
| 24 NewFromIDsAndValuesString, NewFromValuesAndIDsPairsString, | |
| 25 NewFromValuesAndIDsString, NewFromValuesString, | |
| 26 OchiaiSimilarityCoefficient, SetDescription, SetID, SetType, SetValue, | |
| 27 SetValueID, SetValueIDs, SetValues, SetVectorType, | |
| 28 SoergelDistanceCoefficient, SorensonSimilarityCoefficient, | |
| 29 StringifyFingerprintsVector, TanimotoSimilarityCoefficient | |
| 30 | |
| 31 The methods available to create fingerprints vector from strings and to | |
| 32 calculate similarity and distance coefficients between two vectors can | |
| 33 also be invoked as class functions. | |
| 34 | |
| 35 FingerprintsVector class provides support to perform comparison between | |
| 36 vectors containing three different types of values: | |
| 37 | |
| 38 Type I: OrderedNumericalValues | |
| 39 | |
| 40 o Size of two vectors are same | |
| 41 o Vectors contain real values in a specific order. For example: MACCS keys | |
| 42 count, Topological pharmacophore atom pairs and so on. | |
| 43 | |
| 44 Type II: UnorderedNumericalValues | |
| 45 | |
| 46 o Size of two vectors might not be same | |
| 47 o Vectors contain unordered real value identified by value IDs. For example: | |
| 48 Topological atom pairs, Topological atom torsions and so on | |
| 49 | |
| 50 Type III: AlphaNumericalValues | |
| 51 | |
| 52 o Size of two vectors might not be same | |
| 53 o Vectors contain unordered alphanumerical values. For example: Extended | |
| 54 connectivity fingerprints, atom neighborhood fingerprints. | |
| 55 | |
| 56 Before performing similarity or distance calculations between vectors | |
| 57 containing UnorderedNumericalValues or AlphaNumericalValues, the vectors | |
| 58 are transformed into vectors containing unique OrderedNumericalValues | |
| 59 using value IDs for UnorderedNumericalValues and values itself for | |
| 60 AlphaNumericalValues. | |
| 61 | |
| 62 Three forms of similarity and distance calculation between two vectors, | |
| 63 specified using CalculationMode option, are supported: *AlgebraicForm, | |
| 64 BinaryForm or SetTheoreticForm*. | |
| 65 | |
| 66 For *BinaryForm*, the ordered list of processed final vector values | |
| 67 containing the value or count of each unique value type is simply | |
| 68 converted into a binary vector containing 1s and 0s corresponding to | |
| 69 presence or absence of values before calculating similarity or distance | |
| 70 between two vectors. | |
| 71 | |
| 72 For two fingerprint vectors A and B of same size containing | |
| 73 OrderedNumericalValues, let: | |
| 74 | |
| 75 N = Number values in A or B | |
| 76 | |
| 77 Xa = Values of vector A | |
| 78 Xb = Values of vector B | |
| 79 | |
| 80 Xai = Value of ith element in A | |
| 81 Xbi = Value of ith element in B | |
| 82 | |
| 83 SUM = Sum of i over N values | |
| 84 | |
| 85 For SetTheoreticForm of calculation between two vectors, let: | |
| 86 | |
| 87 SetIntersectionXaXb = SUM ( MIN ( Xai, Xbi ) ) | |
| 88 SetDifferenceXaXb = SUM ( Xai ) + SUM ( Xbi ) - SUM ( MIN ( Xai, Xbi ) ) | |
| 89 | |
| 90 For BinaryForm of calculation between two vectors, let: | |
| 91 | |
| 92 Na = Number of bits set to "1" in A = SUM ( Xai ) | |
| 93 Nb = Number of bits set to "1" in B = SUM ( Xbi ) | |
| 94 Nc = Number of bits set to "1" in both A and B = SUM ( Xai * Xbi ) | |
| 95 Nd = Number of bits set to "0" in both A and B | |
| 96 = SUM ( 1 - Xai - Xbi + Xai * Xbi) | |
| 97 | |
| 98 N = Number of bits set to "1" or "0" in A or B = Size of A or B = Na + Nb - Nc + Nd | |
| 99 | |
| 100 Additionally, for BinaryForm various values also correspond to: | |
| 101 | |
| 102 Na = | Xa | | |
| 103 Nb = | Xb | | |
| 104 Nc = | SetIntersectionXaXb | | |
| 105 Nd = N - | SetDifferenceXaXb | | |
| 106 | |
| 107 | SetDifferenceXaXb | = N - Nd = Na + Nb - Nc + Nd - Nd = Na + Nb - Nc | |
| 108 = | Xa | + | Xb | - | SetIntersectionXaXb | | |
| 109 | |
| 110 Various similarity and distance coefficients [ Ref 40, Ref 62, Ref 64 ] | |
| 111 for a pair of vectors A and B in *AlgebraicForm, BinaryForm and | |
| 112 SetTheoreticForm* are defined as follows: | |
| 113 | |
| 114 CityBlockDistance: ( same as HammingDistance and ManhattanDistance) | |
| 115 | |
| 116 *AlgebraicForm*: SUM ( ABS ( Xai - Xbi ) ) | |
| 117 | |
| 118 *BinaryForm*: ( Na - Nc ) + ( Nb - Nc ) = Na + Nb - 2 * Nc | |
| 119 | |
| 120 *SetTheoreticForm*: | SetDifferenceXaXb | - | SetIntersectionXaXb | = | |
| 121 SUM ( Xai ) + SUM ( Xbi ) - 2 * ( SUM ( MIN ( Xai, Xbi ) ) ) | |
| 122 | |
| 123 CosineSimilarity: ( same as OchiaiSimilarityCoefficient) | |
| 124 | |
| 125 *AlgebraicForm*: SUM ( Xai * Xbi ) / SQRT ( SUM ( Xai ** 2) * SUM ( Xbi | |
| 126 ** 2) ) | |
| 127 | |
| 128 *BinaryForm*: Nc / SQRT ( Na * Nb) | |
| 129 | |
| 130 *SetTheoreticForm*: | SetIntersectionXaXb | / SQRT ( |Xa| * |Xb| ) = SUM | |
| 131 ( MIN ( Xai, Xbi ) ) / SQRT ( SUM ( Xai ) * SUM ( Xbi ) ) | |
| 132 | |
| 133 CzekanowskiSimilarity: ( same as DiceSimilarity and SorensonSimilarity) | |
| 134 | |
| 135 *AlgebraicForm*: ( 2 * ( SUM ( Xai * Xbi ) ) ) / ( SUM ( Xai ** 2) + SUM | |
| 136 ( Xbi **2 ) ) | |
| 137 | |
| 138 *BinaryForm*: 2 * Nc / ( Na + Nb ) | |
| 139 | |
| 140 *SetTheoreticForm*: 2 * | SetIntersectionXaXb | / ( |Xa| + |Xb| ) = 2 * | |
| 141 ( SUM ( MIN ( Xai, Xbi ) ) ) / ( SUM ( Xai ) + SUM ( Xbi ) ) | |
| 142 | |
| 143 DiceSimilarity: ( same as CzekanowskiSimilarity and SorensonSimilarity) | |
| 144 | |
| 145 *AlgebraicForm*: ( 2 * ( SUM ( Xai * Xbi ) ) ) / ( SUM ( Xai ** 2) + SUM | |
| 146 ( Xbi **2 ) ) | |
| 147 | |
| 148 *BinaryForm*: 2 * Nc / ( Na + Nb ) | |
| 149 | |
| 150 *SetTheoreticForm*: 2 * | SetIntersectionXaXb | / ( |Xa| + |Xb| ) = 2 * | |
| 151 ( SUM ( MIN ( Xai, Xbi ) ) ) / ( SUM ( Xai ) + SUM ( Xbi ) ) | |
| 152 | |
| 153 EuclideanDistance: | |
| 154 | |
| 155 *AlgebraicForm*: SQRT ( SUM ( ( ( Xai - Xbi ) ** 2 ) ) ) | |
| 156 | |
| 157 *BinaryForm*: SQRT ( ( Na - Nc ) + ( Nb - Nc ) ) = SQRT ( Na + Nb - 2 * | |
| 158 Nc ) | |
| 159 | |
| 160 *SetTheoreticForm*: SQRT ( | SetDifferenceXaXb | - | SetIntersectionXaXb | |
| 161 | ) = SQRT ( SUM ( Xai ) + SUM ( Xbi ) - 2 * ( SUM ( MIN ( Xai, Xbi ) ) | |
| 162 ) ) | |
| 163 | |
| 164 HammingDistance: ( same as CityBlockDistance and ManhattanDistance) | |
| 165 | |
| 166 *AlgebraicForm*: SUM ( ABS ( Xai - Xbi ) ) | |
| 167 | |
| 168 *BinaryForm*: ( Na - Nc ) + ( Nb - Nc ) = Na + Nb - 2 * Nc | |
| 169 | |
| 170 *SetTheoreticForm*: | SetDifferenceXaXb | - | SetIntersectionXaXb | = | |
| 171 SUM ( Xai ) + SUM ( Xbi ) - 2 * ( SUM ( MIN ( Xai, Xbi ) ) ) | |
| 172 | |
| 173 JaccardSimilarity: ( same as TanimotoSimilarity) | |
| 174 | |
| 175 *AlgebraicForm*: SUM ( Xai * Xbi ) / ( SUM ( Xai ** 2 ) + SUM ( Xbi ** 2 | |
| 176 ) - SUM ( Xai * Xbi ) ) | |
| 177 | |
| 178 *BinaryForm*: Nc / ( ( Na - Nc ) + ( Nb - Nc ) + Nc ) = Nc / ( Na + Nb - | |
| 179 Nc ) | |
| 180 | |
| 181 *SetTheoreticForm*: | SetIntersectionXaXb | / | SetDifferenceXaXb | = | |
| 182 SUM ( MIN ( Xai, Xbi ) ) / ( SUM ( Xai ) + SUM ( Xbi ) - SUM ( MIN ( | |
| 183 Xai, Xbi ) ) ) | |
| 184 | |
| 185 ManhattanDistance: ( same as CityBlockDistance and HammingDistance) | |
| 186 | |
| 187 *AlgebraicForm*: SUM ( ABS ( Xai - Xbi ) ) | |
| 188 | |
| 189 *BinaryForm*: ( Na - Nc ) + ( Nb - Nc ) = Na + Nb - 2 * Nc | |
| 190 | |
| 191 *SetTheoreticForm*: | SetDifferenceXaXb | - | SetIntersectionXaXb | = | |
| 192 SUM ( Xai ) + SUM ( Xbi ) - 2 * ( SUM ( MIN ( Xai, Xbi ) ) ) | |
| 193 | |
| 194 OchiaiSimilarity: ( same as CosineSimilarity) | |
| 195 | |
| 196 *AlgebraicForm*: SUM ( Xai * Xbi ) / SQRT ( SUM ( Xai ** 2) * SUM ( Xbi | |
| 197 ** 2) ) | |
| 198 | |
| 199 *BinaryForm*: Nc / SQRT ( Na * Nb) | |
| 200 | |
| 201 *SetTheoreticForm*: | SetIntersectionXaXb | / SQRT ( |Xa| * |Xb| ) = SUM | |
| 202 ( MIN ( Xai, Xbi ) ) / SQRT ( SUM ( Xai ) * SUM ( Xbi ) ) | |
| 203 | |
| 204 SorensonSimilarity: ( same as CzekanowskiSimilarity and DiceSimilarity) | |
| 205 | |
| 206 *AlgebraicForm*: ( 2 * ( SUM ( Xai * Xbi ) ) ) / ( SUM ( Xai ** 2) + SUM | |
| 207 ( Xbi **2 ) ) | |
| 208 | |
| 209 *BinaryForm*: 2 * Nc / ( Na + Nb ) | |
| 210 | |
| 211 *SetTheoreticForm*: 2 * | SetIntersectionXaXb | / ( |Xa| + |Xb| ) = 2 * | |
| 212 ( SUM ( MIN ( Xai, Xbi ) ) ) / ( SUM ( Xai ) + SUM ( Xbi ) ) | |
| 213 | |
| 214 SoergelDistance: | |
| 215 | |
| 216 *AlgebraicForm*: SUM ( ABS ( Xai - Xbi ) ) / SUM ( MAX ( Xai, Xbi ) ) | |
| 217 | |
| 218 *BinaryForm*: 1 - Nc / ( Na + Nb - Nc ) = ( Na + Nb - 2 * Nc ) / ( Na + | |
| 219 Nb - Nc ) | |
| 220 | |
| 221 *SetTheoreticForm*: ( | SetDifferenceXaXb | - | SetIntersectionXaXb | ) | |
| 222 / | SetDifferenceXaXb | = ( SUM ( Xai ) + SUM ( Xbi ) - 2 * ( SUM ( MIN | |
| 223 ( Xai, Xbi ) ) ) ) / ( SUM ( Xai ) + SUM ( Xbi ) - SUM ( MIN ( Xai, Xbi | |
| 224 ) ) ) | |
| 225 | |
| 226 TanimotoSimilarity: ( same as JaccardSimilarity) | |
| 227 | |
| 228 *AlgebraicForm*: SUM ( Xai * Xbi ) / ( SUM ( Xai ** 2 ) + SUM ( Xbi ** 2 | |
| 229 ) - SUM ( Xai * Xbi ) ) | |
| 230 | |
| 231 *BinaryForm*: Nc / ( ( Na - Nc ) + ( Nb - Nc ) + Nc ) = Nc / ( Na + Nb - | |
| 232 Nc ) | |
| 233 | |
| 234 *SetTheoreticForm*: | SetIntersectionXaXb | / | SetDifferenceXaXb | = | |
| 235 SUM ( MIN ( Xai, Xbi ) ) / ( SUM ( Xai ) + SUM ( Xbi ) - SUM ( MIN ( | |
| 236 Xai, Xbi ) ) ) | |
| 237 | |
| 238 METHODS | |
| 239 new | |
| 240 $FPVector = new Fingerprints::FingerprintsVector(%NamesAndValues); | |
| 241 | |
| 242 Using specified *FingerprintsVector* property names and values hash, | |
| 243 new method creates a new object and returns a reference to newly | |
| 244 created FingerprintsVectorsVector object. By default, the following | |
| 245 properties are initialized: | |
| 246 | |
| 247 Type = '' | |
| 248 @{Values} = () | |
| 249 @{ValuesIDs} = () | |
| 250 | |
| 251 Examples: | |
| 252 | |
| 253 $FPVector = new Fingerprints::FingerprintsVector('Type' => 'OrderedNumericalValues', | |
| 254 'Values' => [1, 2, 3, 4]); | |
| 255 $FPVector = new Fingerprints::FingerprintsVector('Type' => 'NumericalValues', | |
| 256 'Values' => [10, 22, 33, 44], | |
| 257 'ValueIDs' => ['ID1', 'ID2', 'ID3', 'ID4']); | |
| 258 $FPVector = new Fingerprints::FingerprintsVector('Type' => 'AlphaNumericalValues', | |
| 259 'Values' => ['a1', 2, 'a3', 4]); | |
| 260 | |
| 261 AddValueIDs | |
| 262 $FingerprintsVector->AddValueIDs($ValueIDsRef); | |
| 263 $FingerprintsVector->AddValueIDs(@ValueIDs); | |
| 264 | |
| 265 Adds specified *ValueIDs* to *FingerprintsVector* and returns | |
| 266 *FingerprintsVector*. | |
| 267 | |
| 268 AddValues | |
| 269 $FingerprintsVector->AddValues($ValuesRef); | |
| 270 $FingerprintsVector->AddValues(@Values); | |
| 271 $FingerprintsVector->AddValues($Vector); | |
| 272 | |
| 273 Adds specified *Values* to *FingerprintsVector* and returns | |
| 274 *FingerprintsVector*. | |
| 275 | |
| 276 CityBlockDistanceCoefficient | |
| 277 $Value = $FingerprintsVector->CityBlockDistanceCoefficient( | |
| 278 $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); | |
| 279 $Value = Fingerprints::FingerprintsVector::CityBlockDistanceCoefficient( | |
| 280 $FingerprintsVectorA, $FingerprintVectorB, | |
| 281 [$CalculationMode, $SkipValuesCheck]); | |
| 282 | |
| 283 Returns value of *CityBlock* distance coefficient between two | |
| 284 *FingerprintsVectors* using optionally specified *CalculationMode* | |
| 285 and optional checking of vector values. | |
| 286 | |
| 287 Possible *CalculationMode* values: *AlgebraicForm, BinaryForm or | |
| 288 SetTheoreticForm*. Default *CalculationMode* value: *AlgebraicForm*. | |
| 289 Default *SkipValuesCheck* value: *0*. | |
| 290 | |
| 291 CosineSimilarityCoefficient | |
| 292 $Value = $FingerprintsVector->CosineSimilarityCoefficient( | |
| 293 $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); | |
| 294 $Value = Fingerprints::FingerprintsVector::CosineSimilarityCoefficient( | |
| 295 $FingerprintsVectorA, $FingerprintVectorB, | |
| 296 [$CalculationMode, $SkipValuesCheck]); | |
| 297 | |
| 298 Returns value of *Cosine* similarity coefficient between two | |
| 299 *FingerprintsVectors* using optionally specified *CalculationMode* | |
| 300 and optional checking of vector values. | |
| 301 | |
| 302 Possible *CalculationMode* values: *AlgebraicForm, BinaryForm or | |
| 303 SetTheoreticForm*. Default *CalculationMode* value: *AlgebraicForm*. | |
| 304 Default *SkipValuesCheck* value: *0*. | |
| 305 | |
| 306 CzekanowskiSimilarityCoefficient | |
| 307 $Value = $FingerprintsVector->CzekanowskiSimilarityCoefficient( | |
| 308 $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); | |
| 309 $Value = Fingerprints::FingerprintsVector::CzekanowskiSimilarityCoefficient( | |
| 310 $FingerprintsVectorA, $FingerprintVectorB, | |
| 311 [$CalculationMode, $SkipValuesCheck]); | |
| 312 | |
| 313 Returns value of *Czekanowski* similarity coefficient between two | |
| 314 *FingerprintsVectors* using optionally specified *CalculationMode* | |
| 315 and optional checking of vector values. | |
| 316 | |
| 317 Possible *CalculationMode* values: *AlgebraicForm, BinaryForm or | |
| 318 SetTheoreticForm*. Default *CalculationMode* value: *AlgebraicForm*. | |
| 319 Default *SkipValuesCheck* value: *0*. | |
| 320 | |
| 321 DiceSimilarityCoefficient | |
| 322 $Value = $FingerprintsVector->DiceSimilarityCoefficient( | |
| 323 $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); | |
| 324 $Value = Fingerprints::FingerprintsVector::DiceSimilarityCoefficient( | |
| 325 $FingerprintsVectorA, $FingerprintVectorB, | |
| 326 [$CalculationMode, $SkipValuesCheck]); | |
| 327 | |
| 328 Returns value of *Dice* similarity coefficient between two | |
| 329 *FingerprintsVectors* using optionally specified *CalculationMode* | |
| 330 and optional checking of vector values. | |
| 331 | |
| 332 Possible *CalculationMode* values: *AlgebraicForm, BinaryForm or | |
| 333 SetTheoreticForm*. Default *CalculationMode* value: *AlgebraicForm*. | |
| 334 Default *SkipValuesCheck* value: *0*. | |
| 335 | |
| 336 EuclideanDistanceCoefficient | |
| 337 $Value = $FingerprintsVector->EuclideanDistanceCoefficient( | |
| 338 $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); | |
| 339 $Value = Fingerprints::FingerprintsVector::EuclideanDistanceCoefficient( | |
| 340 $FingerprintsVectorA, $FingerprintVectorB, | |
| 341 [$CalculationMode, $SkipValuesCheck]); | |
| 342 | |
| 343 Returns value of *Euclidean* distance coefficient between two | |
| 344 *FingerprintsVectors* using optionally specified *CalculationMode* | |
| 345 and optional checking of vector values. | |
| 346 | |
| 347 Possible *CalculationMode* values: *AlgebraicForm, BinaryForm or | |
| 348 SetTheoreticForm*. Default *CalculationMode* value: *AlgebraicForm*. | |
| 349 Default *SkipValuesCheck* value: *0*. | |
| 350 | |
| 351 GetDescription | |
| 352 $Description = $FingerprintsVector->GetDescription(); | |
| 353 | |
| 354 Returns a string containing description of fingerprints vector. | |
| 355 | |
| 356 GetFingerprintsVectorString | |
| 357 $FPString = $FingerprintsVector->GetFingerprintsVectorString($Format); | |
| 358 | |
| 359 Returns a FingerprintsString containing vector values and/or IDs in | |
| 360 *FingerprintsVector* corresponding to specified *Format*. | |
| 361 | |
| 362 Possible *Format* values: *IDsAndValuesString, IDsAndValues, | |
| 363 IDsAndValuesPairsString, IDsAndValuesPairs, ValuesAndIDsString, | |
| 364 ValuesAndIDs, ValuesAndIDsPairsString, ValuesAndIDsPairs, | |
| 365 ValueIDsString, ValueIDs, ValuesString, or Values*. | |
| 366 | |
| 367 GetID | |
| 368 $ID = $FingerprintsVector->GetID(); | |
| 369 | |
| 370 Returns *ID* of *FingerprintsVector*. | |
| 371 | |
| 372 GetVectorType | |
| 373 $VectorType = $FingerprintsVector->GetVectorType(); | |
| 374 | |
| 375 Returns *VectorType* of *FingerprintsVector*. | |
| 376 | |
| 377 GetIDsAndValuesPairsString | |
| 378 $IDsValuesPairsString = $FingerprintsVector->GetIDsAndValuesPairsString(); | |
| 379 | |
| 380 Returns *FingerprintsVector* value IDs and values as space delimited | |
| 381 ID/value pair string. | |
| 382 | |
| 383 GetIDsAndValuesString | |
| 384 $IDsValuesString = $FingerprintsVector->GetIDsAndValuesString(); | |
| 385 | |
| 386 Returns *FingerprintsVector* value IDs and values as string | |
| 387 containing space delimited IDs followed by values with semicolon as | |
| 388 IDs and values delimiter. | |
| 389 | |
| 390 GetNumOfNonZeroValues | |
| 391 $NumOfNonZeroValues = $FingerprintsVector->GetNumOfNonZeroValues(); | |
| 392 | |
| 393 Returns number of non-zero values in *FingerprintsVector*. | |
| 394 | |
| 395 GetNumOfValueIDs | |
| 396 $NumOfValueIDs = $FingerprintsVector->GetNumOfValueIDs(); | |
| 397 | |
| 398 Returns number of value IDs *FingerprintsVector*. | |
| 399 | |
| 400 GetNumOfValues | |
| 401 $NumOfValues = $FingerprintsVector->GetNumOfValues(); | |
| 402 | |
| 403 Returns number of values *FingerprintsVector*. | |
| 404 | |
| 405 GetSupportedDistanceAndSimilarityCoefficients | |
| 406 @SupportedDistanceAndSimilarityCoefficientsReturn = | |
| 407 Fingerprints::FingerprintsVector::GetSupportedDistanceAndSimilarityCoefficients(); | |
| 408 | |
| 409 Returns an array containing names of supported distance and | |
| 410 similarity coefficients. | |
| 411 | |
| 412 GetSupportedDistanceCoefficients | |
| 413 @SupportedDistanceCoefficientsReturn = | |
| 414 Fingerprints::FingerprintsVector::GetSupportedDistanceCoefficients(); | |
| 415 | |
| 416 Returns an array containing names of supported disyance | |
| 417 coefficients. | |
| 418 | |
| 419 GetSupportedSimilarityCoefficients | |
| 420 @SupportedSimilarityCoefficientsReturn = | |
| 421 Fingerprints::FingerprintsVector::GetSupportedSimilarityCoefficients(); | |
| 422 | |
| 423 Returns an array containing names of supported similarity | |
| 424 coefficients. | |
| 425 | |
| 426 GetType | |
| 427 $VectorType = $FingerprintsVector->GetType(); | |
| 428 | |
| 429 Returns *FingerprintsVector* vector type. | |
| 430 | |
| 431 GetValue | |
| 432 $Value = $FingerprintsVector->GetValue($Index); | |
| 433 | |
| 434 Returns fingerprints vector Value specified using *Index* starting | |
| 435 at 0. | |
| 436 | |
| 437 GetValueID | |
| 438 $ValueID = $FingerprintsVector->GetValueID(); | |
| 439 | |
| 440 Returns fingerprints vector ValueID specified using *Index* starting | |
| 441 at 0. | |
| 442 | |
| 443 GetValueIDs | |
| 444 $ValueIDs = $FingerprintsVector->GetValueIDs(); | |
| 445 @ValueIDs = $FingerprintsVector->GetValueIDs(); | |
| 446 | |
| 447 Returns fingerprints vector ValueIDs as an array or reference to an | |
| 448 array. | |
| 449 | |
| 450 GetValueIDsString | |
| 451 $ValueIDsString = $FingerprintsVector->GetValueIDsString(); | |
| 452 | |
| 453 Returns fingerprints vector ValueIDsString with value IDs delimited | |
| 454 by space. | |
| 455 | |
| 456 GetValues | |
| 457 $ValuesRef = $FingerprintsVector->GetValues(); | |
| 458 @Values = $FingerprintsVector->GetValues(); | |
| 459 | |
| 460 Returns fingerprints vector Values as an array or reference to an | |
| 461 array. | |
| 462 | |
| 463 GetValuesAndIDsPairsString | |
| 464 $ValuesIDsPairsString = $FingerprintsVector->GetValuesAndIDsPairsString(); | |
| 465 | |
| 466 Returns *FingerprintsVector* value and value IDs as space delimited | |
| 467 ID/value pair string. | |
| 468 | |
| 469 GetValuesAndIDsString | |
| 470 $ValuesIDsString = $FingerprintsVector->GetValuesAndIDsString(); | |
| 471 | |
| 472 Returns *FingerprintsVector* values and value IDs as string | |
| 473 containing space delimited IDs followed by values with semicolon as | |
| 474 IDs and values delimiter. | |
| 475 | |
| 476 GetValuesString | |
| 477 $Return = $FingerprintsVector->GetValuesString(); | |
| 478 | |
| 479 Returns *FingerprintsVector* values as space delimited string. | |
| 480 | |
| 481 HammingDistanceCoefficient | |
| 482 $Value = $FingerprintsVector->HammingDistanceCoefficient( | |
| 483 $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); | |
| 484 $Value = Fingerprints::FingerprintsVector::HammingDistanceCoefficient( | |
| 485 $FingerprintsVectorA, $FingerprintVectorB, | |
| 486 [$CalculationMode, $SkipValuesCheck]); | |
| 487 | |
| 488 Returns value of *Hamming* distance coefficient between two | |
| 489 *FingerprintsVectors* using optionally specified *CalculationMode* | |
| 490 and optional checking of vector values. | |
| 491 | |
| 492 Possible *CalculationMode* values: *AlgebraicForm, BinaryForm or | |
| 493 SetTheoreticForm*. Default *CalculationMode* value: *AlgebraicForm*. | |
| 494 Default *SkipValuesCheck* value: *0*. | |
| 495 | |
| 496 IsFingerprintsVector | |
| 497 $Status = Fingerprints::FingerprintsVector::IsFingerprintsVector($Object); | |
| 498 | |
| 499 Returns 1 or 0 based on whether *Object* is a *FingerprintsVector*. | |
| 500 | |
| 501 JaccardSimilarityCoefficient | |
| 502 $Value = $FingerprintsVector->JaccardSimilarityCoefficient( | |
| 503 $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); | |
| 504 $Value = Fingerprints::FingerprintsVector::JaccardSimilarityCoefficient( | |
| 505 $FingerprintsVectorA, $FingerprintVectorB, | |
| 506 [$CalculationMode, $SkipValuesCheck]); | |
| 507 | |
| 508 Returns value of *Jaccard* similarity coefficient between two | |
| 509 *FingerprintsVectors* using optionally specified *CalculationMode* | |
| 510 and optional checking of vector values. | |
| 511 | |
| 512 Possible *CalculationMode* values: *AlgebraicForm, BinaryForm or | |
| 513 SetTheoreticForm*. Default *CalculationMode* value: *AlgebraicForm*. | |
| 514 Default *SkipValuesCheck* value: *0*. | |
| 515 | |
| 516 ManhattanDistanceCoefficient | |
| 517 $Value = $FingerprintsVector->ManhattanDistanceCoefficient( | |
| 518 $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); | |
| 519 $Value = Fingerprints::FingerprintsVector::ManhattanDistanceCoefficient( | |
| 520 $FingerprintsVectorA, $FingerprintVectorB, | |
| 521 [$CalculationMode, $SkipValuesCheck]); | |
| 522 | |
| 523 Returns value of *Manhattan* distance coefficient between two | |
| 524 *FingerprintsVectors* using optionally specified *CalculationMode* | |
| 525 and optional checking of vector values. | |
| 526 | |
| 527 Possible *CalculationMode* values: *AlgebraicForm, BinaryForm or | |
| 528 SetTheoreticForm*. Default *CalculationMode* value: *AlgebraicForm*. | |
| 529 Default *SkipValuesCheck* value: *0*. | |
| 530 | |
| 531 NewFromIDsAndValuesPairsString | |
| 532 $FingerprintsVector = $FingerprintsVector->NewFromIDsAndValuesPairsString( | |
| 533 $ValuesType, $IDsAndValuesPairsString); | |
| 534 $FingerprintsVector = Fingerprints::FingerprintsVector::NewFromIDsAndValuesPairsString( | |
| 535 $ValuesType, $IDsAndValuesPairsString); | |
| 536 | |
| 537 Creates a new *FingerprintsVector* of *ValuesType* using | |
| 538 *IDsAndValuesPairsString* containing space delimited value IDs and | |
| 539 values pairs and returns new FingerprintsVector object. Possible | |
| 540 *ValuesType* values: *OrderedNumericalValues, NumericalValues, or | |
| 541 AlphaNumericalValues*. | |
| 542 | |
| 543 NewFromIDsAndValuesString | |
| 544 $FingerprintsVector = $FingerprintsVector->NewFromIDsAndValuesString( | |
| 545 $ValuesType, $IDsAndValuesString); | |
| 546 $FingerprintsVector = Fingerprints::FingerprintsVector::NewFromIDsAndValuesString( | |
| 547 $ValuesType, $IDsAndValuesString); | |
| 548 | |
| 549 Creates a new *FingerprintsVector* of *ValuesType* using | |
| 550 *IDsAndValuesString* containing semicolon delimited value IDs string | |
| 551 followed by values strings and returns new FingerprintsVector | |
| 552 object. The values within value and value IDs tring are delimited by | |
| 553 spaces. Possible *ValuesType* values: *OrderedNumericalValues, | |
| 554 NumericalValues, or AlphaNumericalValues*. | |
| 555 | |
| 556 NewFromValuesAndIDsPairsString | |
| 557 $FingerprintsVector = $FingerprintsVector->NewFromValuesAndIDsPairsString( | |
| 558 $ValuesType, $ValuesAndIDsPairsString); | |
| 559 $FingerprintsVector = Fingerprints::FingerprintsVector::NewFromValuesAndIDsPairsString( | |
| 560 $ValuesType, $ValuesAndIDsPairsString); | |
| 561 | |
| 562 Creates a new *FingerprintsVector* of *ValuesType* using | |
| 563 *ValuesAndIDsPairsString* containing space delimited value and value | |
| 564 IDs pairs and returns new FingerprintsVector object. Possible | |
| 565 *ValuesType* values: *OrderedNumericalValues, NumericalValues, or | |
| 566 AlphaNumericalValues*. | |
| 567 | |
| 568 NewFromValuesAndIDsString | |
| 569 $FingerprintsVector = $FingerprintsVector->NewFromValuesAndIDsString( | |
| 570 $ValuesType, $IDsAndValuesString); | |
| 571 $FingerprintsVector = Fingerprints::FingerprintsVector::NewFromValuesAndIDsString( | |
| 572 $ValuesType, $IDsAndValuesString); | |
| 573 | |
| 574 Creates a new *FingerprintsVector* of *ValuesType* using | |
| 575 *ValuesAndIDsString* containing semicolon delimited values string | |
| 576 followed by value IDs strings and returns new FingerprintsVector | |
| 577 object. The values within values and value IDs tring are delimited | |
| 578 by spaces. Possible *ValuesType* values: *OrderedNumericalValues, | |
| 579 NumericalValues, or AlphaNumericalValues*. | |
| 580 | |
| 581 NewFromValuesString | |
| 582 $FingerprintsVector = $FingerprintsVector->NewFromValuesString( | |
| 583 $ValuesType, $ValuesString); | |
| 584 $FingerprintsVector = Fingerprints::FingerprintsVector::NewFromValuesString( | |
| 585 $ValuesType, $ValuesString); | |
| 586 | |
| 587 Creates a new *FingerprintsVector* of *ValuesType* using | |
| 588 *ValuesString* containing space delimited values string and returns | |
| 589 new FingerprintsVector object. The values within values and value | |
| 590 IDs tring are delimited by spaces. Possible *ValuesType* values: | |
| 591 *OrderedNumericalValues, NumericalValues, or AlphaNumericalValues*. | |
| 592 | |
| 593 OchiaiSimilarityCoefficient | |
| 594 $Value = $FingerprintsVector->OchiaiSimilarityCoefficient( | |
| 595 $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); | |
| 596 $Value = Fingerprints::FingerprintsVector::OchiaiSimilarityCoefficient( | |
| 597 $FingerprintsVectorA, $FingerprintVectorB, | |
| 598 [$CalculationMode, $SkipValuesCheck]); | |
| 599 | |
| 600 Returns value of *Ochiai* similarity coefficient between two | |
| 601 *FingerprintsVectors* using optionally specified *CalculationMode* | |
| 602 and optional checking of vector values. | |
| 603 | |
| 604 Possible *CalculationMode* values: *AlgebraicForm, BinaryForm or | |
| 605 SetTheoreticForm*. Default *CalculationMode* value: *AlgebraicForm*. | |
| 606 Default *SkipValuesCheck* value: *0*. | |
| 607 | |
| 608 SetDescription | |
| 609 $FingerprintsVector->SetDescription($Description); | |
| 610 | |
| 611 Sets *Description* of fingerprints vector and returns | |
| 612 *FingerprintsVector*. | |
| 613 | |
| 614 SetID | |
| 615 $FingerprintsVector->SetID($ID); | |
| 616 | |
| 617 Sets *ID* of fingerprints vector and returns *FingerprintsVector*. | |
| 618 | |
| 619 SetVectorType | |
| 620 $FingerprintsVector->SetVectorType($VectorType); | |
| 621 | |
| 622 Sets *VectorType* of fingerprints vector and returns | |
| 623 *FingerprintsVector*. | |
| 624 | |
| 625 SetType | |
| 626 $FingerprintsVector->SetType($Type); | |
| 627 | |
| 628 Sets *FingerprintsVector* values *Type* and returns | |
| 629 *FingerprintsVector*. Possible *Type* values: | |
| 630 *OrderedNumericalValues, NumericalValues, or AlphaNumericalValues*. | |
| 631 | |
| 632 During calculation of similarity and distance coefficients between | |
| 633 two *FingerprintsVectors*, the following conditions apply to vector | |
| 634 type, size, value and value IDs: | |
| 635 | |
| 636 o For OrderedNumericalValues type, both vectors must be of the same size | |
| 637 and contain similar types of numerical values in the same order. | |
| 638 | |
| 639 o For NumericalValues type, vector value IDs for both vectors must be | |
| 640 specified; however, their size and order of IDs and numerical values may | |
| 641 be different. For each vector, value IDs must correspond to vector values. | |
| 642 | |
| 643 o For AlphaNumericalValues type, vectors may contain both numerical and | |
| 644 alphanumerical values and their sizes may be different. | |
| 645 | |
| 646 SetValue | |
| 647 $FingerprintsVector->SetValue($Index, $Value, [$SkipIndexCheck]); | |
| 648 | |
| 649 Sets a *FingerprintsVector* value specified by *Index* starting at 0 | |
| 650 to *Value* along with optional index range check and returns | |
| 651 *FingerprintsVector*. | |
| 652 | |
| 653 SetValueID | |
| 654 $FingerprintsVector->SetValueID($Index, $ValueID, [$SkipIndexCheck]); | |
| 655 | |
| 656 Sets a *FingerprintsVector* value ID specified by *Index* starting | |
| 657 at 0 to *ValueID* along with optional index range check and returns | |
| 658 *FingerprintsVector*. | |
| 659 | |
| 660 SetValueIDs | |
| 661 $FingerprintsVector->SetValueIDs($ValueIDsRef); | |
| 662 $FingerprintsVector->SetValueIDs(@ValueIDs); | |
| 663 | |
| 664 Sets *FingerprintsVector* value IDs to specified *ValueIDs* and | |
| 665 returns *FingerprintsVector*. | |
| 666 | |
| 667 SetValues | |
| 668 $FingerprintsVector->SetValues($ValuesRef); | |
| 669 $FingerprintsVector->SetValues(@Values); | |
| 670 | |
| 671 Sets *FingerprintsVector* value to specified *Values* and returns | |
| 672 *FingerprintsVector*. | |
| 673 | |
| 674 SoergelDistanceCoefficient | |
| 675 $Value = $FingerprintsVector->SoergelDistanceCoefficient( | |
| 676 $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); | |
| 677 $Value = Fingerprints::FingerprintsVector::SoergelDistanceCoefficient( | |
| 678 $FingerprintsVectorA, $FingerprintVectorB, | |
| 679 [$CalculationMode, $SkipValuesCheck]); | |
| 680 | |
| 681 Returns value of *Soergel* distance coefficient between two | |
| 682 *FingerprintsVectors* using optionally specified *CalculationMode* | |
| 683 and optional checking of vector values. | |
| 684 | |
| 685 Possible *CalculationMode* values: *AlgebraicForm, BinaryForm or | |
| 686 SetTheoreticForm*. Default *CalculationMode* value: *AlgebraicForm*. | |
| 687 Default *SkipValuesCheck* value: *0*. | |
| 688 | |
| 689 SorensonSimilarityCoefficient | |
| 690 $Value = $FingerprintsVector->SorensonSimilarityCoefficient( | |
| 691 $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); | |
| 692 $Value = Fingerprints::FingerprintsVector::SorensonSimilarityCoefficient( | |
| 693 $FingerprintsVectorA, $FingerprintVectorB, | |
| 694 [$CalculationMode, $SkipValuesCheck]); | |
| 695 | |
| 696 Returns value of *Sorenson* similarity coefficient between two | |
| 697 *FingerprintsVectors* using optionally specified *CalculationMode* | |
| 698 and optional checking of vector values. | |
| 699 | |
| 700 Possible *CalculationMode* values: *AlgebraicForm, BinaryForm or | |
| 701 SetTheoreticForm*. Default *CalculationMode* value: *AlgebraicForm*. | |
| 702 Default *SkipValuesCheck* value: *0*. | |
| 703 | |
| 704 TanimotoSimilarityCoefficient | |
| 705 $Value = $FingerprintsVector->TanimotoSimilarityCoefficient( | |
| 706 $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); | |
| 707 $Value = Fingerprints::FingerprintsVector::TanimotoSimilarityCoefficient( | |
| 708 $FingerprintsVectorA, $FingerprintVectorB, | |
| 709 [$CalculationMode, $SkipValuesCheck]); | |
| 710 | |
| 711 Returns value of *Tanimoto* similarity coefficient between two | |
| 712 *FingerprintsVectors* using optionally specified *CalculationMode* | |
| 713 and optional checking of vector values. | |
| 714 | |
| 715 Possible *CalculationMode* values: *AlgebraicForm, BinaryForm or | |
| 716 SetTheoreticForm*. Default *CalculationMode* value: *AlgebraicForm*. | |
| 717 Default *SkipValuesCheck* value: *0*. | |
| 718 | |
| 719 StringifyFingerprintsVector | |
| 720 $String = $FingerprintsVector->StringifyFingerprintsVector(); | |
| 721 | |
| 722 Returns a string containing information about *FingerprintsVector* | |
| 723 object. | |
| 724 | |
| 725 AUTHOR | |
| 726 Manish Sud <msud@san.rr.com> | |
| 727 | |
| 728 SEE ALSO | |
| 729 BitVector.pm, FingerprintsStringUtil.pm, FingerprintsBitVector.pm, | |
| 730 Vector.pm | |
| 731 | |
| 732 COPYRIGHT | |
| 733 Copyright (C) 2015 Manish Sud. All rights reserved. | |
| 734 | |
| 735 This file is part of MayaChemTools. | |
| 736 | |
| 737 MayaChemTools is free software; you can redistribute it and/or modify it | |
| 738 under the terms of the GNU Lesser General Public License as published by | |
| 739 the Free Software Foundation; either version 3 of the License, or (at | |
| 740 your option) any later version. | |
| 741 |
