Mercurial > repos > deepakjadmin > mayatool3_test3
view mayachemtools/docs/modules/man3/FingerprintsVector.3 @ 9:ab29fa5c8c1f draft default tip
Uploaded
author | deepakjadmin |
---|---|
date | Thu, 15 Dec 2016 14:18:03 -0500 |
parents | 73ae111cf86f |
children |
line wrap: on
line source
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "FINGERPRINTSVECTOR 1" .TH FINGERPRINTSVECTOR 1 "2015-03-29" "perl v5.14.2" "MayaChemTools" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" FingerprintsVector .SH "SYNOPSIS" .IX Header "SYNOPSIS" use Fingerprints::FingerprintsVector; .PP use Fingerprints::FingerprintsVector qw(:all); .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBFingerprintsVector\fR class provides the following methods: .PP new, AddValueIDs, AddValues, CityBlockDistanceCoefficient, CosineSimilarityCoefficient, CzekanowskiSimilarityCoefficient, DiceSimilarityCoefficient, EuclideanDistanceCoefficient, GetDescription, GetFingerprintsVectorString, GetID, GetIDsAndValuesPairsString, GetIDsAndValuesString, GetNumOfNonZeroValues, GetNumOfValueIDs, GetNumOfValues, GetSupportedDistanceAndSimilarityCoefficients, GetSupportedDistanceCoefficients, GetSupportedSimilarityCoefficients, GetType, GetValue, GetValueID, GetValueIDs, GetValueIDsString, GetValues, GetValuesAndIDsPairsString, GetValuesAndIDsString, GetValuesString, GetVectorType, HammingDistanceCoefficient, IsFingerprintsVector, JaccardSimilarityCoefficient, ManhattanDistanceCoefficient, NewFromIDsAndValuesPairsString, NewFromIDsAndValuesString, NewFromValuesAndIDsPairsString, NewFromValuesAndIDsString, NewFromValuesString, OchiaiSimilarityCoefficient, SetDescription, SetID, SetType, SetValue, SetValueID, SetValueIDs, SetValues, SetVectorType, SoergelDistanceCoefficient, SorensonSimilarityCoefficient, StringifyFingerprintsVector, TanimotoSimilarityCoefficient .PP The methods available to create fingerprints vector from strings and to calculate similarity and distance coefficients between two vectors can also be invoked as class functions. .PP \&\fBFingerprintsVector\fR class provides support to perform comparison between vectors containing three different types of values: .PP Type I: OrderedNumericalValues .PP .Vb 3 \& o Size of two vectors are same \& o Vectors contain real values in a specific order. For example: MACCS keys \& count, Topological pharmacophore atom pairs and so on. .Ve .PP Type \s-1II:\s0 UnorderedNumericalValues .PP .Vb 3 \& o Size of two vectors might not be same \& o Vectors contain unordered real value identified by value IDs. For example: \& Topological atom pairs, Topological atom torsions and so on .Ve .PP Type \s-1III:\s0 AlphaNumericalValues .PP .Vb 3 \& o Size of two vectors might not be same \& o Vectors contain unordered alphanumerical values. For example: Extended \& connectivity fingerprints, atom neighborhood fingerprints. .Ve .PP Before performing similarity or distance calculations between vectors containing UnorderedNumericalValues or AlphaNumericalValues, the vectors are transformed into vectors containing unique OrderedNumericalValues using value IDs for UnorderedNumericalValues and values itself for AlphaNumericalValues. .PP Three forms of similarity and distance calculation between two vectors, specified using \fBCalculationMode\fR option, are supported: \fIAlgebraicForm, BinaryForm or SetTheoreticForm\fR. .PP For \fIBinaryForm\fR, the ordered list of processed final vector values containing the value or count of each unique value type is simply converted into a binary vector containing 1s and 0s corresponding to presence or absence of values before calculating similarity or distance between two vectors. .PP For two fingerprint vectors A and B of same size containing OrderedNumericalValues, let: .PP .Vb 1 \& N = Number values in A or B \& \& Xa = Values of vector A \& Xb = Values of vector B \& \& Xai = Value of ith element in A \& Xbi = Value of ith element in B \& \& SUM = Sum of i over N values .Ve .PP For SetTheoreticForm of calculation between two vectors, let: .PP .Vb 2 \& SetIntersectionXaXb = SUM ( MIN ( Xai, Xbi ) ) \& SetDifferenceXaXb = SUM ( Xai ) + SUM ( Xbi ) \- SUM ( MIN ( Xai, Xbi ) ) .Ve .PP For BinaryForm of calculation between two vectors, let: .PP .Vb 5 \& Na = Number of bits set to "1" in A = SUM ( Xai ) \& Nb = Number of bits set to "1" in B = SUM ( Xbi ) \& Nc = Number of bits set to "1" in both A and B = SUM ( Xai * Xbi ) \& Nd = Number of bits set to "0" in both A and B \& = SUM ( 1 \- Xai \- Xbi + Xai * Xbi) \& \& N = Number of bits set to "1" or "0" in A or B = Size of A or B = Na + Nb \- Nc + Nd .Ve .PP Additionally, for BinaryForm various values also correspond to: .PP .Vb 4 \& Na = | Xa | \& Nb = | Xb | \& Nc = | SetIntersectionXaXb | \& Nd = N \- | SetDifferenceXaXb | \& \& | SetDifferenceXaXb | = N \- Nd = Na + Nb \- Nc + Nd \- Nd = Na + Nb \- Nc \& = | Xa | + | Xb | \- | SetIntersectionXaXb | .Ve .PP Various similarity and distance coefficients [ Ref 40, Ref 62, Ref 64 ] for a pair of vectors A and B in \fIAlgebraicForm, BinaryForm and SetTheoreticForm\fR are defined as follows: .PP \&\fBCityBlockDistance\fR: ( same as HammingDistance and ManhattanDistance) .PP \&\fIAlgebraicForm\fR: \s-1SUM\s0 ( \s-1ABS\s0 ( Xai \- Xbi ) ) .PP \&\fIBinaryForm\fR: ( Na \- Nc ) + ( Nb \- Nc ) = Na + Nb \- 2 * Nc .PP \&\fISetTheoreticForm\fR: | SetDifferenceXaXb | \- | SetIntersectionXaXb | = \s-1SUM\s0 ( Xai ) + \s-1SUM\s0 ( Xbi ) \- 2 * ( \s-1SUM\s0 ( \s-1MIN\s0 ( Xai, Xbi ) ) ) .PP \&\fBCosineSimilarity\fR: ( same as OchiaiSimilarityCoefficient) .PP \&\fIAlgebraicForm\fR: \s-1SUM\s0 ( Xai * Xbi ) / \s-1SQRT\s0 ( \s-1SUM\s0 ( Xai ** 2) * \s-1SUM\s0 ( Xbi ** 2) ) .PP \&\fIBinaryForm\fR: Nc / \s-1SQRT\s0 ( Na * Nb) .PP \&\fISetTheoreticForm\fR: | SetIntersectionXaXb | / \s-1SQRT\s0 ( |Xa| * |Xb| ) = \s-1SUM\s0 ( \s-1MIN\s0 ( Xai, Xbi ) ) / \s-1SQRT\s0 ( \s-1SUM\s0 ( Xai ) * \s-1SUM\s0 ( Xbi ) ) .PP \&\fBCzekanowskiSimilarity\fR: ( same as DiceSimilarity and SorensonSimilarity) .PP \&\fIAlgebraicForm\fR: ( 2 * ( \s-1SUM\s0 ( Xai * Xbi ) ) ) / ( \s-1SUM\s0 ( Xai ** 2) + \s-1SUM\s0 ( Xbi **2 ) ) .PP \&\fIBinaryForm\fR: 2 * Nc / ( Na + Nb ) .PP \&\fISetTheoreticForm\fR: 2 * | SetIntersectionXaXb | / ( |Xa| + |Xb| ) = 2 * ( \s-1SUM\s0 ( \s-1MIN\s0 ( Xai, Xbi ) ) ) / ( \s-1SUM\s0 ( Xai ) + \s-1SUM\s0 ( Xbi ) ) .PP \&\fBDiceSimilarity\fR: ( same as CzekanowskiSimilarity and SorensonSimilarity) .PP \&\fIAlgebraicForm\fR: ( 2 * ( \s-1SUM\s0 ( Xai * Xbi ) ) ) / ( \s-1SUM\s0 ( Xai ** 2) + \s-1SUM\s0 ( Xbi **2 ) ) .PP \&\fIBinaryForm\fR: 2 * Nc / ( Na + Nb ) .PP \&\fISetTheoreticForm\fR: 2 * | SetIntersectionXaXb | / ( |Xa| + |Xb| ) = 2 * ( \s-1SUM\s0 ( \s-1MIN\s0 ( Xai, Xbi ) ) ) / ( \s-1SUM\s0 ( Xai ) + \s-1SUM\s0 ( Xbi ) ) .PP \&\fBEuclideanDistance\fR: .PP \&\fIAlgebraicForm\fR: \s-1SQRT\s0 ( \s-1SUM\s0 ( ( ( Xai \- Xbi ) ** 2 ) ) ) .PP \&\fIBinaryForm\fR: \s-1SQRT\s0 ( ( Na \- Nc ) + ( Nb \- Nc ) ) = \s-1SQRT\s0 ( Na + Nb \- 2 * Nc ) .PP \&\fISetTheoreticForm\fR: \s-1SQRT\s0 ( | SetDifferenceXaXb | \- | SetIntersectionXaXb | ) = \s-1SQRT\s0 ( \s-1SUM\s0 ( Xai ) + \s-1SUM\s0 ( Xbi ) \- 2 * ( \s-1SUM\s0 ( \s-1MIN\s0 ( Xai, Xbi ) ) ) ) .PP \&\fBHammingDistance\fR: ( same as CityBlockDistance and ManhattanDistance) .PP \&\fIAlgebraicForm\fR: \s-1SUM\s0 ( \s-1ABS\s0 ( Xai \- Xbi ) ) .PP \&\fIBinaryForm\fR: ( Na \- Nc ) + ( Nb \- Nc ) = Na + Nb \- 2 * Nc .PP \&\fISetTheoreticForm\fR: | SetDifferenceXaXb | \- | SetIntersectionXaXb | = \s-1SUM\s0 ( Xai ) + \s-1SUM\s0 ( Xbi ) \- 2 * ( \s-1SUM\s0 ( \s-1MIN\s0 ( Xai, Xbi ) ) ) .PP \&\fBJaccardSimilarity\fR: ( same as TanimotoSimilarity) .PP \&\fIAlgebraicForm\fR: \s-1SUM\s0 ( Xai * Xbi ) / ( \s-1SUM\s0 ( Xai ** 2 ) + \s-1SUM\s0 ( Xbi ** 2 ) \- \s-1SUM\s0 ( Xai * Xbi ) ) .PP \&\fIBinaryForm\fR: Nc / ( ( Na \- Nc ) + ( Nb \- Nc ) + Nc ) = Nc / ( Na + Nb \- Nc ) .PP \&\fISetTheoreticForm\fR: | SetIntersectionXaXb | / | SetDifferenceXaXb | = \s-1SUM\s0 ( \s-1MIN\s0 ( Xai, Xbi ) ) / ( \s-1SUM\s0 ( Xai ) + \s-1SUM\s0 ( Xbi ) \- \s-1SUM\s0 ( \s-1MIN\s0 ( Xai, Xbi ) ) ) .PP \&\fBManhattanDistance\fR: ( same as CityBlockDistance and HammingDistance) .PP \&\fIAlgebraicForm\fR: \s-1SUM\s0 ( \s-1ABS\s0 ( Xai \- Xbi ) ) .PP \&\fIBinaryForm\fR: ( Na \- Nc ) + ( Nb \- Nc ) = Na + Nb \- 2 * Nc .PP \&\fISetTheoreticForm\fR: | SetDifferenceXaXb | \- | SetIntersectionXaXb | = \s-1SUM\s0 ( Xai ) + \s-1SUM\s0 ( Xbi ) \- 2 * ( \s-1SUM\s0 ( \s-1MIN\s0 ( Xai, Xbi ) ) ) .PP \&\fBOchiaiSimilarity\fR: ( same as CosineSimilarity) .PP \&\fIAlgebraicForm\fR: \s-1SUM\s0 ( Xai * Xbi ) / \s-1SQRT\s0 ( \s-1SUM\s0 ( Xai ** 2) * \s-1SUM\s0 ( Xbi ** 2) ) .PP \&\fIBinaryForm\fR: Nc / \s-1SQRT\s0 ( Na * Nb) .PP \&\fISetTheoreticForm\fR: | SetIntersectionXaXb | / \s-1SQRT\s0 ( |Xa| * |Xb| ) = \s-1SUM\s0 ( \s-1MIN\s0 ( Xai, Xbi ) ) / \s-1SQRT\s0 ( \s-1SUM\s0 ( Xai ) * \s-1SUM\s0 ( Xbi ) ) .PP \&\fBSorensonSimilarity\fR: ( same as CzekanowskiSimilarity and DiceSimilarity) .PP \&\fIAlgebraicForm\fR: ( 2 * ( \s-1SUM\s0 ( Xai * Xbi ) ) ) / ( \s-1SUM\s0 ( Xai ** 2) + \s-1SUM\s0 ( Xbi **2 ) ) .PP \&\fIBinaryForm\fR: 2 * Nc / ( Na + Nb ) .PP \&\fISetTheoreticForm\fR: 2 * | SetIntersectionXaXb | / ( |Xa| + |Xb| ) = 2 * ( \s-1SUM\s0 ( \s-1MIN\s0 ( Xai, Xbi ) ) ) / ( \s-1SUM\s0 ( Xai ) + \s-1SUM\s0 ( Xbi ) ) .PP \&\fBSoergelDistance\fR: .PP \&\fIAlgebraicForm\fR: \s-1SUM\s0 ( \s-1ABS\s0 ( Xai \- Xbi ) ) / \s-1SUM\s0 ( \s-1MAX\s0 ( Xai, Xbi ) ) .PP \&\fIBinaryForm\fR: 1 \- Nc / ( Na + Nb \- Nc ) = ( Na + Nb \- 2 * Nc ) / ( Na + Nb \- Nc ) .PP \&\fISetTheoreticForm\fR: ( | SetDifferenceXaXb | \- | SetIntersectionXaXb | ) / | SetDifferenceXaXb | = ( \s-1SUM\s0 ( Xai ) + \s-1SUM\s0 ( Xbi ) \- 2 * ( \s-1SUM\s0 ( \s-1MIN\s0 ( Xai, Xbi ) ) ) ) / ( \s-1SUM\s0 ( Xai ) + \s-1SUM\s0 ( Xbi ) \- \s-1SUM\s0 ( \s-1MIN\s0 ( Xai, Xbi ) ) ) .PP \&\fBTanimotoSimilarity\fR: ( same as JaccardSimilarity) .PP \&\fIAlgebraicForm\fR: \s-1SUM\s0 ( Xai * Xbi ) / ( \s-1SUM\s0 ( Xai ** 2 ) + \s-1SUM\s0 ( Xbi ** 2 ) \- \s-1SUM\s0 ( Xai * Xbi ) ) .PP \&\fIBinaryForm\fR: Nc / ( ( Na \- Nc ) + ( Nb \- Nc ) + Nc ) = Nc / ( Na + Nb \- Nc ) .PP \&\fISetTheoreticForm\fR: | SetIntersectionXaXb | / | SetDifferenceXaXb | = \s-1SUM\s0 ( \s-1MIN\s0 ( Xai, Xbi ) ) / ( \s-1SUM\s0 ( Xai ) + \s-1SUM\s0 ( Xbi ) \- \s-1SUM\s0 ( \s-1MIN\s0 ( Xai, Xbi ) ) ) .SS "\s-1METHODS\s0" .IX Subsection "METHODS" .IP "\fBnew\fR" 4 .IX Item "new" .Vb 1 \& $FPVector = new Fingerprints::FingerprintsVector(%NamesAndValues); .Ve .Sp Using specified \fIFingerprintsVector\fR property names and values hash, \fBnew\fR method creates a new object and returns a reference to newly created \fBFingerprintsVectorsVector\fR object. By default, the following properties are initialized: .Sp .Vb 3 \& Type = \*(Aq\*(Aq \& @{Values} = () \& @{ValuesIDs} = () .Ve .Sp Examples: .Sp .Vb 7 \& $FPVector = new Fingerprints::FingerprintsVector(\*(AqType\*(Aq => \*(AqOrderedNumericalValues\*(Aq, \& \*(AqValues\*(Aq => [1, 2, 3, 4]); \& $FPVector = new Fingerprints::FingerprintsVector(\*(AqType\*(Aq => \*(AqNumericalValues\*(Aq, \& \*(AqValues\*(Aq => [10, 22, 33, 44], \& \*(AqValueIDs\*(Aq => [\*(AqID1\*(Aq, \*(AqID2\*(Aq, \*(AqID3\*(Aq, \*(AqID4\*(Aq]); \& $FPVector = new Fingerprints::FingerprintsVector(\*(AqType\*(Aq => \*(AqAlphaNumericalValues\*(Aq, \& \*(AqValues\*(Aq => [\*(Aqa1\*(Aq, 2, \*(Aqa3\*(Aq, 4]); .Ve .IP "\fBAddValueIDs\fR" 4 .IX Item "AddValueIDs" .Vb 2 \& $FingerprintsVector\->AddValueIDs($ValueIDsRef); \& $FingerprintsVector\->AddValueIDs(@ValueIDs); .Ve .Sp Adds specified \fIValueIDs\fR to \fIFingerprintsVector\fR and returns \fIFingerprintsVector\fR. .IP "\fBAddValues\fR" 4 .IX Item "AddValues" .Vb 3 \& $FingerprintsVector\->AddValues($ValuesRef); \& $FingerprintsVector\->AddValues(@Values); \& $FingerprintsVector\->AddValues($Vector); .Ve .Sp Adds specified \fIValues\fR to \fIFingerprintsVector\fR and returns \fIFingerprintsVector\fR. .IP "\fBCityBlockDistanceCoefficient\fR" 4 .IX Item "CityBlockDistanceCoefficient" .Vb 5 \& $Value = $FingerprintsVector\->CityBlockDistanceCoefficient( \& $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); \& $Value = Fingerprints::FingerprintsVector::CityBlockDistanceCoefficient( \& $FingerprintsVectorA, $FingerprintVectorB, \& [$CalculationMode, $SkipValuesCheck]); .Ve .Sp Returns value of \fICityBlock\fR distance coefficient between two \fIFingerprintsVectors\fR using optionally specified \fICalculationMode\fR and optional checking of vector values. .Sp Possible \fICalculationMode\fR values: \fIAlgebraicForm, BinaryForm or SetTheoreticForm\fR. Default \&\fICalculationMode\fR value: \fIAlgebraicForm\fR. Default \fISkipValuesCheck\fR value: \fI0\fR. .IP "\fBCosineSimilarityCoefficient\fR" 4 .IX Item "CosineSimilarityCoefficient" .Vb 5 \& $Value = $FingerprintsVector\->CosineSimilarityCoefficient( \& $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); \& $Value = Fingerprints::FingerprintsVector::CosineSimilarityCoefficient( \& $FingerprintsVectorA, $FingerprintVectorB, \& [$CalculationMode, $SkipValuesCheck]); .Ve .Sp Returns value of \fICosine\fR similarity coefficient between two \fIFingerprintsVectors\fR using optionally specified \fICalculationMode\fR and optional checking of vector values. .Sp Possible \fICalculationMode\fR values: \fIAlgebraicForm, BinaryForm or SetTheoreticForm\fR. Default \&\fICalculationMode\fR value: \fIAlgebraicForm\fR. Default \fISkipValuesCheck\fR value: \fI0\fR. .IP "\fBCzekanowskiSimilarityCoefficient\fR" 4 .IX Item "CzekanowskiSimilarityCoefficient" .Vb 5 \& $Value = $FingerprintsVector\->CzekanowskiSimilarityCoefficient( \& $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); \& $Value = Fingerprints::FingerprintsVector::CzekanowskiSimilarityCoefficient( \& $FingerprintsVectorA, $FingerprintVectorB, \& [$CalculationMode, $SkipValuesCheck]); .Ve .Sp Returns value of \fICzekanowski\fR similarity coefficient between two \fIFingerprintsVectors\fR using optionally specified \fICalculationMode\fR and optional checking of vector values. .Sp Possible \fICalculationMode\fR values: \fIAlgebraicForm, BinaryForm or SetTheoreticForm\fR. Default \&\fICalculationMode\fR value: \fIAlgebraicForm\fR. Default \fISkipValuesCheck\fR value: \fI0\fR. .IP "\fBDiceSimilarityCoefficient\fR" 4 .IX Item "DiceSimilarityCoefficient" .Vb 5 \& $Value = $FingerprintsVector\->DiceSimilarityCoefficient( \& $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); \& $Value = Fingerprints::FingerprintsVector::DiceSimilarityCoefficient( \& $FingerprintsVectorA, $FingerprintVectorB, \& [$CalculationMode, $SkipValuesCheck]); .Ve .Sp Returns value of \fIDice\fR similarity coefficient between two \fIFingerprintsVectors\fR using optionally specified \fICalculationMode\fR and optional checking of vector values. .Sp Possible \fICalculationMode\fR values: \fIAlgebraicForm, BinaryForm or SetTheoreticForm\fR. Default \&\fICalculationMode\fR value: \fIAlgebraicForm\fR. Default \fISkipValuesCheck\fR value: \fI0\fR. .IP "\fBEuclideanDistanceCoefficient\fR" 4 .IX Item "EuclideanDistanceCoefficient" .Vb 5 \& $Value = $FingerprintsVector\->EuclideanDistanceCoefficient( \& $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); \& $Value = Fingerprints::FingerprintsVector::EuclideanDistanceCoefficient( \& $FingerprintsVectorA, $FingerprintVectorB, \& [$CalculationMode, $SkipValuesCheck]); .Ve .Sp Returns value of \fIEuclidean\fR distance coefficient between two \fIFingerprintsVectors\fR using optionally specified \fICalculationMode\fR and optional checking of vector values. .Sp Possible \fICalculationMode\fR values: \fIAlgebraicForm, BinaryForm or SetTheoreticForm\fR. Default \&\fICalculationMode\fR value: \fIAlgebraicForm\fR. Default \fISkipValuesCheck\fR value: \fI0\fR. .IP "\fBGetDescription\fR" 4 .IX Item "GetDescription" .Vb 1 \& $Description = $FingerprintsVector\->GetDescription(); .Ve .Sp Returns a string containing description of fingerprints vector. .IP "\fBGetFingerprintsVectorString\fR" 4 .IX Item "GetFingerprintsVectorString" .Vb 1 \& $FPString = $FingerprintsVector\->GetFingerprintsVectorString($Format); .Ve .Sp Returns a \fBFingerprintsString\fR containing vector values and/or IDs in \fIFingerprintsVector\fR corresponding to specified \fIFormat\fR. .Sp Possible \fIFormat\fR values: \fIIDsAndValuesString, IDsAndValues, IDsAndValuesPairsString, IDsAndValuesPairs, ValuesAndIDsString, ValuesAndIDs, ValuesAndIDsPairsString, ValuesAndIDsPairs, ValueIDsString, ValueIDs, ValuesString, or Values\fR. .IP "\fBGetID\fR" 4 .IX Item "GetID" .Vb 1 \& $ID = $FingerprintsVector\->GetID(); .Ve .Sp Returns \fI\s-1ID\s0\fR of \fIFingerprintsVector\fR. .IP "\fBGetVectorType\fR" 4 .IX Item "GetVectorType" .Vb 1 \& $VectorType = $FingerprintsVector\->GetVectorType(); .Ve .Sp Returns \fIVectorType\fR of \fIFingerprintsVector\fR. .IP "\fBGetIDsAndValuesPairsString\fR" 4 .IX Item "GetIDsAndValuesPairsString" .Vb 1 \& $IDsValuesPairsString = $FingerprintsVector\->GetIDsAndValuesPairsString(); .Ve .Sp Returns \fIFingerprintsVector\fR value IDs and values as space delimited ID/value pair string. .IP "\fBGetIDsAndValuesString\fR" 4 .IX Item "GetIDsAndValuesString" .Vb 1 \& $IDsValuesString = $FingerprintsVector\->GetIDsAndValuesString(); .Ve .Sp Returns \fIFingerprintsVector\fR value IDs and values as string containing space delimited IDs followed by values with semicolon as IDs and values delimiter. .IP "\fBGetNumOfNonZeroValues\fR" 4 .IX Item "GetNumOfNonZeroValues" .Vb 1 \& $NumOfNonZeroValues = $FingerprintsVector\->GetNumOfNonZeroValues(); .Ve .Sp Returns number of non-zero values in \fIFingerprintsVector\fR. .IP "\fBGetNumOfValueIDs\fR" 4 .IX Item "GetNumOfValueIDs" .Vb 1 \& $NumOfValueIDs = $FingerprintsVector\->GetNumOfValueIDs(); .Ve .Sp Returns number of value IDs \fIFingerprintsVector\fR. .IP "\fBGetNumOfValues\fR" 4 .IX Item "GetNumOfValues" .Vb 1 \& $NumOfValues = $FingerprintsVector\->GetNumOfValues(); .Ve .Sp Returns number of values \fIFingerprintsVector\fR. .IP "\fBGetSupportedDistanceAndSimilarityCoefficients\fR" 4 .IX Item "GetSupportedDistanceAndSimilarityCoefficients" .Vb 2 \& @SupportedDistanceAndSimilarityCoefficientsReturn = \& Fingerprints::FingerprintsVector::GetSupportedDistanceAndSimilarityCoefficients(); .Ve .Sp Returns an array containing names of supported distance and similarity coefficients. .IP "\fBGetSupportedDistanceCoefficients\fR" 4 .IX Item "GetSupportedDistanceCoefficients" .Vb 2 \& @SupportedDistanceCoefficientsReturn = \& Fingerprints::FingerprintsVector::GetSupportedDistanceCoefficients(); .Ve .Sp Returns an array containing names of supported disyance coefficients. .IP "\fBGetSupportedSimilarityCoefficients\fR" 4 .IX Item "GetSupportedSimilarityCoefficients" .Vb 2 \& @SupportedSimilarityCoefficientsReturn = \& Fingerprints::FingerprintsVector::GetSupportedSimilarityCoefficients(); .Ve .Sp Returns an array containing names of supported similarity coefficients. .IP "\fBGetType\fR" 4 .IX Item "GetType" .Vb 1 \& $VectorType = $FingerprintsVector\->GetType(); .Ve .Sp Returns \fIFingerprintsVector\fR vector type. .IP "\fBGetValue\fR" 4 .IX Item "GetValue" .Vb 1 \& $Value = $FingerprintsVector\->GetValue($Index); .Ve .Sp Returns fingerprints vector \fBValue\fR specified using \fIIndex\fR starting at 0. .IP "\fBGetValueID\fR" 4 .IX Item "GetValueID" .Vb 1 \& $ValueID = $FingerprintsVector\->GetValueID(); .Ve .Sp Returns fingerprints vector \fBValueID\fR specified using \fIIndex\fR starting at 0. .IP "\fBGetValueIDs\fR" 4 .IX Item "GetValueIDs" .Vb 2 \& $ValueIDs = $FingerprintsVector\->GetValueIDs(); \& @ValueIDs = $FingerprintsVector\->GetValueIDs(); .Ve .Sp Returns fingerprints vector \fBValueIDs\fR as an array or reference to an array. .IP "\fBGetValueIDsString\fR" 4 .IX Item "GetValueIDsString" .Vb 1 \& $ValueIDsString = $FingerprintsVector\->GetValueIDsString(); .Ve .Sp Returns fingerprints vector \fBValueIDsString\fR with value IDs delimited by space. .IP "\fBGetValues\fR" 4 .IX Item "GetValues" .Vb 2 \& $ValuesRef = $FingerprintsVector\->GetValues(); \& @Values = $FingerprintsVector\->GetValues(); .Ve .Sp Returns fingerprints vector \fBValues\fR as an array or reference to an array. .IP "\fBGetValuesAndIDsPairsString\fR" 4 .IX Item "GetValuesAndIDsPairsString" .Vb 1 \& $ValuesIDsPairsString = $FingerprintsVector\->GetValuesAndIDsPairsString(); .Ve .Sp Returns \fIFingerprintsVector\fR value and value IDs as space delimited ID/value pair string. .IP "\fBGetValuesAndIDsString\fR" 4 .IX Item "GetValuesAndIDsString" .Vb 1 \& $ValuesIDsString = $FingerprintsVector\->GetValuesAndIDsString(); .Ve .Sp Returns \fIFingerprintsVector\fR values and value IDs as string containing space delimited IDs followed by values with semicolon as IDs and values delimiter. .IP "\fBGetValuesString\fR" 4 .IX Item "GetValuesString" .Vb 1 \& $Return = $FingerprintsVector\->GetValuesString(); .Ve .Sp Returns \fIFingerprintsVector\fR values as space delimited string. .IP "\fBHammingDistanceCoefficient\fR" 4 .IX Item "HammingDistanceCoefficient" .Vb 5 \& $Value = $FingerprintsVector\->HammingDistanceCoefficient( \& $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); \& $Value = Fingerprints::FingerprintsVector::HammingDistanceCoefficient( \& $FingerprintsVectorA, $FingerprintVectorB, \& [$CalculationMode, $SkipValuesCheck]); .Ve .Sp Returns value of \fIHamming\fR distance coefficient between two \fIFingerprintsVectors\fR using optionally specified \fICalculationMode\fR and optional checking of vector values. .Sp Possible \fICalculationMode\fR values: \fIAlgebraicForm, BinaryForm or SetTheoreticForm\fR. Default \&\fICalculationMode\fR value: \fIAlgebraicForm\fR. Default \fISkipValuesCheck\fR value: \fI0\fR. .IP "\fBIsFingerprintsVector\fR" 4 .IX Item "IsFingerprintsVector" .Vb 1 \& $Status = Fingerprints::FingerprintsVector::IsFingerprintsVector($Object); .Ve .Sp Returns 1 or 0 based on whether \fIObject\fR is a \fIFingerprintsVector\fR. .IP "\fBJaccardSimilarityCoefficient\fR" 4 .IX Item "JaccardSimilarityCoefficient" .Vb 5 \& $Value = $FingerprintsVector\->JaccardSimilarityCoefficient( \& $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); \& $Value = Fingerprints::FingerprintsVector::JaccardSimilarityCoefficient( \& $FingerprintsVectorA, $FingerprintVectorB, \& [$CalculationMode, $SkipValuesCheck]); .Ve .Sp Returns value of \fIJaccard\fR similarity coefficient between two \fIFingerprintsVectors\fR using optionally specified \fICalculationMode\fR and optional checking of vector values. .Sp Possible \fICalculationMode\fR values: \fIAlgebraicForm, BinaryForm or SetTheoreticForm\fR. Default \&\fICalculationMode\fR value: \fIAlgebraicForm\fR. Default \fISkipValuesCheck\fR value: \fI0\fR. .IP "\fBManhattanDistanceCoefficient\fR" 4 .IX Item "ManhattanDistanceCoefficient" .Vb 5 \& $Value = $FingerprintsVector\->ManhattanDistanceCoefficient( \& $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); \& $Value = Fingerprints::FingerprintsVector::ManhattanDistanceCoefficient( \& $FingerprintsVectorA, $FingerprintVectorB, \& [$CalculationMode, $SkipValuesCheck]); .Ve .Sp Returns value of \fIManhattan\fR distance coefficient between two \fIFingerprintsVectors\fR using optionally specified \fICalculationMode\fR and optional checking of vector values. .Sp Possible \fICalculationMode\fR values: \fIAlgebraicForm, BinaryForm or SetTheoreticForm\fR. Default \&\fICalculationMode\fR value: \fIAlgebraicForm\fR. Default \fISkipValuesCheck\fR value: \fI0\fR. .IP "\fBNewFromIDsAndValuesPairsString\fR" 4 .IX Item "NewFromIDsAndValuesPairsString" .Vb 4 \& $FingerprintsVector = $FingerprintsVector\->NewFromIDsAndValuesPairsString( \& $ValuesType, $IDsAndValuesPairsString); \& $FingerprintsVector = Fingerprints::FingerprintsVector::NewFromIDsAndValuesPairsString( \& $ValuesType, $IDsAndValuesPairsString); .Ve .Sp Creates a new \fIFingerprintsVector\fR of \fIValuesType\fR using \fIIDsAndValuesPairsString\fR containing space delimited value IDs and values pairs and returns new \fBFingerprintsVector\fR object. Possible \fIValuesType\fR values: \fIOrderedNumericalValues, NumericalValues, or AlphaNumericalValues\fR. .IP "\fBNewFromIDsAndValuesString\fR" 4 .IX Item "NewFromIDsAndValuesString" .Vb 4 \& $FingerprintsVector = $FingerprintsVector\->NewFromIDsAndValuesString( \& $ValuesType, $IDsAndValuesString); \& $FingerprintsVector = Fingerprints::FingerprintsVector::NewFromIDsAndValuesString( \& $ValuesType, $IDsAndValuesString); .Ve .Sp Creates a new \fIFingerprintsVector\fR of \fIValuesType\fR using \fIIDsAndValuesString\fR containing semicolon delimited value IDs string followed by values strings and returns new \fBFingerprintsVector\fR object. The values within value and value IDs tring are delimited by spaces. Possible \fIValuesType\fR values: \fIOrderedNumericalValues, NumericalValues, or AlphaNumericalValues\fR. .IP "\fBNewFromValuesAndIDsPairsString\fR" 4 .IX Item "NewFromValuesAndIDsPairsString" .Vb 4 \& $FingerprintsVector = $FingerprintsVector\->NewFromValuesAndIDsPairsString( \& $ValuesType, $ValuesAndIDsPairsString); \& $FingerprintsVector = Fingerprints::FingerprintsVector::NewFromValuesAndIDsPairsString( \& $ValuesType, $ValuesAndIDsPairsString); .Ve .Sp Creates a new \fIFingerprintsVector\fR of \fIValuesType\fR using \fIValuesAndIDsPairsString\fR containing space delimited value and value IDs pairs and returns new \fBFingerprintsVector\fR object. Possible \fIValuesType\fR values: \fIOrderedNumericalValues, NumericalValues, or AlphaNumericalValues\fR. .IP "\fBNewFromValuesAndIDsString\fR" 4 .IX Item "NewFromValuesAndIDsString" .Vb 4 \& $FingerprintsVector = $FingerprintsVector\->NewFromValuesAndIDsString( \& $ValuesType, $IDsAndValuesString); \& $FingerprintsVector = Fingerprints::FingerprintsVector::NewFromValuesAndIDsString( \& $ValuesType, $IDsAndValuesString); .Ve .Sp Creates a new \fIFingerprintsVector\fR of \fIValuesType\fR using \fIValuesAndIDsString\fR containing semicolon delimited values string followed by value IDs strings and returns new \fBFingerprintsVector\fR object. The values within values and value IDs tring are delimited by spaces. Possible \fIValuesType\fR values: \fIOrderedNumericalValues, NumericalValues, or AlphaNumericalValues\fR. .IP "\fBNewFromValuesString\fR" 4 .IX Item "NewFromValuesString" .Vb 4 \& $FingerprintsVector = $FingerprintsVector\->NewFromValuesString( \& $ValuesType, $ValuesString); \& $FingerprintsVector = Fingerprints::FingerprintsVector::NewFromValuesString( \& $ValuesType, $ValuesString); .Ve .Sp Creates a new \fIFingerprintsVector\fR of \fIValuesType\fR using \fIValuesString\fR containing space delimited values string and returns new \fBFingerprintsVector\fR object. The values within values and value IDs tring are delimited by spaces. Possible \fIValuesType\fR values: \fIOrderedNumericalValues, NumericalValues, or AlphaNumericalValues\fR. .IP "\fBOchiaiSimilarityCoefficient\fR" 4 .IX Item "OchiaiSimilarityCoefficient" .Vb 5 \& $Value = $FingerprintsVector\->OchiaiSimilarityCoefficient( \& $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); \& $Value = Fingerprints::FingerprintsVector::OchiaiSimilarityCoefficient( \& $FingerprintsVectorA, $FingerprintVectorB, \& [$CalculationMode, $SkipValuesCheck]); .Ve .Sp Returns value of \fIOchiai\fR similarity coefficient between two \fIFingerprintsVectors\fR using optionally specified \fICalculationMode\fR and optional checking of vector values. .Sp Possible \fICalculationMode\fR values: \fIAlgebraicForm, BinaryForm or SetTheoreticForm\fR. Default \&\fICalculationMode\fR value: \fIAlgebraicForm\fR. Default \fISkipValuesCheck\fR value: \fI0\fR. .IP "\fBSetDescription\fR" 4 .IX Item "SetDescription" .Vb 1 \& $FingerprintsVector\->SetDescription($Description); .Ve .Sp Sets \fIDescription\fR of fingerprints vector and returns \fIFingerprintsVector\fR. .IP "\fBSetID\fR" 4 .IX Item "SetID" .Vb 1 \& $FingerprintsVector\->SetID($ID); .Ve .Sp Sets \fI\s-1ID\s0\fR of fingerprints vector and returns \fIFingerprintsVector\fR. .IP "\fBSetVectorType\fR" 4 .IX Item "SetVectorType" .Vb 1 \& $FingerprintsVector\->SetVectorType($VectorType); .Ve .Sp Sets \fIVectorType\fR of fingerprints vector and returns \fIFingerprintsVector\fR. .IP "\fBSetType\fR" 4 .IX Item "SetType" .Vb 1 \& $FingerprintsVector\->SetType($Type); .Ve .Sp Sets \fIFingerprintsVector\fR values \fIType\fR and returns \fIFingerprintsVector\fR. Possible \fIType\fR values: \fIOrderedNumericalValues, NumericalValues, or AlphaNumericalValues\fR. .Sp During calculation of similarity and distance coefficients between two \fIFingerprintsVectors\fR, the following conditions apply to vector type, size, value and value IDs: .Sp .Vb 2 \& o For OrderedNumericalValues type, both vectors must be of the same size \& and contain similar types of numerical values in the same order. \& \& o For NumericalValues type, vector value IDs for both vectors must be \& specified; however, their size and order of IDs and numerical values may \& be different. For each vector, value IDs must correspond to vector values. \& \& o For AlphaNumericalValues type, vectors may contain both numerical and \& alphanumerical values and their sizes may be different. .Ve .IP "\fBSetValue\fR" 4 .IX Item "SetValue" .Vb 1 \& $FingerprintsVector\->SetValue($Index, $Value, [$SkipIndexCheck]); .Ve .Sp Sets a \fIFingerprintsVector\fR value specified by \fIIndex\fR starting at 0 to \fIValue\fR along with optional index range check and returns \fIFingerprintsVector\fR. .IP "\fBSetValueID\fR" 4 .IX Item "SetValueID" .Vb 1 \& $FingerprintsVector\->SetValueID($Index, $ValueID, [$SkipIndexCheck]); .Ve .Sp Sets a \fIFingerprintsVector\fR value \s-1ID\s0 specified by \fIIndex\fR starting at 0 to \fIValueID\fR along with optional index range check and returns \fIFingerprintsVector\fR. .IP "\fBSetValueIDs\fR" 4 .IX Item "SetValueIDs" .Vb 2 \& $FingerprintsVector\->SetValueIDs($ValueIDsRef); \& $FingerprintsVector\->SetValueIDs(@ValueIDs); .Ve .Sp Sets \fIFingerprintsVector\fR value IDs to specified \fIValueIDs\fR and returns \fIFingerprintsVector\fR. .IP "\fBSetValues\fR" 4 .IX Item "SetValues" .Vb 2 \& $FingerprintsVector\->SetValues($ValuesRef); \& $FingerprintsVector\->SetValues(@Values); .Ve .Sp Sets \fIFingerprintsVector\fR value to specified \fIValues\fR and returns \fIFingerprintsVector\fR. .IP "\fBSoergelDistanceCoefficient\fR" 4 .IX Item "SoergelDistanceCoefficient" .Vb 5 \& $Value = $FingerprintsVector\->SoergelDistanceCoefficient( \& $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); \& $Value = Fingerprints::FingerprintsVector::SoergelDistanceCoefficient( \& $FingerprintsVectorA, $FingerprintVectorB, \& [$CalculationMode, $SkipValuesCheck]); .Ve .Sp Returns value of \fISoergel\fR distance coefficient between two \fIFingerprintsVectors\fR using optionally specified \fICalculationMode\fR and optional checking of vector values. .Sp Possible \fICalculationMode\fR values: \fIAlgebraicForm, BinaryForm or SetTheoreticForm\fR. Default \&\fICalculationMode\fR value: \fIAlgebraicForm\fR. Default \fISkipValuesCheck\fR value: \fI0\fR. .IP "\fBSorensonSimilarityCoefficient\fR" 4 .IX Item "SorensonSimilarityCoefficient" .Vb 5 \& $Value = $FingerprintsVector\->SorensonSimilarityCoefficient( \& $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); \& $Value = Fingerprints::FingerprintsVector::SorensonSimilarityCoefficient( \& $FingerprintsVectorA, $FingerprintVectorB, \& [$CalculationMode, $SkipValuesCheck]); .Ve .Sp Returns value of \fISorenson\fR similarity coefficient between two \fIFingerprintsVectors\fR using optionally specified \fICalculationMode\fR and optional checking of vector values. .Sp Possible \fICalculationMode\fR values: \fIAlgebraicForm, BinaryForm or SetTheoreticForm\fR. Default \&\fICalculationMode\fR value: \fIAlgebraicForm\fR. Default \fISkipValuesCheck\fR value: \fI0\fR. .IP "\fBTanimotoSimilarityCoefficient\fR" 4 .IX Item "TanimotoSimilarityCoefficient" .Vb 5 \& $Value = $FingerprintsVector\->TanimotoSimilarityCoefficient( \& $OtherFingerprintVector, [$CalculationMode, $SkipValuesCheck]); \& $Value = Fingerprints::FingerprintsVector::TanimotoSimilarityCoefficient( \& $FingerprintsVectorA, $FingerprintVectorB, \& [$CalculationMode, $SkipValuesCheck]); .Ve .Sp Returns value of \fITanimoto\fR similarity coefficient between two \fIFingerprintsVectors\fR using optionally specified \fICalculationMode\fR and optional checking of vector values. .Sp Possible \fICalculationMode\fR values: \fIAlgebraicForm, BinaryForm or SetTheoreticForm\fR. Default \&\fICalculationMode\fR value: \fIAlgebraicForm\fR. Default \fISkipValuesCheck\fR value: \fI0\fR. .IP "\fBStringifyFingerprintsVector\fR" 4 .IX Item "StringifyFingerprintsVector" .Vb 1 \& $String = $FingerprintsVector\->StringifyFingerprintsVector(); .Ve .Sp Returns a string containing information about \fIFingerprintsVector\fR object. .SH "AUTHOR" .IX Header "AUTHOR" Manish Sud <msud@san.rr.com> .SH "SEE ALSO" .IX Header "SEE ALSO" BitVector.pm, FingerprintsStringUtil.pm, FingerprintsBitVector.pm, Vector.pm .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (C) 2015 Manish Sud. All rights reserved. .PP This file is part of MayaChemTools. .PP MayaChemTools is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.