view mayachemtools/docs/modules/html/PathLengthFingerprints.html @ 0:73ae111cf86f draft

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 11:55:01 -0500
parents
children
line wrap: on
line source

<html>
<head>
<title>MayaChemTools:Documentation:Fingerprints::PathLengthFingerprints.pm</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../css/MayaChemTools.css">
</head>
<body leftmargin="20" rightmargin="20" topmargin="10" bottommargin="10">
<br/>
<center>
<a href="http://www.mayachemtools.org" title="MayaChemTools Home"><img src="../../images/MayaChemToolsLogo.gif" border="0" alt="MayaChemTools"></a>
</center>
<br/>
<div class="DocNav">
<table width="100%" border=0 cellpadding=0 cellspacing=2>
<tr align="left" valign="top"><td width="33%" align="left"><a href="./MACCSKeys.html" title="MACCSKeys.html">Previous</a>&nbsp;&nbsp;<a href="./index.html" title="Table of Contents">TOC</a>&nbsp;&nbsp;<a href="./TopologicalAtomPairsFingerprints.html" title="TopologicalAtomPairsFingerprints.html">Next</a></td><td width="34%" align="middle"><strong>Fingerprints::PathLengthFingerprints.pm</strong></td><td width="33%" align="right"><a href="././code/PathLengthFingerprints.html" title="View source code">Code</a>&nbsp;|&nbsp;<a href="./../pdf/PathLengthFingerprints.pdf" title="PDF US Letter Size">PDF</a>&nbsp;|&nbsp;<a href="./../pdfgreen/PathLengthFingerprints.pdf" title="PDF US Letter Size with narrow margins: www.changethemargins.com">PDFGreen</a>&nbsp;|&nbsp;<a href="./../pdfa4/PathLengthFingerprints.pdf" title="PDF A4 Size">PDFA4</a>&nbsp;|&nbsp;<a href="./../pdfa4green/PathLengthFingerprints.pdf" title="PDF A4 Size with narrow margins: www.changethemargins.com">PDFA4Green</a></td></tr>
</table>
</div>
<p>
</p>
<h2>NAME</h2>
<p>PathLengthFingerprints</p>
<p>
</p>
<h2>SYNOPSIS</h2>
<p>use Fingerprints::PathLengthFingerprints;</p>
<p>use Fingerprints::PathLengthFingerprints qw(:all);</p>
<p>
</p>
<h2>DESCRIPTION</h2>
<p><strong>PathLengthFingerprints</strong> class provides the following methods:</p>
<p> <a href="#new">new</a>, <a href="#generatefingerprints">GenerateFingerprints</a>, <a href="#getdescription">GetDescription</a>, <a href="#setatomidentifiertype">SetAtomIdentifierType</a>
, <a href="#setatomicinvariantstouse">SetAtomicInvariantsToUse</a>, <a href="#setfunctionalclassestouse">SetFunctionalClassesToUse</a>, <a href="#setmaxlength">SetMaxLength</a>
, <a href="#setminlength">SetMinLength</a>, <a href="#setnumofbitstosetperpath">SetNumOfBitsToSetPerPath</a>, <a href="#settype">SetType</a>
, <a href="#stringifypathlengthfingerprints">StringifyPathLengthFingerprints</a>
</p><p><strong>PathLengthFingerprints</strong> is derived from <strong>Fingerprints</strong> class which in turn
is  derived from <strong>ObjectProperty</strong> base class that provides methods not explicitly defined
in <strong>PathLengthFingerprints</strong>, <strong>Fingerprints</strong> or <strong>ObjectProperty</strong> classes using Perl's
AUTOLOAD functionality. These methods are generated on-the-fly for a specified object property:</p>
<div class="OptionsBox">
    Set&lt;PropertyName&gt;(&lt;PropertyValue&gt;);
<br/>    $PropertyValue = Get&lt;PropertyName&gt;();
<br/>    Delete&lt;PropertyName&gt;();</div>
<p>The current release of MayaChemTools supports generation of <strong>AtomTypesFingerpritns</strong>
corresponding to following <strong>AtomtomIdentifierTypes</strong>:</p>
<div class="OptionsBox">
    AtomicInvariantsAtomTypes, DREIDINGAtomTypes, EStateAtomTypes,
