diff mayachemtools/docs/modules/man3/FingerprintsBitVector.3 @ 0:73ae111cf86f draft

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 11:55:01 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mayachemtools/docs/modules/man3/FingerprintsBitVector.3	Wed Jan 20 11:55:01 2016 -0500
@@ -0,0 +1,739 @@
+.\" 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 "FINGERPRINTSBITVECTOR 1"
+.TH FINGERPRINTSBITVECTOR 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"
+FingerprintsBitVector
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+use Fingerprints::FingerprintsBitVector;
+.PP
+use Fingerprints::FingerprintsBitVector qw(:coefficients);
+.PP
+use Fingerprints::FingerprintsBitVector qw(:all);
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+\&\fBFingerprintsBitVector\fR class provides the following methods:
+.PP
+new, BaroniUrbaniSimilarityCoefficient, BuserSimilarityCoefficient,
+CosineSimilarityCoefficient, DennisSimilarityCoefficient,
+DiceSimilarityCoefficient, FoldFingerprintsBitVectorByDensity,
+FoldFingerprintsBitVectorBySize, ForbesSimilarityCoefficient,
+FossumSimilarityCoefficient, GetBitsAsBinaryString, GetBitsAsDecimalString,
+GetBitsAsHexadecimalString, GetBitsAsOctalString, GetBitsAsRawBinaryString,
+GetDescription, GetFingerprintsBitDensity, GetID, GetSpecifiedSize,
+GetSupportedSimilarityCoefficients, GetVectorType, HamannSimilarityCoefficient,
+IsFingerprintsBitVector, IsSubSet, JacardSimilarityCoefficient,
+Kulczynski1SimilarityCoefficient, Kulczynski2SimilarityCoefficient,
+MatchingSimilarityCoefficient, McConnaugheySimilarityCoefficient,
+NewFromBinaryString, NewFromDecimalString, NewFromHexadecimalString,
+NewFromOctalString, NewFromRawBinaryString, OchiaiSimilarityCoefficient,
+PearsonSimilarityCoefficient, RogersTanimotoSimilarityCoefficient,
+RussellRaoSimilarityCoefficient, SetDescription, SetID, SetSpecifiedSize,
+SetVectorType, SimpsonSimilarityCoefficient, SkoalSneath1SimilarityCoefficient,
+SkoalSneath2SimilarityCoefficient, SkoalSneath3SimilarityCoefficient,
+StringifyFingerprintsBitVector, TanimotoSimilarityCoefficient,
+TverskySimilarityCoefficient, WeightedTanimotoSimilarityCoefficient,
+WeightedTverskySimilarityCoefficient, YuleSimilarityCoefficient
+.PP
+The methods available to create fingerprints bit vector from strings and to calculate similarity
+coefficient between two bit vectors can also be invoked as class functions.
+.PP
+\&\fBFingerprintsBitVector\fR class is derived from \fBBitVector\fR class which provides the functionality
+to manipulate bits.
+.PP
+For two fingerprints bit vectors A and B of same size, let:
+.PP
+.Vb 4
+\&    Na = Number of bits set to "1" in A
+\&    Nb = Number of bits set to "1" in B
+\&    Nc = Number of bits set to "1" in both A and B
+\&    Nd = Number of bits set to "0" in both A and B
+\&
+\&    Nt = Number of bits set to "1" or "0" in A or B (Size of A or B)
+\&    Nt = Na + Nb \- Nc + Nd
+\&
+\&    Na \- Nc = Number of bits set to "1" in A but not in B
+\&    Nb \- Nc = Number of bits set to "1" in B but not in A
+.Ve
+.PP
+Then, various similarity coefficients [ Ref. 40 \- 42 ] for a pair of bit vectors A and B are
+defined as follows:
+.PP
+BaroniUrbani: ( \s-1SQRT\s0( Nc * Nd ) + Nc ) / (  \s-1SQRT\s0 ( Nc * Nd ) + Nc + ( Na \- Nc )  + ( Nb \- Nc ) ) ( same as Buser )
+.PP
+Buser: ( \s-1SQRT\s0 ( Nc * Nd ) + Nc ) / (  \s-1SQRT\s0 ( Nc * Nd ) + Nc + ( Na \- Nc )  + ( Nb \- Nc ) ) ( same as BaroniUrbani )
+.PP
+Cosine: Nc / \s-1SQRT\s0 ( Na * Nb ) (same as Ochiai)
+.PP
+Dice: (2 * Nc) / ( Na + Nb )
+.PP
+Dennis: ( Nc * Nd \- ( ( Na \- Nc ) * ( Nb \- Nc ) ) ) / \s-1SQRT\s0 ( Nt * Na * Nb)
+.PP
+Forbes: ( Nt * Nc ) / ( Na * Nb )
+.PP
+Fossum: ( Nt * ( ( Nc \- 1/2 ) ** 2 ) / ( Na * Nb )
+.PP
+Hamann: ( ( Nc + Nd ) \- ( Na \- Nc ) \- ( Nb \- Nc ) ) / Nt
+.PP
+Jaccard: Nc /  ( ( Na \- Nc) + ( Nb \- Nc ) + Nc ) = Nc / ( Na + Nb \- Nc ) (same as Tanimoto)
+.PP
+Kulczynski1: Nc / ( ( Na \- Nc ) + ( Nb \- Nc) ) = Nc / ( Na + Nb \- 2Nc )
+.PP
+Kulczynski2: ( ( Nc / 2 ) * ( 2 * Nc + ( Na \- Nc ) + ( Nb \- Nc) ) ) / ( ( Nc + ( Na \- Nc ) ) * ( Nc + ( Nb \- Nc ) ) )
+= 0.5 * ( Nc / Na + Nc / Nb )
+.PP
+Matching: ( Nc + Nd ) / Nt
+.PP
+McConnaughey: ( Nc ** 2 \- ( Na \- Nc ) * ( Nb \- Nc) ) / (  Na * Nb )
+.PP
+Ochiai: Nc / \s-1SQRT\s0 ( Na * Nb ) (same as Cosine)
+.PP
+Pearson: ( ( Nc * Nd ) \- ( ( Na \- Nc ) * ( Nb \- Nc ) ) / \s-1SQRT\s0 ( Na * Nb * (  Na \- Nc + Nd ) * ( Nb \- Nc + Nd ) )
+.PP
+RogersTanimoto: ( Nc + Nd ) / ( ( Na \- Nc)  + ( Nb  \- Nc) + Nt) = ( Nc + Nd ) / ( Na  + Nb  \- 2Nc + Nt)
+.PP
+RussellRao: Nc / Nt
+.PP
+Simpson: Nc / \s-1MIN\s0 ( Na, Nb)
+.PP
+SkoalSneath1: Nc / ( Nc + 2 * ( Na \- Nc)  + 2 * ( Nb \- Nc) ) = Nc / ( 2 * Na + 2 * Nb \- 3 * Nc )
+.PP
+SkoalSneath2: ( 2 * Nc + 2 * Nd ) / ( Nc + Nd + Nt )
+.PP
+SkoalSneath3: ( Nc + Nd ) / ( ( Na \- Nc ) + ( Nb \- Nc ) ) = ( Nc + Nd ) / ( Na + Nb \- 2 * Nc  )
+.PP
+Tanimoto: Nc /  ( ( Na \- Nc) + ( Nb \- Nc ) + Nc ) = Nc / ( Na + Nb \- Nc ) (same as Jaccard)
+.PP
+Tversky: Nc / ( alpha * ( Na \- Nc ) + ( 1 \- alpha) * ( Nb \- Nc) + Nc ) = Nc / ( alpha * ( Na \- Nb )  + Nb)
+.PP
+Yule: ( ( Nc * Nd ) \- ( ( Na \- Nc ) * ( Nb \- Nc ) ) ) / ( ( Nc * Nd ) + ( ( Na \- Nc ) * ( Nb \- Nc ) )  )
+.PP
+The values of Tanimoto/Jaccard and Tversky coefficients are dependent on only those bit which
+are set to \*(L"1\*(R" in both A and B. In order to take into account all bit positions, modified versions
+of Tanimoto [ Ref. 42 ] and Tversky [  Ref. 43 ] have been developed.
+.PP
+Let:
+.PP
+.Vb 3
+\&    Na\*(Aq = Number of bits set to "0" in A
+\&    Nb\*(Aq = Number of bits set to "0" in B
+\&    Nc\*(Aq = Number of bits set to "0" in both A and B
+.Ve
+.PP
+Tanimoto': Nc' /  ( ( Na' \- Nc') + ( Nb' \- Nc' ) + Nc' ) = Nc' / ( Na' + Nb' \- Nc' )
+.PP
+Tversky': Nc' / ( alpha * ( Na' \- Nc' ) + ( 1 \- alpha) * ( Nb' \- Nc' ) + Nc' ) = Nc' / ( alpha * ( Na' \- Nb' )  + Nb')
+.PP
+Then:
+.PP
+WeightedTanimoto = beta * Tanimoto + (1 \- beta) * Tanimoto'
+.PP
+WeightedTversky = beta * Tversky + (1 \- beta) * Tversky'
+.SS "\s-1METHODS\s0"
+.IX Subsection "METHODS"
+.IP "\fBnew\fR" 4
+.IX Item "new"
+.Vb 1
+\&    $NewFPBitVector = new Fingerprints::FingerprintsBitVector($Size);
+.Ve
+.Sp
+Creates a new \fIFingerprintsBitVector\fR object of size \fISize\fR and returns  newly created
+\&\fBFingerprintsBitVector\fR. Bit numbers range from 0 to 1 less than \fISize\fR.
+.IP "\fBBaroniUrbaniSimilarityCoefficient\fR" 4
+.IX Item "BaroniUrbaniSimilarityCoefficient"
+.Vb 5
+\&    $Value = $FingerprintsBitVector\->BaroniUrbaniSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::
+\&              BaroniUrbaniSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIBaroniUrbani\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBBuserSimilarityCoefficient\fR" 4
+.IX Item "BuserSimilarityCoefficient"
+.Vb 4
+\&    $Value = $FingerprintsBitVector\->BuserSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::BuserSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIBuser\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBCosineSimilarityCoefficient\fR" 4
+.IX Item "CosineSimilarityCoefficient"
+.Vb 4
+\&    $Value = $FingerprintsBitVector\->CosineSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::CosineSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fICosine\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBDennisSimilarityCoefficient\fR" 4
+.IX Item "DennisSimilarityCoefficient"
+.Vb 4
+\&    $Value = $FingerprintsBitVector\->DennisSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::DennisSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIDennis\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBDiceSimilarityCoefficient\fR" 4
+.IX Item "DiceSimilarityCoefficient"
+.Vb 4
+\&    $Value = $FingerprintsBitVector\->DiceSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::DiceSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIDice\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBFoldFingerprintsBitVectorByDensity\fR" 4
+.IX Item "FoldFingerprintsBitVectorByDensity"
+.Vb 1
+\&    $FingerprintsBitVector\->FoldFingerprintsBitVectorByDensity($Density);
+.Ve
+.Sp
+Folds \fIFingerprintsBitVector\fR by recursively reducing its size by half until bit density of set bits is
+greater than or equal to specified \fIDensity\fR and returns folded \fIFingerprintsBitVector\fR.
+.IP "\fBFoldFingerprintsBitVectorBySize\fR" 4
+.IX Item "FoldFingerprintsBitVectorBySize"
+.Vb 1
+\&    $FingerprintsBitVector\->FoldFingerprintsBitVectorBySize($Size);
+.Ve
+.Sp
+Folds \fIFingerprintsBitVector\fR by recursively reducing its size by half until size is less than or equal to
+specified \fISize\fR and returns folded \fIFingerprintsBitVector\fR.
+.IP "\fBForbesSimilarityCoefficient\fR" 4
+.IX Item "ForbesSimilarityCoefficient"
+.Vb 4
+\&    $Value = $FingerprintsBitVector\->ForbesSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::ForbesSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIForbes\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBFossumSimilarityCoefficient\fR" 4
+.IX Item "FossumSimilarityCoefficient"
+.Vb 4
+\&    $Value = $FingerprintsBitVector\->FossumSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::FossumSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIFossum\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBGetBitsAsBinaryString\fR" 4
+.IX Item "GetBitsAsBinaryString"
+.Vb 1
+\&    $BinaryASCIIString = $FingerprintsBitVector\->GetBitsAsBinaryString();
+.Ve
+.Sp
+Returns fingerprints as a binary \s-1ASCII\s0 string containing 0s and 1s.
+.IP "\fBGetBitsAsHexadecimalString\fR" 4
+.IX Item "GetBitsAsHexadecimalString"
+.Vb 1
+\&    $HexadecimalString = $FingerprintsBitVector\->GetBitsAsHexadecimalString();
+.Ve
+.Sp
+Returns fingerprints as a hexadecimal string.
+.IP "\fBGetBitsAsRawBinaryString\fR" 4
+.IX Item "GetBitsAsRawBinaryString"
+.Vb 1
+\&    $RawBinaryString = $FingerprintsBitVector\->GetBitsAsRawBinaryString();
+.Ve
+.Sp
+Returns fingerprints as a raw binary string containing packed bit values for each byte.
+.IP "\fBGetDescription\fR" 4
+.IX Item "GetDescription"
+.Vb 1
+\&    $Description = $FingerprintsBitVector\->GetDescription();
+.Ve
+.Sp
+Returns a string containing description of fingerprints bit vector.
+.IP "\fBGetFingerprintsBitDensity\fR" 4
+.IX Item "GetFingerprintsBitDensity"
+.Vb 1
+\&    $BitDensity = $FingerprintsBitVector\->GetFingerprintsBitDensity();
+.Ve
+.Sp
+Returns \fIBitDensity\fR of \fIFingerprintsBitVector\fR corresponding to bits set to 1s.
+.IP "\fBGetID\fR" 4
+.IX Item "GetID"
+.Vb 1
+\&    $ID = $FingerprintsBitVector\->GetID();
+.Ve
+.Sp
+Returns \fI\s-1ID\s0\fR of \fIFingerprintsBitVector\fR.
+.IP "\fBGetVectorType\fR" 4
+.IX Item "GetVectorType"
+.Vb 1
+\&    $VectorType = $FingerprintsBitVector\->GetVectorType();
+.Ve
+.Sp
+Returns \fIVectorType\fR of \fIFingerprintsBitVector\fR.
+.IP "\fBGetSpecifiedSize\fR" 4
+.IX Item "GetSpecifiedSize"
+.Vb 1
+\&    $Size = $FingerprintsBitVector\->GetSpecifiedSize();
+.Ve
+.Sp
+Returns value of specified size for bit vector.
+.IP "\fBGetSupportedSimilarityCoefficients\fR" 4
+.IX Item "GetSupportedSimilarityCoefficients"
+.Vb 2
+\&    @SimilarityCoefficient =
+\&       Fingerprints::FingerprintsBitVector::GetSupportedSimilarityCoefficients();
+.Ve
+.Sp
+Returns an array containing names of supported similarity coefficients.
+.IP "\fBHamannSimilarityCoefficient\fR" 4
+.IX Item "HamannSimilarityCoefficient"
+.Vb 4
+\&    $Value = $FingerprintsBitVector\->HamannSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::HamannSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIHamann\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBIsFingerprintsBitVector\fR" 4
+.IX Item "IsFingerprintsBitVector"
+.Vb 2
+\&    $Status = Fingerprints::FingerprintsBitVector::
+\&              IsFingerprintsBitVector($Object);
+.Ve
+.Sp
+Returns 1 or 0 based on whether \fIObject\fR is a \fBFingerprintsBitVector\fR object.
+.IP "\fBIsSubSet\fR" 4
+.IX Item "IsSubSet"
+.Vb 3
+\&    $Status = $FingerprintsBitVector\->IsSubSet($OtherFPBitVector);
+\&    $Status = Fingerprints::FingerprintsBitVector::IsSubSet(
+\&              $FPBitVectorA, $FPBitVectorB);
+.Ve
+.Sp
+Returns 1 or 0 based on whether first firngerprints bit vector is a subset of second
+fingerprints bit vector.
+.Sp
+For a bit vector to be a subset of another bit vector, both vectors must be of
+the same size and the bit positions set in first vector must also be set in the
+second bit vector.
+.IP "\fBJacardSimilarityCoefficient\fR" 4
+.IX Item "JacardSimilarityCoefficient"
+.Vb 4
+\&    $Value = $FingerprintsBitVector\->JacardSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::JacardSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIJacard\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBKulczynski1SimilarityCoefficient\fR" 4
+.IX Item "Kulczynski1SimilarityCoefficient"
+.Vb 5
+\&    $Value = $FingerprintsBitVector\->Kulczynski1SimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::
+\&              Kulczynski1SimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIKulczynski1\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBKulczynski2SimilarityCoefficient\fR" 4
+.IX Item "Kulczynski2SimilarityCoefficient"
+.Vb 5
+\&    $Value = $FingerprintsBitVector\->Kulczynski2SimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::
+\&              Kulczynski2SimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIKulczynski2\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBMatchingSimilarityCoefficient\fR" 4
+.IX Item "MatchingSimilarityCoefficient"
+.Vb 5
+\&    $Value = $FingerprintsBitVector\->MatchingSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::
+\&              MatchingSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIMatching\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBMcConnaugheySimilarityCoefficient\fR" 4
+.IX Item "McConnaugheySimilarityCoefficient"
+.Vb 5
+\&    $Value = $FingerprintsBitVector\->McConnaugheySimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::
+\&              McConnaugheySimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIMcConnaughey\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBNewFromBinaryString\fR" 4
+.IX Item "NewFromBinaryString"
+.Vb 4
+\&    $NewFPBitVector = $FingerprintsBitVector\->NewFromBinaryString(
+\&                      $BinaryString);
+\&    $NewFPBitVector = Fingerprints::FingerprintsBitVector::NewFromBinaryString(
+\&                      $BinaryString);
+.Ve
+.Sp
+Creates a new \fIFingerprintsBitVector\fR using \fIBinaryString\fR and returns new
+\&\fBFingerprintsBitVector\fR object.
+.IP "\fBNewFromHexadecimalString\fR" 4
+.IX Item "NewFromHexadecimalString"
+.Vb 5
+\&    $NewFPBitVector = $FingerprintsBitVector\->NewFromHexadecimalString(
+\&                      $HexdecimalString);
+\&    $NewFPBitVector = Fingerprints::FingerprintsBitVector::
+\&                    NewFromHexadecimalString(
+\&                      $HexdecimalString);
+.Ve
+.Sp
+Creates a new \fIFingerprintsBitVector\fR using \fIHexdecimalString\fR and returns new
+\&\fBFingerprintsBitVector\fR object.
+.IP "\fBNewFromRawBinaryString\fR" 4
+.IX Item "NewFromRawBinaryString"
+.Vb 5
+\&    $NewFPBitVector = $FingerprintsBitVector\->NewFromRawBinaryString(
+\&                      $RawBinaryString);
+\&    $NewFPBitVector = Fingerprints::FingerprintsBitVector::
+\&                      NewFromRawBinaryString(
+\&                      $RawBinaryString);
+.Ve
+.Sp
+Creates a new \fIFingerprintsBitVector\fR using \fIRawBinaryString\fR and returns new
+\&\fBFingerprintsBitVector\fR object.
+.IP "\fBOchiaiSimilarityCoefficient\fR" 4
+.IX Item "OchiaiSimilarityCoefficient"
+.Vb 4
+\&    $Value = $FingerprintsBitVector\->OchiaiSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::OchiaiSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIOchiai\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBPearsonSimilarityCoefficient\fR" 4
+.IX Item "PearsonSimilarityCoefficient"
+.Vb 4
+\&    $Value = $FingerprintsBitVector\->PearsonSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::PearsonSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIPearson\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBRogersTanimotoSimilarityCoefficient\fR" 4
+.IX Item "RogersTanimotoSimilarityCoefficient"
+.Vb 5
+\&    $Value = $FingerprintsBitVector\->RogersTanimotoSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::
+\&              RogersTanimotoSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIRogersTanimoto\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBRussellRaoSimilarityCoefficient\fR" 4
+.IX Item "RussellRaoSimilarityCoefficient"
+.Vb 5
+\&    $Value = $FingerprintsBitVector\->RussellRaoSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::
+\&              RussellRaoSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIRussellRao\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBSetSpecifiedSize\fR" 4
+.IX Item "SetSpecifiedSize"
+.Vb 1
+\&    $FingerprintsBitVector\->SetSpecifiedSize($Size);
+.Ve
+.Sp
+Sets specified size for fingerprints bit vector.
+.Sp
+Irrespective of specified size, Perl functions used to handle bit data in \fBBitVector\fR class
+automatically sets the size to the next nearest power of 2. \fISpecifiedSize\fR is used by
+\&\fBFingerprintsBitVector\fR class to process any aribitray size during similarity coefficient calculations.
+.IP "\fBSetDescription\fR" 4
+.IX Item "SetDescription"
+.Vb 1
+\&    $FingerprintsBitVector\->SetDescription($Description);
+.Ve
+.Sp
+Sets \fIDescription\fR of fingerprints bit vector and returns \fIFingerprintsBitVector\fR.
+.IP "\fBSetID\fR" 4
+.IX Item "SetID"
+.Vb 1
+\&    $FingerprintsBitVector\->SetID($ID);
+.Ve
+.Sp
+Sets \fI\s-1ID\s0\fR of fingerprints bit vector and returns \fIFingerprintsBitVector\fR.
+.IP "\fBSetVectorType\fR" 4
+.IX Item "SetVectorType"
+.Vb 1
+\&    $FingerprintsBitVector\->SetVectorType($VectorType);
+.Ve
+.Sp
+Sets \fIVectorType\fR of fingerprints bit vector and returns \fIFingerprintsBitVector\fR.
+.IP "\fBSimpsonSimilarityCoefficient\fR" 4
+.IX Item "SimpsonSimilarityCoefficient"
+.Vb 4
+\&    $Value = $FingerprintsBitVector\->SimpsonSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::SimpsonSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fISimpson\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBSkoalSneath1SimilarityCoefficient\fR" 4
+.IX Item "SkoalSneath1SimilarityCoefficient"
+.Vb 5
+\&    $Value = $FingerprintsBitVector\->SkoalSneath1SimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::
+\&              SkoalSneath1SimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fISkoalSneath1\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBSkoalSneath2SimilarityCoefficient\fR" 4
+.IX Item "SkoalSneath2SimilarityCoefficient"
+.Vb 5
+\&    $Value = $FingerprintsBitVector\->SkoalSneath2SimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::
+\&              SkoalSneath2SimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fISkoalSneath2\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBSkoalSneath3SimilarityCoefficient\fR" 4
+.IX Item "SkoalSneath3SimilarityCoefficient"
+.Vb 5
+\&    $Value = $FingerprintsBitVector\->SkoalSneath3SimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::
+\&              SkoalSneath3SimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fISkoalSneath3\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR
+.IP "\fBStringifyFingerprintsBitVector\fR" 4
+.IX Item "StringifyFingerprintsBitVector"
+.Vb 1
+\&    $String = $FingerprintsBitVector\->StringifyFingerprintsBitVector();
+.Ve
+.Sp
+Returns a string containing information about \fIFingerprintsBitVector\fR object.
+.IP "\fBTanimotoSimilarityCoefficient\fR" 4
+.IX Item "TanimotoSimilarityCoefficient"
+.Vb 5
+\&    $Value = $FingerprintsBitVector\->TanimotoSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::
+\&              TanimotoSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fITanimoto\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBTverskySimilarityCoefficient\fR" 4
+.IX Item "TverskySimilarityCoefficient"
+.Vb 5
+\&    $Value = $FingerprintsBitVector\->TverskySimilarityCoefficient(
+\&              $OtherFingerprintBitVector, $Alpha);
+\&    $Value = Fingerprints::FingerprintsBitVector::
+\&              TverskySimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB, $Alpha);
+.Ve
+.Sp
+Returns value of \fITversky\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBWeightedTanimotoSimilarityCoefficient\fR" 4
+.IX Item "WeightedTanimotoSimilarityCoefficient"
+.Vb 7
+\&    $Value =
+\&       $FingerprintsBitVector\->WeightedTanimotoSimilarityCoefficient(
+\&         $OtherFingerprintBitVector, $Beta);
+\&    $Value =
+\&       Fingerprints::FingerprintsBitVector::
+\&         WeightedTanimotoSimilarityCoefficient(
+\&         $FingerprintsBitVectorA, $FingerprintBitVectorB, $Beta);
+.Ve
+.Sp
+Returns value of \fIWeightedTanimoto\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBWeightedTverskySimilarityCoefficient\fR" 4
+.IX Item "WeightedTverskySimilarityCoefficient"
+.Vb 7
+\&    $Value =
+\&       $FingerprintsBitVector\->WeightedTverskySimilarityCoefficient(
+\&          $OtherFingerprintBitVector, $Alpha, $Beta);
+\&    $Value =
+\&      Fingerprints::FingerprintsBitVector::
+\&        WeightedTverskySimilarityCoefficient(
+\&        $FingerprintsBitVectorA, $FingerprintBitVectorB, $Alpha, $Beta);
+.Ve
+.Sp
+Returns value of \fIWeightedTversky\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.IP "\fBYuleSimilarityCoefficient\fR" 4
+.IX Item "YuleSimilarityCoefficient"
+.Vb 4
+\&    $Value = $FingerprintsBitVector\->YuleSimilarityCoefficient(
+\&              $OtherFingerprintBitVector);
+\&    $Value = Fingerprints::FingerprintsBitVector::YuleSimilarityCoefficient(
+\&              $FingerprintsBitVectorA, $FingerprintBitVectorB);
+.Ve
+.Sp
+Returns value of \fIYule\fR similarity coefficient between two same size \fIFingerprintsBitVectors\fR.
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Manish Sud <msud@san.rr.com>
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+BitVector.pm, FingerprintsStringUtil.pm, FingerprintsVector.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.