<br/>    FunctionalClassAtomTypes, MMFF94AtomTypes, SLogPAtomTypes,
<br/>    SYBYLAtomTypes, TPSAAtomTypes, UFFAtomTypes</div>
<p>Based on the values specified for <strong>Type</strong>, <strong>AtomtomIdentifierTypes</strong>, <strong>MinPathLength</strong> and
<strong>MaxPathLength</strong>, all appropriate atom paths are generated for each atom in the molecule
and collected in a list and the list is filtered to remove any structurally duplicate paths as
indicated by the value of <strong>UseUniquePaths</strong>.</p>
<p>For molecules containing rings, atom paths starting from each atom can be traversed in four
different ways:</p>
<div class="OptionsBox">
    o Atom paths without any rings and sharing of bonds in traversed paths.
<br/>    o Atom paths containing rings and without any sharing of bonds in
      traversed paths
<br/>    o All possible atom paths without any rings and sharing of bonds in
      traversed paths
<br/>    o All possible atom paths containing rings and with sharing of bonds in
      traversed paths.</div>
<p>Atom path traversal is terminated at the last ring atom. For molecules containing no rings,
first two and last two types described above are equivalent.</p>
<p><strong>AllowSharedBonds</strong> and <strong>AllowRings</strong> allow generation of different types of paths
to be used for fingerprints generation.</p>
<p>The combination of <strong>AllowSharedBonds</strong>, <strong>AllowRings</strong>, and <strong>UseBondSymbols</strong> allows generation of
8 different types of path length fingerprints:</p>
<div class="OptionsBox">
    AllowSharedBonds AllowRings UseBondSymbols</div>
<div class="OptionsBox">
    0                0          1   - AtomPathsNoCyclesWithBondSymbols
<br/>    0                1          1   - AtomPathsWithCyclesWithBondSymbols</div>
<div class="OptionsBox">
    1                0          1   - AllAtomPathsNoCyclesWithBondSymbols
<br/>    1                1          1   - AllAtomPathsWithCyclesWithBondSymbols
                                      [ DEFAULT ]</div>
<div class="OptionsBox">
    0                0          0   - AtomPathsNoCyclesNoBondSymbols
<br/>    0                1          0   - AtomPathsWithCyclesNoBondSymbols</div>
<div class="OptionsBox">
    1                0          0   - AllAtomPathsNoCyclesNoBondSymbols
<br/>    1                1          0   - AllAtomPathsWithCyclesNoWithBondSymbols</div>
<p>Additionally, possible values for option <strong>--AtomIdentifierType</strong> in conjunction with corresponding
specified values for <strong>AtomicInvariantsToUse</strong> and <strong>FunctionalClassesToUse </strong> changes the nature
of atom path length strings and the fingerprints.</p>
<p>For each atom path in the filtered atom paths list, an atom path string is created using value of
<strong>AtomIdentifierType</strong> and specified values to use for a particular atom identifier type.
Value of <strong>UseBondSymbols</strong> controls whether bond order symbols are used during generation
of atom path string. Atom symbol corresponds to element symbol and characters used to represent
 bond order are: <em>1 - None; 2 - '='; 3 - '#'; 1.5 or aromatic - ':'; others: bond order value</em>. By default,
bond symbols are included in atom path strings. Exclusion of bond symbols in atom path strings
results in fingerprints which correspond purely to atom paths without considering bonds.</p>
<p><strong>UseUniquePaths</strong> controls the removal of structurally duplicate atom path strings are removed
from the list.</p>
<p>For <em>PathLengthBits</em> value of <strong>Type</strong>, each atom path is hashed to a 32 bit unsigned
integer key using <strong>TextUtil::HashCode</strong> function. Using the hash key as a seed for a random number
generator, a random integer value between 0 and <strong>Size</strong> is used to set corresponding bits
in the fingerprint bit-vector string. Value of <strong>NumOfBitsToSetPerPaths</strong> option controls the number
of time a random number is generated to set corresponding bits.</p>
<p>For <em> PathLengthCount</em> value of <strong>Type</strong>n, the number of times an atom path appears
is tracked and a fingerprints count-string corresponding to count of atom paths is generated.</p>
<p>The current release of MayaChemTools generates the following types of path length
fingerprints bit-vector and vector strings:</p>
<div class="OptionsBox">
    FingerprintsBitVector;PathLengthBits:AtomicInvariantsAtomTypes:MinLeng
<br/>    th1:MaxLength8;1024;BinaryString;Ascending;001000010011010101011000110
<br/>    0100010101011000101001011100110001000010001001101000001001001001001000
<br/>    0010110100000111001001000001001010100100100000000011000000101001011100
<br/>    0010000001000101010100000100111100110111011011011000000010110111001101
<br/>    0101100011000000010001000011000010100011101100001000001000100000000...</div>
<div class="OptionsBox">
    FingerprintsBitVector;PathLengthBits:AtomicInvariantsAtomTypes:MinLeng
<br/>    th1:MaxLength8;1024;HexadecimalString;Ascending;48caa1315d82d91122b029
<br/>    42861c9409a4208182d12015509767bd0867653604481a8b1288000056090583603078
<br/>    9cedae54e26596889ab121309800900490515224208421502120a0dd9200509723ae89
<br/>    00024181b86c0122821d4e4880c38620dab280824b455404009f082003d52c212b4e6d
<br/>    6ea05280140069c780290c43</div>
<div class="OptionsBox">
    FingerprintsVector;PathLengthCount:AtomicInvariantsAtomTypes:MinLength
<br/>    1:MaxLength8;432;NumericalValues;IDsAndValuesPairsString;C.X1.BO1.H3 2
<br/>    C.X2.BO2.H2 4 C.X2.BO3.H1 14 C.X3.BO3.H1 3 C.X3.BO4 10 F.X1.BO1 1 N.X
<br/>    2.BO2.H1 1 N.X3.BO3 1 O.X1.BO1.H1 3 O.X1.BO2 2 C.X1.BO1.H3C.X3.BO3.H1
<br/>    2 C.X2.BO2.H2C.X2.BO2.H2 1 C.X2.BO2.H2C.X3.BO3.H1 4 C.X2.BO2.H2C.X3.BO
<br/>    4 1 C.X2.BO2.H2N.X3.BO3 1 C.X2.BO3.H1:C.X2.BO3.H1 10 C.X2.BO3.H1:C....</div>
<div class="OptionsBox">
    FingerprintsVector;PathLengthCount:DREIDINGAtomTypes:MinLength1:MaxLen
<br/>    gth8;410;NumericalValues;IDsAndValuesPairsString;C_2 2 C_3 9 C_R 22 F_
<br/>    1 N_3 1 N_R 1 O_2 2 O_3 3 C_2=O_2 2 C_2C_3 1 C_2C_R 1 C_2N_3 1 C_2O_3
<br/>    1 C_3C_3 7 C_3C_R 1 C_3N_R 1 C_3O_3 2 C_R:C_R 21 C_R:N_R 2 C_RC_R 2 C
<br/>    _RF_ 1 C_RN_3 1 C_2C_3C_3 1 C_2C_R:C_R 2 C_2N_3C_R 1 C_3C_2=O_2 1 C_3C
<br/>    _2O_3 1 C_3C_3C_3 5 C_3C_3C_R 2 C_3C_3N_R 1 C_3C_3O_3 4 C_3C_R:C_R ...</div>
<div class="OptionsBox">
    FingerprintsVector;PathLengthCount:EStateAtomTypes:MinLength1:MaxLengt
<br/>    h8;454;NumericalValues;IDsAndValuesPairsString;aaCH 14 aasC 8 aasN 1 d
<br/>    O 2 dssC 2 sCH3 2 sF 1 sOH 3 ssCH2 4 ssNH 1 sssCH 3 aaCH:aaCH 10 aaCH:
<br/>    aasC 8 aasC:aasC 3 aasC:aasN 2 aasCaasC 2 aasCdssC 1 aasCsF 1 aasCssNH
<br/>    1 aasCsssCH 1 aasNssCH2 1 dO=dssC 2 dssCsOH 1 dssCssCH2 1 dssCssNH 1
<br/>    sCH3sssCH 2 sOHsssCH 2 ssCH2ssCH2 1 ssCH2sssCH 4 aaCH:aaCH:aaCH 6 a...</div>
<div class="OptionsBox">
    FingerprintsVector;PathLengthCount:FunctionalClassAtomTypes:MinLength1
<br/>    :MaxLength8;404;NumericalValues;IDsAndValuesPairsString;Ar 22 Ar.HBA 1
<br/>    HBA 2 HBA.HBD 3 HBD 1 Hal 1 NI 1 None 10 Ar.HBA:Ar 2 Ar.HBANone 1 Ar:
<br/>    Ar 21 ArAr 2 ArHBD 1 ArHal 1 ArNone 2 HBA.HBDNI 1 HBA.HBDNone 2 HBA=NI
<br/>    1 HBA=None 1 HBDNone 1 NINone 1 NoneNone 7 Ar.HBA:Ar:Ar 2 Ar.HBA:ArAr
<br/>    1 Ar.HBA:ArNone 1 Ar.HBANoneNone 1 Ar:Ar.HBA:Ar 1 Ar:Ar.HBANone 2 ...</div>
<div class="OptionsBox">
    FingerprintsVector;PathLengthCount:MMFF94AtomTypes:MinLength1:MaxLengt
<br/>    h8;463;NumericalValues;IDsAndValuesPairsString;C5A 2 C5B 2 C=ON 1 CB 1
<br/>    8 COO 1 CR 9 F 1 N5 1 NC=O 1 O=CN 1 O=CO 1 OC=O 1 OR 2 C5A:C5B 2 C5A:N
<br/>    5 2 C5ACB 1 C5ACR 1 C5B:C5B 1 C5BC=ON 1 C5BCB 1 C=ON=O=CN 1 C=ONNC=O 1
<br/>    CB:CB 18 CBF 1 CBNC=O 1 COO=O=CO 1 COOCR 1 COOOC=O 1 CRCR 7 CRN5 1 CR
<br/>    OR 2 C5A:C5B:C5B 2 C5A:C5BC=ON 1 C5A:C5BCB 1 C5A:N5:C5A 1 C5A:N5CR ...</div>
<div class="OptionsBox">
    FingerprintsVector;PathLengthCount:SLogPAtomTypes:MinLength1:MaxLength
<br/>    8;518;NumericalValues;IDsAndValuesPairsString;C1 5 C10 1 C11 1 C14 1 C
<br/>    18 14 C20 4 C21 2 C22 1 C5 2 CS 2 F 1 N11 1 N4 1 O10 1 O2 3 O9 1 C10C1
<br/>    1 C10N11 1 C11C1 2 C11C21 1 C14:C18 2 C14F 1 C18:C18 10 C18:C20 4 C18
<br/>    :C22 2 C1C5 1 C1CS 4 C20:C20 1 C20:C21 1 C20:N11 1 C20C20 2 C21:C21 1
<br/>    C21:N11 1 C21C5 1 C22N4 1 C5=O10 1 C5=O9 1 C5N4 1 C5O2 1 CSO2 2 C10...</div>
<div class="OptionsBox">
    FingerprintsVector;PathLengthCount:SYBYLAtomTypes:MinLength1:MaxLength
<br/>    8;412;NumericalValues;IDsAndValuesPairsString;C.2 2 C.3 9 C.ar 22 F 1
<br/>    N.am 1 N.ar 1 O.2 1 O.3 2 O.co2 2 C.2=O.2 1 C.2=O.co2 1 C.2C.3 1 C.2C.
<br/>    ar 1 C.2N.am 1 C.2O.co2 1 C.3C.3 7 C.3C.ar 1 C.3N.ar 1 C.3O.3 2 C.ar:C
<br/>    .ar 21 C.ar:N.ar 2 C.arC.ar 2 C.arF 1 C.arN.am 1 C.2C.3C.3 1 C.2C.ar:C
<br/>    .ar 2 C.2N.amC.ar 1 C.3C.2=O.co2 1 C.3C.2O.co2 1 C.3C.3C.3 5 C.3C.3...</div>
<div class="OptionsBox">
    FingerprintsVector;PathLengthCount:TPSAAtomTypes:MinLength1:MaxLength8
<br/>    ;331;NumericalValues;IDsAndValuesPairsString;N21 1 N7 1 None 34 O3 2 O
<br/>    4 3 N21:None 2 N21None 1 N7None 2 None:None 21 None=O3 2 NoneNone 13 N
<br/>    oneO4 3 N21:None:None 2 N21:NoneNone 2 N21NoneNone 1 N7None:None 2 N7N
<br/>    one=O3 1 N7NoneNone 1 None:N21:None 1 None:N21None 2 None:None:None 20
<br/>    None:NoneNone 12 NoneN7None 1 NoneNone=O3 2 NoneNoneNone 8 NoneNon...</div>
<div class="OptionsBox">
    FingerprintsVector;PathLengthCount:UFFAtomTypes:MinLength1:MaxLength8;
<br/>    410;NumericalValues;IDsAndValuesPairsString;C_2 2 C_3 9 C_R 22 F_ 1 N_
<br/>    3 1 N_R 1 O_2 2 O_3 3 C_2=O_2 2 C_2C_3 1 C_2C_R 1 C_2N_3 1 C_2O_3 1 C_
<br/>    3C_3 7 C_3C_R 1 C_3N_R 1 C_3O_3 2 C_R:C_R 21 C_R:N_R 2 C_RC_R 2 C_RF_
<br/>    1 C_RN_3 1 C_2C_3C_3 1 C_2C_R:C_R 2 C_2N_3C_R 1 C_3C_2=O_2 1 C_3C_2O_3
<br/>    1 C_3C_3C_3 5 C_3C_3C_R 2 C_3C_3N_R 1 C_3C_3O_3 4 C_3C_R:C_R 1 C_3...</div>
<p>
</p>
<h2>METHODS</h2>
<dl>
<dt><strong><a name="new" class="item"><strong>new</strong></a></strong></dt>
<dd>
<div class="OptionsBox">
    $NewPathLengthFingerprints = new PathLengthFingerprints(
                                                   %NamesAndValues);</div>
<p>Using specified <em>PathLengthFingerprints</em> property names and values hash, <strong>new</strong> method creates a new object
and returns a reference to newly created <strong>PathLengthFingerprints</strong> object. By default, the following properties are
initialized:</p>
<div class="OptionsBox">
    Molecule = '';
<br/>    Type = ''
<br/>    Size = 1024
<br/>    MinSize = 32
<br/>    MaxSize = 2**32
<br/>    NumOfBitsToSetPerPath = 1
<br/>    MinLength = 1
<br/>    MaxLength = 8
<br/>    AllowSharedBonds = 1
<br/>    AllowRings = 1
<br/>    UseBondSymbols = 1
<br/>    UseUniquePaths = ''
<br/>    AtomIdentifierType = ''
<br/>    SetAtomicInvariantsToUse = ['AS']
<br/>    FunctionalClassesToUse = ['HBD', 'HBA', 'PI', 'NI', 'Ar', 'Hal']</div>
<p>Examples:</p>
<div class="OptionsBox">
    $PathLengthFingerprints = new PathLengthFingerprints(
                              'Molecule' =&gt; $Molecule,
                               'Type' =&gt; 'PathLengthBits',
                               'AtomIdentifierType' =
                                              'AtomicInvariantsAtomTypes');</div>
<div class="OptionsBox">
    $PathLengthFingerprints = new PathLengthFingerprints(
                               'Molecule' =&gt; $Molecule,
                               'Type' =&gt; 'PathLengthBits',
                               'Size' =&gt; 1024,
                               'MinLength' =&gt; 1,
                               'MaxLength' =&gt; 8,
                               'AllowRings' =&gt; 1,
                               'AllowSharedBonds' =&gt; 1,
                               'UseBondSymbols' =&gt; 1,
                               'UseUniquePaths' =&gt; 1,
                               'AtomIdentifierType' =
                                              'AtomicInvariantsAtomTypes',
                               'AtomicInvariantsToUse' =&gt; ['AS']);</div>
<div class="OptionsBox">
    $PathLengthFingerprints = new PathLengthFingerprints(
                               'Molecule' =&gt; $Molecule,
                               'Type' =&gt; 'PathLengthCount',
                               'MinLength' =&gt; 1,
                               'MaxLength' =&gt; 8,
                               'AllowRings' =&gt; 1,
                               'AllowSharedBonds' =&gt; 1,
                               'UseBondSymbols' =&gt; 1,
                               'UseUniquePaths' =&gt; 1,
                               'AtomIdentifierType' =&gt;
                                              'AtomicInvariantsAtomTypes',
                               'AtomicInvariantsToUse' =&gt; ['AS']);</div>
<div class="OptionsBox">
    $PathLengthFingerprints = new PathLengthFingerprints(
                              'Molecule' =&gt; $Molecule,
                               'Type' =&gt; 'PathLengthBits',
                               'AtomIdentifierType' =
                                              'SLogPAtomTypes');</div>
<div class="OptionsBox">
    $PathLengthFingerprints = new PathLengthFingerprints(
                              'Molecule' =&gt; $Molecule,
                               'Type' =&gt; 'PathLengthCount',
                               'AtomIdentifierType' =
                                              'SYBYLAtomTypes');</div>
<div class="OptionsBox">
    $PathLengthFingerprints = new PathLengthFingerprints(
                               'Molecule' =&gt; $Molecule,
                               'Type' =&gt; 'PathLengthBits',
                               'AtomIdentifierType' =
                                              'FunctionalClassAtomTypes',
                               'FunctionalClassesToUse' =&gt; ['HBD', 'HBA', 'Ar']);</div>
<div class="OptionsBox">
    $PathLengthFingerprints-&gt;GenerateFingerprints();
<br/>    print &quot;$PathLengthFingerprints\n&quot;;</div>
</dd>
<dt><strong><a name="getdescription" class="item"><strong>GetDescription</strong></a></strong></dt>
<dd>
<div class="OptionsBox">
    $Description = $PathLengthFingerprints-&gt;GetDescription();</div>
<p>Returns a string containing description of path length fingerprints.</p>
</dd>
<dt><strong><a name="generatefingerprints" class="item"><strong>GenerateFingerprints</strong></a></strong></dt>
<dd>
<div class="OptionsBox">
    $PathLengthFingerprints-&gt;GenerateFingerprints();</div>
<p>Generates path length fingerprints and returns <em>PathLengthFingerprints</em>.</p>
</dd>
<dt><strong><a name="setmaxlength" class="item"><strong>SetMaxLength</strong></a></strong></dt>
<dd>
<div class="OptionsBox">
    $PathLengthFingerprints-&gt;SetMaxLength($Length);</div>
<p>Sets maximum value of atom path length to be used during atom path length fingerprints
generation and returns <em>PathLengthFingerprints</em></p>
</dd>
<dt><strong><a name="setatomidentifiertype" class="item"><strong>SetAtomIdentifierType</strong></a></strong></dt>
<dd>
<div class="OptionsBox">
    $PathLengthFingerprints-&gt;SetAtomIdentifierType();</div>
<p>Sets atom <em>IdentifierType</em> to use during path length fingerprints generation and
returns <em>PathLengthFingerprints</em>.</p>
<p>Possible values: <em>AtomicInvariantsAtomTypes, DREIDINGAtomTypes, EStateAtomTypes,
FunctionalClassAtomTypes, MMFF94AtomTypes, SLogPAtomTypes, SYBYLAtomTypes,
TPSAAtomTypes, UFFAtomTypes</em>.</p>
</dd>
<dt><strong><a name="setatomicinvariantstouse" class="item"><strong>SetAtomicInvariantsToUse</strong></a></strong></dt>
<dd>
<div class="OptionsBox">
    $PathLengthFingerprints-&gt;SetAtomicInvariantsToUse($ValuesRef);
<br/>    $PathLengthFingerprints-&gt;SetAtomicInvariantsToUse(@Values);</div>
<p>Sets atomic invariants to use during <em>AtomicInvariantsAtomTypes</em> value of <em>AtomIdentifierType</em>
for path length fingerprints generation and returns <em>PathLengthFingerprints</em>.</p>
<p>Possible values for atomic invariants are: <em>AS, X, BO,  LBO, SB, DB, TB,
H, Ar, RA, FC, MN, SM</em>. Default value: <em>AS</em>.</p>
<p>The atomic invariants abbreviations correspond to:</p>
<div class="OptionsBox">
    AS = Atom symbol corresponding to element symbol</div>
<div class="OptionsBox">
    X&lt;n&gt;   = Number of non-hydrogen atom neighbors or heavy atoms
<br/>    BO&lt;n&gt; = Sum of bond orders to non-hydrogen atom neighbors or heavy atoms
<br/>    LBO&lt;n&gt; = Largest bond order of non-hydrogen atom neighbors or heavy atoms
<br/>    SB&lt;n&gt; = Number of single bonds to non-hydrogen atom neighbors or heavy atoms
<br/>    DB&lt;n&gt; = Number of double bonds to non-hydrogen atom neighbors or heavy atoms
<br/>    TB&lt;n&gt; = Number of triple bonds to non-hydrogen atom neighbors or heavy atoms
<br/>    H&lt;n&gt;   = Number of implicit and explicit hydrogens for atom
<br/>    Ar     = Aromatic annotation indicating whether atom is aromatic
<br/>    RA     = Ring atom annotation indicating whether atom is a ring
<br/>    FC&lt;+n/-n&gt; = Formal charge assigned to atom
<br/>    MN&lt;n&gt; = Mass number indicating isotope other than most abundant isotope
<br/>    SM&lt;n&gt; = Spin multiplicity of atom. Possible values: 1 (singlet), 2 (doublet) or
            3 (triplet)</div>
<p>Atom type generated by AtomTypes::AtomicInvariantsAtomTypes class corresponds to:</p>
<div class="OptionsBox">
    AS.X&lt;n&gt;.BO&lt;n&gt;.LBO&lt;n&gt;.&lt;SB&gt;&lt;n&gt;.&lt;DB&gt;&lt;n&gt;.&lt;TB&gt;&lt;n&gt;.H&lt;n&gt;.Ar.RA.FC&lt;+n/-n&gt;.MN&lt;n&gt;.SM&lt;n&gt;</div>
<p>Except for AS which is a required atomic invariant in atom types, all other atomic invariants are
optional. Atom type specification doesn't include atomic invariants with zero or undefined values.</p>
<p>In addition to usage of abbreviations for specifying atomic invariants, the following descriptive words
are also allowed:</p>
<div class="OptionsBox">
    X : NumOfNonHydrogenAtomNeighbors or NumOfHeavyAtomNeighbors
<br/>    BO : SumOfBondOrdersToNonHydrogenAtoms or SumOfBondOrdersToHeavyAtoms
<br/>    LBO : LargestBondOrderToNonHydrogenAtoms or LargestBondOrderToHeavyAtoms
<br/>    SB :  NumOfSingleBondsToNonHydrogenAtoms or NumOfSingleBondsToHeavyAtoms
<br/>    DB : NumOfDoubleBondsToNonHydrogenAtoms or NumOfDoubleBondsToHeavyAtoms
<br/>    TB : NumOfTripleBondsToNonHydrogenAtoms or NumOfTripleBondsToHeavyAtoms
<br/>    H :  NumOfImplicitAndExplicitHydrogens
<br/>    Ar : Aromatic
<br/>    RA : RingAtom
<br/>    FC : FormalCharge
<br/>    MN : MassNumber
<br/>    SM : SpinMultiplicity</div>
<p><em>AtomTypes::AtomicInvariantsAtomTypes</em> module is used to assign atomic invariant
atom types.</p>
</dd>
<dt><strong><a name="setfunctionalclassestouse" class="item"><strong>SetFunctionalClassesToUse</strong></a></strong></dt>
<dd>
<div class="OptionsBox">
    $PathLengthFingerprints-&gt;SetFunctionalClassesToUse($ValuesRef);
<br/>    $PathLengthFingerprints-&gt;SetFunctionalClassesToUse(@Values);</div>
<p>Sets functional classes invariants to use during <em>FunctionalClassAtomTypes</em> value of <em>AtomIdentifierType</em>
for path length fingerprints generation and returns <em>PathLengthFingerprints</em>.</p>
<p>Possible values for atom functional classes are: <em>Ar, CA, H, HBA, HBD, Hal, NI, PI, RA</em>.
Default value [ Ref 24 ]: <em>HBD,HBA,PI,NI,Ar,Hal</em>.</p>
<p>The functional class abbreviations correspond to:</p>
<div class="OptionsBox">
    HBD: HydrogenBondDonor
<br/>    HBA: HydrogenBondAcceptor
<br/>    PI :  PositivelyIonizable
<br/>    NI : NegativelyIonizable
<br/>    Ar : Aromatic
<br/>    Hal : Halogen
<br/>    H : Hydrophobic
<br/>    RA : RingAtom
<br/>    CA : ChainAtom</div>
<div class="OptionsBox">
 Functional class atom type specification for an atom corresponds to:</div>
<div class="OptionsBox">
    Ar.CA.H.HBA.HBD.Hal.NI.PI.RA or None</div>
<p><em>AtomTypes::FunctionalClassAtomTypes</em> module is used to assign functional class atom
types. It uses following definitions [ Ref 60-61, Ref 65-66 ]:</p>
<div class="OptionsBox">
    HydrogenBondDonor: NH, NH2, OH
<br/>    HydrogenBondAcceptor: N[!H], O
<br/>    PositivelyIonizable: +, NH2
<br/>    NegativelyIonizable: -, C(=O)OH, S(=O)OH, P(=O)OH</div>
</dd>
<dt><strong><a name="setminlength" class="item"><strong>SetMinLength</strong></a></strong></dt>
<dd>
<div class="OptionsBox">
    $PathLengthFingerprints-&gt;SetMinLength($Length);</div>
<p>Sets minimum value of atom path length to be used during atom path length fingerprints
generation and returns <em>PathLengthFingerprints</em>.</p>
</dd>
<dt><strong><a name="setmaxlength2" class="item"><strong>SetMaxLength</strong></a></strong></dt>
<dd>
<div class="OptionsBox">
    $PathLengthFingerprints-&gt;SetMaxLength($Length);</div>
<p>Sets maximum value of atom path length to be used during atom path length fingerprints
generation and returns <em>PathLengthFingerprints</em>.</p>
</dd>
<dt><strong><a name="setnumofbitstosetperpath" class="item"><strong>SetNumOfBitsToSetPerPath</strong></a></strong></dt>
<dd>
<div class="OptionsBox">
    $PathLengthFingerprints-&gt;SetNumOfBitsToSetPerPath($NumOfBits);</div>
<p>Sets number of bits to set for each path during <em>PathLengthBits</em> <strong>Type </strong> during path length fingerprints
generation and returns <em>PathLengthFingerprints</em>.</p>
</dd>
<dt><strong><a name="settype" class="item"><strong>SetType</strong></a></strong></dt>
<dd>
<div class="OptionsBox">
    $PathLengthFingerprints-&gt;SetType($Type);</div>
<p>Sets type of path length fingerprints and returns <em>PathLengthFingerprints</em>. Possible values:
<em>PathLengthBits or PathLengthCount</em>.</p>
</dd>
<dt><strong><a name="stringifypathlengthfingerprints" class="item"><strong>StringifyPathLengthFingerprints</strong></a></strong></dt>
<dd>
<div class="OptionsBox">
    $String = $PathLengthFingerprints-&gt;StringifyPathLengthFingerprints();</div>
<p>Returns a string containing information about <em>PathLengthFingerprints</em> object.</p>
</dd>
</dl>
<p>
</p>
<h2>AUTHOR</h2>
<p><a href="mailto:msud@san.rr.com">Manish Sud</a></p>
<p>
</p>
<h2>SEE ALSO</h2>
<p><a href="./Fingerprints.html">Fingerprints.pm</a>,&nbsp<a href="./FingerprintsStringUtil.html">FingerprintsStringUtil.pm</a>,&nbsp<a href="./AtomNeighborhoodsFingerprints.html">AtomNeighborhoodsFingerprints.pm</a>,&nbsp
<a href="./AtomTypesFingerprints.html">AtomTypesFingerprints.pm</a>,&nbsp<a href="./EStateIndiciesFingerprints.html">EStateIndiciesFingerprints.pm</a>,&nbsp<a href="./ExtendedConnectivityFingerprints.html">ExtendedConnectivityFingerprints.pm</a>,&nbsp
<a href="./MACCSKeys.html">MACCSKeys.pm</a>,&nbsp<a href="./TopologicalAtomPairsFingerprints.html">TopologicalAtomPairsFingerprints.pm</a>,&nbsp<a href="./TopologicalAtomTripletsFingerprints.html">TopologicalAtomTripletsFingerprints.pm</a>,&nbsp
<a href="./TopologicalAtomTorsionsFingerprints.html">TopologicalAtomTorsionsFingerprints.pm</a>,&nbsp<a href="./TopologicalPharmacophoreAtomPairsFingerprints.html">TopologicalPharmacophoreAtomPairsFingerprints.pm</a>,&nbsp
<a href="./TopologicalPharmacophoreAtomTripletsFingerprints.html">TopologicalPharmacophoreAtomTripletsFingerprints.pm</a>
</p>
<p>
</p>
<h2>COPYRIGHT</h2>
<p>Copyright (C) 2015 Manish Sud. All rights reserved.</p>
<p>This file is part of MayaChemTools.</p>
<p>MayaChemTools is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your option)
any later version.</p>
<p>&nbsp</p><p>&nbsp</p><div class="DocNav">
<table width="100%" border=0 cellpadding=0 cellspacing=2>
<tr align="left" valign="top"><td width="33%" align="left"><a href="./MACCSKeys.html" title="MACCSKeys.html">Previous</a>&nbsp;&nbsp;<a href="./index.html" title="Table of Contents">TOC</a>&nbsp;&nbsp;<a href="./TopologicalAtomPairsFingerprints.html" title="TopologicalAtomPairsFingerprints.html">Next</a></td><td width="34%" align="middle"><strong>March 29, 2015</strong></td><td width="33%" align="right"><strong>Fingerprints::PathLengthFingerprints.pm</strong></td></tr>
</table>
</div>
<br />
<center>
<img src="../../images/h2o2.png">
</center>
</body>
</html>