| 0 | 1 <html> | 
|  | 2 <head> | 
|  | 3 <title>MayaChemTools:Documentation:FileIO::FingerprintsSDFileIO.pm</title> | 
|  | 4 <meta http-equiv="content-type" content="text/html;charset=utf-8"> | 
|  | 5 <link rel="stylesheet" type="text/css" href="../../css/MayaChemTools.css"> | 
|  | 6 </head> | 
|  | 7 <body leftmargin="20" rightmargin="20" topmargin="10" bottommargin="10"> | 
|  | 8 <br/> | 
|  | 9 <center> | 
|  | 10 <a href="http://www.mayachemtools.org" title="MayaChemTools Home"><img src="../../images/MayaChemToolsLogo.gif" border="0" alt="MayaChemTools"></a> | 
|  | 11 </center> | 
|  | 12 <br/> | 
|  | 13 <div class="DocNav"> | 
|  | 14 <table width="100%" border=0 cellpadding=0 cellspacing=2> | 
|  | 15 <tr align="left" valign="top"><td width="33%" align="left"><a href="./FingerprintsFPFileIO.html" title="FingerprintsFPFileIO.html">Previous</a>  <a href="./index.html" title="Table of Contents">TOC</a>  <a href="./FingerprintsTextFileIO.html" title="FingerprintsTextFileIO.html">Next</a></td><td width="34%" align="middle"><strong>FileIO::FingerprintsSDFileIO.pm</strong></td><td width="33%" align="right"><a href="././code/FingerprintsSDFileIO.html" title="View source code">Code</a> | <a href="./../pdf/FingerprintsSDFileIO.pdf" title="PDF US Letter Size">PDF</a> | <a href="./../pdfgreen/FingerprintsSDFileIO.pdf" title="PDF US Letter Size with narrow margins: www.changethemargins.com">PDFGreen</a> | <a href="./../pdfa4/FingerprintsSDFileIO.pdf" title="PDF A4 Size">PDFA4</a> | <a href="./../pdfa4green/FingerprintsSDFileIO.pdf" title="PDF A4 Size with narrow margins: www.changethemargins.com">PDFA4Green</a></td></tr> | 
|  | 16 </table> | 
|  | 17 </div> | 
|  | 18 <p> | 
|  | 19 </p> | 
|  | 20 <h2>NAME</h2> | 
|  | 21 <p>FingerprintsSDFileIO</p> | 
|  | 22 <p> | 
|  | 23 </p> | 
|  | 24 <h2>SYNOPSIS</h2> | 
|  | 25 <p>use FileIO::FingerprintsSDFileIO;</p> | 
|  | 26 <p>use FileIO::FingerprintsSDFileIO qw(:all);</p> | 
|  | 27 <p> | 
|  | 28 </p> | 
|  | 29 <h2>DESCRIPTION</h2> | 
|  | 30 <p><strong>FingerprintsSDFileIO</strong> class provides the following methods:</p> | 
|  | 31 <p> <a href="#new">new</a>, <a href="#getcompoundstring">GetCompoundString</a>, <a href="#getfingerprints">GetFingerprints</a>, <a href="#getfingerprintsstring">GetFingerprintsString</a> | 
|  | 32 , <a href="#isfingerprintsdatavalid">IsFingerprintsDataValid</a>, <a href="#isfingerprintsfiledatavalid">IsFingerprintsFileDataValid</a>, <a href="#isfingerprintssdfile">IsFingerprintsSDFile</a>, <a href="#next">Next</a> | 
|  | 33 , <a href="#read">Read</a>, <a href="#setbitstringformat">SetBitStringFormat</a>, <a href="#setbitsorder">SetBitsOrder</a>, <a href="#setcompoundidmode">SetCompoundIDMode</a>, <a href="#setcompoundstring">SetCompoundString</a> | 
|  | 34 , <a href="#setdetaillevel">SetDetailLevel</a>, <a href="#setfingerprints">SetFingerprints</a>, <a href="#setfingerprintsstring">SetFingerprintsString</a>, <a href="#setfingerprintsstringmode">SetFingerprintsStringMode</a> | 
|  | 35 , <a href="#setvectorstringformat">SetVectorStringFormat</a>, <a href="#writefingerprints">WriteFingerprints</a>, <a href="#writefingerprintsstring">WriteFingerprintsString</a> | 
|  | 36 </p><p>The following methods can also be used as functions:</p> | 
|  | 37 <p>IsFingerprintsSDFile</p> | 
|  | 38 <p><strong>FingerprintsSDFileIO</strong> class is derived from <em>FileIO</em> class and uses its methods to support | 
|  | 39 generic file related functionality.</p> | 
|  | 40 <p>The fingerprints SD file format with <strong>.sdf</strong> or <strong>.sd</strong> file extensions supports two types of | 
|  | 41 fingerprints string data: fingerprints bit-vectors and fingerprints vector strings. The fingerprints | 
|  | 42 string data is treated as value of a fingerprints data field label in a SD file.</p> | 
|  | 43 <p>Example of SD file format containing fingerprints string data:</p> | 
|  | 44 <div class="OptionsBox"> | 
|  | 45     ... ... | 
|  | 46 <br/>    ... ... | 
|  | 47 <br/>    $$$$ | 
|  | 48 <br/>    ... ... | 
|  | 49 <br/>    ... ... | 
|  | 50 <br/>    ... ... | 
|  | 51 <br/>    41 44  0  0  0  0  0  0  0  0999 V2000 | 
|  | 52      -3.3652    1.4499    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0 | 
|  | 53 <br/>    ... ... | 
|  | 54 <br/>    2  3  1  0  0  0  0 | 
|  | 55 <br/>    ... ... | 
|  | 56 <br/>    M  END | 
|  | 57 <br/>    >  <CmpdID> | 
|  | 58 <br/>    Test</div> | 
|  | 59 <div class="OptionsBox"> | 
|  | 60     >  <PathLengthFingerprints> | 
|  | 61 <br/>    FingerprintsBitVector;PathLengthBits:AtomicInvariantsAtomTypes:MinLengt | 
|  | 62 <br/>    h1:MaxLength8;1024;HexadecimalString;Ascending;9c8460989ec8a49913991a66 | 
|  | 63 <br/>    03130b0a19e8051c89184414953800cc2151082844a201042800130860308e8204d4028 | 
|  | 64 <br/>    00831048940e44281c00060449a5000ac80c894114e006321264401600846c050164462 | 
|  | 65 <br/>    08190410805000304a10205b0100e04c0038ba0fad0209c0ca8b1200012268b61c0026a | 
|  | 66 <br/>    aa0660a11014a011d46</div> | 
|  | 67 <div class="OptionsBox"> | 
|  | 68     $$$$ | 
|  | 69 <br/>    ... ... | 
|  | 70 <br/>    ... ...</div> | 
|  | 71 <p>The current release of MayaChemTools supports the following types of fingerprint | 
|  | 72 bit-vector and vector strings:</p> | 
|  | 73 <div class="OptionsBox"> | 
|  | 74     FingerprintsVector;AtomNeighborhoods:AtomicInvariantsAtomTypes:MinRadi | 
|  | 75 <br/>    us0:MaxRadius2;41;AlphaNumericalValues;ValuesString;NR0-C.X1.BO1.H3-AT | 
|  | 76 <br/>    C1:NR1-C.X3.BO3.H1-ATC1:NR2-C.X1.BO1.H3-ATC1:NR2-C.X3.BO4-ATC1 NR0-C.X | 
|  | 77 <br/>    1.BO1.H3-ATC1:NR1-C.X3.BO3.H1-ATC1:NR2-C.X1.BO1.H3-ATC1:NR2-C.X3.BO4-A | 
|  | 78 <br/>    TC1 NR0-C.X2.BO2.H2-ATC1:NR1-C.X2.BO2.H2-ATC1:NR1-C.X3.BO3.H1-ATC1:NR2 | 
|  | 79 <br/>    -C.X2.BO2.H2-ATC1:NR2-N.X3.BO3-ATC1:NR2-O.X1.BO1.H1-ATC1 NR0-C.X2.B...</div> | 
|  | 80 <div class="OptionsBox"> | 
|  | 81     FingerprintsVector;AtomTypesCount:AtomicInvariantsAtomTypes:ArbitraryS | 
|  | 82 <br/>    ize;10;NumericalValues;IDsAndValuesString;C.X1.BO1.H3 C.X2.BO2.H2 C.X2 | 
|  | 83 <br/>    .BO3.H1 C.X3.BO3.H1 C.X3.BO4 F.X1.BO1 N.X2.BO2.H1 N.X3.BO3 O.X1.BO1.H1 | 
|  | 84 <br/>    O.X1.BO2;2 4 14 3 10 1 1 1 3 2</div> | 
|  | 85 <div class="OptionsBox"> | 
|  | 86     FingerprintsVector;AtomTypesCount:SLogPAtomTypes:ArbitrarySize;16;Nume | 
|  | 87 <br/>    ricalValues;IDsAndValuesString;C1 C10 C11 C14 C18 C20 C21 C22 C5 CS F | 
|  | 88 <br/>    N11 N4 O10 O2 O9;5 1 1 1 14 4 2 1 2 2 1 1 1 1 3 1</div> | 
|  | 89 <div class="OptionsBox"> | 
|  | 90     FingerprintsVector;AtomTypesCount:SLogPAtomTypes:FixedSize;67;OrderedN | 
|  | 91 <br/>    umericalValues;IDsAndValuesString;C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C | 
|  | 92 <br/>    12 C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 C23 C24 C25 C26 C27 CS N1 N | 
|  | 93 <br/>    2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13 N14 NS O1 O2 O3 O4 O5 O6 O7 O8 | 
|  | 94 <br/>    O9 O10 O11 O12 OS F Cl Br I Hal P S1 S2 S3 Me1 Me2;5 0 0 0 2 0 0 0 0 1 | 
|  | 95 <br/>    1 0 0 1 0 0 0 14 0 4 2 1 0 0 0 0 0 2 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0...</div> | 
|  | 96 <div class="OptionsBox"> | 
|  | 97     FingerprintsVector;EStateIndicies:ArbitrarySize;11;NumericalValues;IDs | 
|  | 98 <br/>    AndValuesString;SaaCH SaasC SaasN SdO SdssC SsCH3 SsF SsOH SssCH2 SssN | 
|  | 99 <br/>    H SsssCH;24.778 4.387 1.993 25.023 -1.435 3.975 14.006 29.759 -0.073 3 | 
|  | 100 <br/>    .024 -2.270</div> | 
|  | 101 <div class="OptionsBox"> | 
|  | 102     FingerprintsVector;EStateIndicies:FixedSize;87;OrderedNumericalValues; | 
|  | 103 <br/>    ValuesString;0 0 0 0 0 0 0 3.975 0 -0.073 0 0 24.778 -2.270 0 0 -1.435 | 
|  | 104 <br/>    4.387 0 0 0 0 0 0 3.024 0 0 0 0 0 0 0 1.993 0 29.759 25.023 0 0 0 0 1 | 
|  | 105 <br/>    4.006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 
|  | 106 <br/>    0 0 0 0 0 0 0 0 0 0 0 0 0 0</div> | 
|  | 107 <div class="OptionsBox"> | 
|  | 108     FingerprintsVector;ExtendedConnectivity:AtomicInvariantsAtomTypes:Radi | 
|  | 109 <br/>    us2;60;AlphaNumericalValues;ValuesString;73555770 333564680 352413391 | 
|  | 110 <br/>    666191900 1001270906 1371674323 1481469939 1977749791 2006158649 21414 | 
|  | 111 <br/>    08799 49532520 64643108 79385615 96062769 273726379 564565671 85514103 | 
|  | 112 <br/>    5 906706094 988546669 1018231313 1032696425 1197507444 1331250018 1338 | 
|  | 113 <br/>    532734 1455473691 1607485225 1609687129 1631614296 1670251330 17303...</div> | 
|  | 114 <div class="OptionsBox"> | 
|  | 115     FingerprintsVector;ExtendedConnectivityCount:AtomicInvariantsAtomTypes | 
|  | 116 <br/>    :Radius2;60;NumericalValues;IDsAndValuesString;73555770 333564680 3524 | 
|  | 117 <br/>    13391 666191900 1001270906 1371674323 1481469939 1977749791 2006158649 | 
|  | 118 <br/>    2141408799 49532520 64643108 79385615 96062769 273726379 564565671...; | 
|  | 119 <br/>    3 2 1 1 14 1 2 10 4 3 1 1 1 1 2 1 2 1 1 1 2 3 1 1 2 1 3 3 8 2 2 2 6 2 | 
|  | 120 <br/>    1 2 1 1 2 1 1 1 2 1 1 2 1 2 1 1 1 1 1 1 1 1 1 2 1 1</div> | 
|  | 121 <div class="OptionsBox"> | 
|  | 122     FingerprintsBitVector;ExtendedConnectivityBits:AtomicInvariantsAtomTyp | 
|  | 123 <br/>    es:Radius2;1024;BinaryString;Ascending;0000000000000000000000000000100 | 
|  | 124 <br/>    0000000001010000000110000011000000000000100000000000000000000000100001 | 
|  | 125 <br/>    1000000110000000000000000000000000010011000000000000000000000000010000 | 
|  | 126 <br/>    0000000000000000000000000010000000000000000001000000000000000000000000 | 
|  | 127 <br/>    0000000000010000100001000000000000101000000000000000100000000000000...</div> | 
|  | 128 <div class="OptionsBox"> | 
|  | 129     FingerprintsVector;ExtendedConnectivity:FunctionalClassAtomTypes:Radiu | 
|  | 130 <br/>    s2;57;AlphaNumericalValues;ValuesString;24769214 508787397 850393286 8 | 
|  | 131 <br/>    62102353 981185303 1231636850 1649386610 1941540674 263599683 32920567 | 
|  | 132 <br/>    1 571109041 639579325 683993318 723853089 810600886 885767127 90326012 | 
|  | 133 <br/>    7 958841485 981022393 1126908698 1152248391 1317567065 1421489994 1455 | 
|  | 134 <br/>    632544 1557272891 1826413669 1983319256 2015750777 2029559552 20404...</div> | 
|  | 135 <div class="OptionsBox"> | 
|  | 136     FingerprintsVector;ExtendedConnectivity:EStateAtomTypes:Radius2;62;Alp | 
|  | 137 <br/>    haNumericalValues;ValuesString;25189973 528584866 662581668 671034184 | 
|  | 138 <br/>    926543080 1347067490 1738510057 1759600920 2034425745 2097234755 21450 | 
|  | 139 <br/>    44754 96779665 180364292 341712110 345278822 386540408 387387308 50430 | 
|  | 140 <br/>    1706 617094135 771528807 957666640 997798220 1158349170 1291258082 134 | 
|  | 141 <br/>    1138533 1395329837 1420277211 1479584608 1486476397 1487556246 1566...</div> | 
|  | 142 <div class="OptionsBox"> | 
|  | 143     FingerprintsBitVector;MACCSKeyBits;166;BinaryString;Ascending;00000000 | 
|  | 144 <br/>    0000000000000000000000000000000001001000010010000000010010000000011100 | 
|  | 145 <br/>    0100101010111100011011000100110110000011011110100110111111111111011111 | 
|  | 146 <br/>    11111111111110111000</div> | 
|  | 147 <div class="OptionsBox"> | 
|  | 148     FingerprintsBitVector;MACCSKeyBits;322;BinaryString;Ascending;11101011 | 
|  | 149 <br/>    1110011111100101111111000111101100110000000000000011100010000000000000 | 
|  | 150 <br/>    0000000000000000000000000000000000000000000000101000000000000000000000 | 
|  | 151 <br/>    0000000000000000000000000000000000000000000000000000000000000000000000 | 
|  | 152 <br/>    0000000000000000000000000000000000000011000000000000000000000000000000 | 
|  | 153 <br/>    0000000000000000000000000000000000000000</div> | 
|  | 154 <div class="OptionsBox"> | 
|  | 155     FingerprintsVector;MACCSKeyCount;166;OrderedNumericalValues;ValuesStri | 
|  | 156 <br/>    ng;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 
|  | 157 <br/>    0 0 0 0 0 0 0 1 0 0 3 0 0 0 0 4 0 0 2 0 0 0 0 0 0 0 0 2 0 0 2 0 0 0 0 | 
|  | 158 <br/>    0 0 0 0 1 1 8 0 0 0 1 0 0 1 0 1 0 1 0 3 1 3 1 0 0 0 1 2 0 11 1 0 0 0 | 
|  | 159 <br/>    5 0 0 1 2 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 4 0 0 1 1 0 4 6 1 1 1 2 1 1 | 
|  | 160 <br/>    3 5 2 2 0 5 3 5 1 1 2 5 1 2 1 2 4 8 3 5 5 2 2 0 3 5 4 1</div> | 
|  | 161 <div class="OptionsBox"> | 
|  | 162     FingerprintsVector;MACCSKeyCount;322;OrderedNumericalValues;ValuesStri | 
|  | 163 <br/>    ng;14 8 2 0 2 0 4 4 2 1 4 0 0 2 5 10 5 2 1 0 0 2 0 5 13 3 28 5 5 3 0 0 | 
|  | 164 <br/>    0 4 2 1 1 0 1 1 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22 5 3 0 0 0 1 0 | 
|  | 165 <br/>    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 
|  | 166 <br/>    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 0 2 0 0 0 0 0 0 0 0 0 | 
|  | 167 <br/>    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...</div> | 
|  | 168 <div class="OptionsBox"> | 
|  | 169     FingerprintsBitVector;PathLengthBits:AtomicInvariantsAtomTypes:MinLeng | 
|  | 170 <br/>    th1:MaxLength8;1024;BinaryString;Ascending;001000010011010101011000110 | 
|  | 171 <br/>    0100010101011000101001011100110001000010001001101000001001001001001000 | 
|  | 172 <br/>    0010110100000111001001000001001010100100100000000011000000101001011100 | 
|  | 173 <br/>    0010000001000101010100000100111100110111011011011000000010110111001101 | 
|  | 174 <br/>    0101100011000000010001000011000010100011101100001000001000100000000...</div> | 
|  | 175 <div class="OptionsBox"> | 
|  | 176     FingerprintsVector;PathLengthCount:AtomicInvariantsAtomTypes:MinLength | 
|  | 177 <br/>    1:MaxLength8;432;NumericalValues;IDsAndValuesPairsString;C.X1.BO1.H3 2 | 
|  | 178 <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 | 
|  | 179 <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 | 
|  | 180 <br/>    2 C.X2.BO2.H2C.X2.BO2.H2 1 C.X2.BO2.H2C.X3.BO3.H1 4 C.X2.BO2.H2C.X3.BO | 
|  | 181 <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> | 
|  | 182 <div class="OptionsBox"> | 
|  | 183     FingerprintsVector;PathLengthCount:MMFF94AtomTypes:MinLength1:MaxLengt | 
|  | 184 <br/>    h8;463;NumericalValues;IDsAndValuesPairsString;C5A 2 C5B 2 C=ON 1 CB 1 | 
|  | 185 <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 | 
|  | 186 <br/>    5 2 C5ACB 1 C5ACR 1 C5B:C5B 1 C5BC=ON 1 C5BCB 1 C=ON=O=CN 1 C=ONNC=O 1 | 
|  | 187 <br/>    CB:CB 18 CBF 1 CBNC=O 1 COO=O=CO 1 COOCR 1 COOOC=O 1 CRCR 7 CRN5 1 CR | 
|  | 188 <br/>    OR 2 C5A:C5B:C5B 2 C5A:C5BC=ON 1 C5A:C5BCB 1 C5A:N5:C5A 1 C5A:N5CR ...</div> | 
|  | 189 <div class="OptionsBox"> | 
|  | 190     FingerprintsVector;TopologicalAtomPairs:AtomicInvariantsAtomTypes:MinD | 
|  | 191 <br/>    istance1:MaxDistance10;223;NumericalValues;IDsAndValuesString;C.X1.BO1 | 
|  | 192 <br/>    .H3-D1-C.X3.BO3.H1 C.X2.BO2.H2-D1-C.X2.BO2.H2 C.X2.BO2.H2-D1-C.X3.BO3. | 
|  | 193 <br/>    H1 C.X2.BO2.H2-D1-C.X3.BO4 C.X2.BO2.H2-D1-N.X3.BO3 C.X2.BO3.H1-D1-...; | 
|  | 194 <br/>    2 1 4 1 1 10 8 1 2 6 1 2 2 1 2 1 2 2 1 2 1 5 1 10 12 2 2 1 2 1 9 1 3 1 | 
|  | 195 <br/>    1 1 2 2 1 3 6 1 6 14 2 2 2 3 1 3 1 8 2 2 1 3 2 6 1 2 2 5 1 3 1 23 1...</div> | 
|  | 196 <div class="OptionsBox"> | 
|  | 197     FingerprintsVector;TopologicalAtomPairs:FunctionalClassAtomTypes:MinDi | 
|  | 198 <br/>    stance1:MaxDistance10;144;NumericalValues;IDsAndValuesString;Ar-D1-Ar | 
|  | 199 <br/>    Ar-D1-Ar.HBA Ar-D1-HBD Ar-D1-Hal Ar-D1-None Ar.HBA-D1-None HBA-D1-NI H | 
|  | 200 <br/>    BA-D1-None HBA.HBD-D1-NI HBA.HBD-D1-None HBD-D1-None NI-D1-None No...; | 
|  | 201 <br/>    23 2 1 1 2 1 1 1 1 2 1 1 7 28 3 1 3 2 8 2 1 1 1 5 1 5 24 3 3 4 2 13 4 | 
|  | 202 <br/>    1 1 4 1 5 22 4 4 3 1 19 1 1 1 1 1 2 2 3 1 1 8 25 4 5 2 3 1 26 1 4 1 ...</div> | 
|  | 203 <div class="OptionsBox"> | 
|  | 204     FingerprintsVector;TopologicalAtomTorsions:AtomicInvariantsAtomTypes;3 | 
|  | 205 <br/>    3;NumericalValues;IDsAndValuesString;C.X1.BO1.H3-C.X3.BO3.H1-C.X3.BO4- | 
|  | 206 <br/>    C.X3.BO4 C.X1.BO1.H3-C.X3.BO3.H1-C.X3.BO4-N.X3.BO3 C.X2.BO2.H2-C.X2.BO | 
|  | 207 <br/>    2.H2-C.X3.BO3.H1-C.X2.BO2.H2 C.X2.BO2.H2-C.X2.BO2.H2-C.X3.BO3.H1-O...; | 
|  | 208 <br/>    2 2 1 1 2 2 1 1 3 4 4 8 4 2 2 6 2 2 1 2 1 1 2 1 1 2 6 2 4 2 1 3 1</div> | 
|  | 209 <div class="OptionsBox"> | 
|  | 210     FingerprintsVector;TopologicalAtomTorsions:EStateAtomTypes;36;Numerica | 
|  | 211 <br/>    lValues;IDsAndValuesString;aaCH-aaCH-aaCH-aaCH aaCH-aaCH-aaCH-aasC aaC | 
|  | 212 <br/>    H-aaCH-aasC-aaCH aaCH-aaCH-aasC-aasC aaCH-aaCH-aasC-sF aaCH-aaCH-aasC- | 
|  | 213 <br/>    ssNH aaCH-aasC-aasC-aasC aaCH-aasC-aasC-aasN aaCH-aasC-ssNH-dssC a...; | 
|  | 214 <br/>    4 4 8 4 2 2 6 2 2 2 4 3 2 1 3 3 2 2 2 1 2 1 1 1 2 1 1 1 1 1 1 1 2 1 1 2</div> | 
|  | 215 <div class="OptionsBox"> | 
|  | 216     FingerprintsVector;TopologicalAtomTriplets:AtomicInvariantsAtomTypes:M | 
|  | 217 <br/>    inDistance1:MaxDistance10;3096;NumericalValues;IDsAndValuesString;C.X1 | 
|  | 218 <br/>    .BO1.H3-D1-C.X1.BO1.H3-D1-C.X3.BO3.H1-D2 C.X1.BO1.H3-D1-C.X2.BO2.H2-D1 | 
|  | 219 <br/>    0-C.X3.BO4-D9 C.X1.BO1.H3-D1-C.X2.BO2.H2-D3-N.X3.BO3-D4 C.X1.BO1.H3-D1 | 
|  | 220 <br/>    -C.X2.BO2.H2-D4-C.X2.BO2.H2-D5 C.X1.BO1.H3-D1-C.X2.BO2.H2-D6-C.X3....; | 
|  | 221 <br/>    1 2 2 2 2 2 2 2 8 8 4 8 4 4 2 2 2 2 4 2 2 2 4 2 2 2 2 1 2 2 4 4 4 2 2 | 
|  | 222 <br/>    2 4 4 4 8 4 4 2 4 4 4 2 4 4 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 8...</div> | 
|  | 223 <div class="OptionsBox"> | 
|  | 224     FingerprintsVector;TopologicalAtomTriplets:SYBYLAtomTypes:MinDistance1 | 
|  | 225 <br/>    :MaxDistance10;2332;NumericalValues;IDsAndValuesString;C.2-D1-C.2-D9-C | 
|  | 226 <br/>    .3-D10 C.2-D1-C.2-D9-C.ar-D10 C.2-D1-C.3-D1-C.3-D2 C.2-D1-C.3-D10-C.3- | 
|  | 227 <br/>    D9 C.2-D1-C.3-D2-C.3-D3 C.2-D1-C.3-D2-C.ar-D3 C.2-D1-C.3-D3-C.3-D4 C.2 | 
|  | 228 <br/>    -D1-C.3-D3-N.ar-D4 C.2-D1-C.3-D3-O.3-D2 C.2-D1-C.3-D4-C.3-D5 C.2-D1-C. | 
|  | 229 <br/>    3-D5-C.3-D6 C.2-D1-C.3-D5-O.3-D4 C.2-D1-C.3-D6-C.3-D7 C.2-D1-C.3-D7...</div> | 
|  | 230 <div class="OptionsBox"> | 
|  | 231     FingerprintsVector;TopologicalPharmacophoreAtomPairs:ArbitrarySize:Min | 
|  | 232 <br/>    Distance1:MaxDistance10;54;NumericalValues;IDsAndValuesString;H-D1-H H | 
|  | 233 <br/>    -D1-NI HBA-D1-NI HBD-D1-NI H-D2-H H-D2-HBA H-D2-HBD HBA-D2-HBA HBA-D2- | 
|  | 234 <br/>    HBD H-D3-H H-D3-HBA H-D3-HBD H-D3-NI HBA-D3-NI HBD-D3-NI H-D4-H H-D4-H | 
|  | 235 <br/>    BA H-D4-HBD HBA-D4-HBA HBA-D4-HBD HBD-D4-HBD H-D5-H H-D5-HBA H-D5-...; | 
|  | 236 <br/>    18 1 2 1 22 12 8 1 2 18 6 3 1 1 1 22 13 6 5 7 2 28 9 5 1 1 1 36 16 10 | 
|  | 237 <br/>    3 4 1 37 10 8 1 35 10 9 3 3 1 28 7 7 4 18 16 12 5 1 2 1</div> | 
|  | 238 <div class="OptionsBox"> | 
|  | 239     FingerprintsVector;TopologicalPharmacophoreAtomPairs:FixedSize:MinDist | 
|  | 240 <br/>    ance1:MaxDistance10;150;OrderedNumericalValues;ValuesString;18 0 0 1 0 | 
|  | 241 <br/>    0 0 2 0 0 1 0 0 0 0 22 12 8 0 0 1 2 0 0 0 0 0 0 0 0 18 6 3 1 0 0 0 1 | 
|  | 242 <br/>    0 0 1 0 0 0 0 22 13 6 0 0 5 7 0 0 2 0 0 0 0 0 28 9 5 1 0 0 0 1 0 0 1 0 | 
|  | 243 <br/>    0 0 0 36 16 10 0 0 3 4 0 0 1 0 0 0 0 0 37 10 8 0 0 0 0 1 0 0 0 0 0 0 | 
|  | 244 <br/>    0 35 10 9 0 0 3 3 0 0 1 0 0 0 0 0 28 7 7 4 0 0 0 0 0 0 0 0 0 0 0 18...</div> | 
|  | 245 <div class="OptionsBox"> | 
|  | 246     FingerprintsVector;TopologicalPharmacophoreAtomTriplets:ArbitrarySize: | 
|  | 247 <br/>    MinDistance1:MaxDistance10;696;NumericalValues;IDsAndValuesString;Ar1- | 
|  | 248 <br/>    Ar1-Ar1 Ar1-Ar1-H1 Ar1-Ar1-HBA1 Ar1-Ar1-HBD1 Ar1-H1-H1 Ar1-H1-HBA1 Ar1 | 
|  | 249 <br/>    -H1-HBD1 Ar1-HBA1-HBD1 H1-H1-H1 H1-H1-HBA1 H1-H1-HBD1 H1-HBA1-HBA1 H1- | 
|  | 250 <br/>    HBA1-HBD1 H1-HBA1-NI1 H1-HBD1-NI1 HBA1-HBA1-NI1 HBA1-HBD1-NI1 Ar1-...; | 
|  | 251 <br/>    46 106 8 3 83 11 4 1 21 5 3 1 2 2 1 1 1 100 101 18 11 145 132 26 14 23 | 
|  | 252 <br/>    28 3 3 5 4 61 45 10 4 16 20 7 5 1 3 4 5 3 1 1 1 1 5 4 2 1 2 2 2 1 1 1 | 
|  | 253 <br/>    119 123 24 15 185 202 41 25 22 17 3 5 85 95 18 11 23 17 3 1 1 6 4 ...</div> | 
|  | 254 <div class="OptionsBox"> | 
|  | 255     FingerprintsVector;TopologicalPharmacophoreAtomTriplets:FixedSize:MinD | 
|  | 256 <br/>    istance1:MaxDistance10;2692;OrderedNumericalValues;ValuesString;46 106 | 
|  | 257 <br/>    8 3 0 0 83 11 4 0 0 0 1 0 0 0 0 0 0 0 0 21 5 3 0 0 1 2 2 0 0 1 0 0 0 | 
|  | 258 <br/>    0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 101 18 11 0 0 145 132 26 | 
|  | 259 <br/>    14 0 0 23 28 3 3 0 0 5 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 61 45 10 4 0 | 
|  | 260 <br/>    0 16 20 7 5 1 0 3 4 5 3 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 5 ...</div> | 
|  | 261 <p> | 
|  | 262 </p> | 
|  | 263 <h2>METHODS</h2> | 
|  | 264 <dl> | 
|  | 265 <dt><strong><a name="new" class="item"><strong>new</strong></a></strong></dt> | 
|  | 266 <dd> | 
|  | 267 <div class="OptionsBox"> | 
|  | 268     $NewFingerprintsSDFileIO = new FileIO::FingerprintsSDFileIO(%IOParameters);</div> | 
|  | 269 <p>Using specified <em>IOParameters</em> names and values hash, <strong>new</strong> method creates a new | 
|  | 270 object and returns a reference to a newly created <strong>FingerprintsSDFileIO</strong> object. By default, | 
|  | 271 the following properties are initialized during <em>Read</em> mode:</p> | 
|  | 272 <div class="OptionsBox"> | 
|  | 273     Name = ''; | 
|  | 274 <br/>    Mode = 'Read'; | 
|  | 275 <br/>    Status = 0; | 
|  | 276 <br/>    FingerprintsStringMode = 'AutoDetect'; | 
|  | 277 <br/>    FingerprintsFieldLabel = 'AutoDetect'; | 
|  | 278 <br/>    CompoundIDMode = 'LabelPrefix'; | 
|  | 279 <br/>    CompoundIDFieldLabel = undef; | 
|  | 280 <br/>    CompoundIDPrefix = 'Cmpd'; | 
|  | 281 <br/>    ValidateData = 1; | 
|  | 282 <br/>    DetailLevel = 1;</div> | 
|  | 283 <p>During <em>Write</em> mode, the following properties get initialize by default:</p> | 
|  | 284 <div class="OptionsBox"> | 
|  | 285     FingerprintsStringMode = undef;</div> | 
|  | 286 <div class="OptionsBox"> | 
|  | 287     BitStringFormat = HexadecimalString; | 
|  | 288 <br/>    BitsOrder = Ascending;</div> | 
|  | 289 <div class="OptionsBox"> | 
|  | 290     VectorStringFormat = NumericalValuesString or ValuesString;</div> | 
|  | 291 <p>Examples:</p> | 
|  | 292 <div class="OptionsBox"> | 
|  | 293     $NewFingerprintsSDFileIO = new FileIO::FingerprintsSDFileIO( | 
|  | 294                                'Name' => 'Sample.sdf', | 
|  | 295                                'Mode' => 'Read');</div> | 
|  | 296 <div class="OptionsBox"> | 
|  | 297     $NewFingerprintsSDFileIO = new FileIO::FingerprintsSDFileIO( | 
|  | 298                                'Name' => 'Sample.sdf', | 
|  | 299                                'Mode' => 'Read',; | 
|  | 300                                'FingerprintsStringMode' => | 
|  | 301                                        'AutoDetect', | 
|  | 302                                'FingerprintsFieldLabel' => | 
|  | 303                                        'Fingerprints', | 
|  | 304                                'CompoundIDMode' => | 
|  | 305                                        'DataField', | 
|  | 306                                'CompoundIDFieldLabel' => | 
|  | 307                                        'CompoundID');</div> | 
|  | 308 <div class="OptionsBox"> | 
|  | 309     $NewFingerprintsSDFileIO = new FileIO::FingerprintsSDFileIO( | 
|  | 310                                'Name' => 'Sample.sdf', | 
|  | 311                                'Mode' => 'Write', | 
|  | 312                                'FingerprintsStringMode' => | 
|  | 313                                        'FingerprintsBitVectorString', | 
|  | 314                                'Overwrite' => 1, | 
|  | 315                                'BitStringFormat' => 'HexadecimalString', | 
|  | 316                                'BitsOrder' => 'Ascending');</div> | 
|  | 317 <div class="OptionsBox"> | 
|  | 318     $NewFingerprintsSDFileIO = new FileIO::FingerprintsSDFileIO( | 
|  | 319                                'Name' => 'Sample.sd', | 
|  | 320                                'Mode' => 'Write', | 
|  | 321                                'FingerprintsStringMode' => | 
|  | 322                                        'FingerprintsVectorString', | 
|  | 323                                'Overwrite' => 1, | 
|  | 324                                'VectorStringFormat' => 'IDsAndValuesString', | 
|  | 325                                'FingerprintsLabel' => 'Fingerprints');</div> | 
|  | 326 </dd> | 
|  | 327 <dt><strong><a name="getcompoundstring" class="item"><strong>GetCompoundString</strong></a></strong></dt> | 
|  | 328 <dd> | 
|  | 329 <div class="OptionsBox"> | 
|  | 330     $CompoundString = $FingerprintsSDFileIO->GetCompoundString();</div> | 
|  | 331 <p>Returns <strong>CompoundString</strong> for current compound.</p> | 
|  | 332 </dd> | 
|  | 333 <dt><strong><a name="getfingerprints" class="item"><strong>GetFingerprints</strong></a></strong></dt> | 
|  | 334 <dd> | 
|  | 335 <div class="OptionsBox"> | 
|  | 336     $FingerprintsObject = $FingerprintsSDFileIO->GetFingerprints();</div> | 
|  | 337 <p>Returns <strong>FingerprintsObject</strong> generated for current compound using fingerprints bit-vector | 
|  | 338 or vector string data. The fingerprints object corresponds to any of the supported fingerprints | 
|  | 339 such as PathLengthFingerprints, ExtendedConnectivity, and so on.</p> | 
|  | 340 </dd> | 
|  | 341 <dt><strong><a name="getfingerprintsstring" class="item"><strong>GetFingerprintsString</strong></a></strong></dt> | 
|  | 342 <dd> | 
|  | 343 <div class="OptionsBox"> | 
|  | 344     $FingerprintsString = $FingerprintsSDFileIO->GetFingerprintsString();</div> | 
|  | 345 <p>Returns <strong>FingerprintsString</strong> for current compound.</p> | 
|  | 346 </dd> | 
|  | 347 <dt><strong><a name="isfingerprintsdatavalid" class="item"><strong>IsFingerprintsDataValid</strong></a></strong></dt> | 
|  | 348 <dd> | 
|  | 349 <div class="OptionsBox"> | 
|  | 350     $Status = $FingerprintsSDFileIO->IsFingerprintsDataValid();</div> | 
|  | 351 <p>Returns 1 or 0 based on whether <strong>FingerprintsObject</strong> is valid.</p> | 
|  | 352 </dd> | 
|  | 353 <dt><strong><a name="isfingerprintsfiledatavalid" class="item"><strong>IsFingerprintsFileDataValid</strong></a></strong></dt> | 
|  | 354 <dd> | 
|  | 355 <div class="OptionsBox"> | 
|  | 356     $Status = $FingerprintsSDFileIO->IsFingerprintsFileDataValid();</div> | 
|  | 357 <p>Returns 1 or 0 based on whether fingerprints file contains valid fingerprints data.</p> | 
|  | 358 </dd> | 
|  | 359 <dt><strong><a name="isfingerprintssdfile" class="item"><strong>IsFingerprintsSDFile</strong></a></strong></dt> | 
|  | 360 <dd> | 
|  | 361 <div class="OptionsBox"> | 
|  | 362     $Status = $FingerprintsSDFileIO->IsFingerprintsSDFile($FileName); | 
|  | 363 <br/>    $Status = FileIO::FingerprintsSDFileIO::IsFingerprintsSDFile($FileName);</div> | 
|  | 364 <p>Returns 1 or 0 based on whether <em>FileName</em> is a SD file.</p> | 
|  | 365 </dd> | 
|  | 366 <dt><strong><a name="next_or_read" class="item"><strong>Next or Read</strong></a></strong></dt> | 
|  | 367 <dd> | 
|  | 368 <div class="OptionsBox"> | 
|  | 369     $FingerprintsSDFileIO = $FingerprintsSDFileIO->Next(); | 
|  | 370 <br/>    $FingerprintsSDFileIO = $FingerprintsSDFileIO->Read();</div> | 
|  | 371 <p>Reads next available compound fingerprints in SD file, processes the data, generates appropriate | 
|  | 372 fingerprints object, and returns <strong>FingerprintsSDFileIO</strong>. The generated fingerprints object is available | 
|  | 373 using method <strong>GetFingerprints</strong>.</p> | 
|  | 374 </dd> | 
|  | 375 <dt><strong><a name="setbitstringformat" class="item"><strong>SetBitStringFormat</strong></a></strong></dt> | 
|  | 376 <dd> | 
|  | 377 <div class="OptionsBox"> | 
|  | 378     $FingerprintsSDFileIO->SetBitStringFormat($Format);</div> | 
|  | 379 <p>Sets bit string <em>Format</em> for fingerprints bit-vector string data in a SD file and returns <strong>FingerprintsSDFileIO</strong>. | 
|  | 380 Possible values for <strong>BitStringFormat</strong>: <em>BinaryString or HexadecimalString</em>.</p> | 
|  | 381 </dd> | 
|  | 382 <dt><strong><a name="setbitsorder" class="item"><strong>SetBitsOrder</strong></a></strong></dt> | 
|  | 383 <dd> | 
|  | 384 <div class="OptionsBox"> | 
|  | 385     $FingerprintsSDFileIO->SetBitsOrder($BitsOrder);</div> | 
|  | 386 <p>Sets <em>BitsOrder</em> for fingerprints bit-vector string data in SD file and returns <strong>FingerprintsSDFileIO</strong>. | 
|  | 387 Possible values for <strong>BitsOrder</strong>: <em>Ascending or Descending</em>.</p> | 
|  | 388 </dd> | 
|  | 389 <dt><strong><a name="setcompoundidmode" class="item"><strong>SetCompoundIDMode</strong></a></strong></dt> | 
|  | 390 <dd> | 
|  | 391 <div class="OptionsBox"> | 
|  | 392     $FingerprintsSDFileIO->SetCompoundIDMode($Mode);</div> | 
|  | 393 <p>Sets compound ID <em>Mode</em> for fingerprints bit-vector string data in a SD file and returns <strong>FingerprintsSDFileIO</strong>. | 
|  | 394 Possible values for <strong>CompoundIDMode</strong>: <em>DataField, MolName, LabelPrefix, or MolNameOrLabelPrefix</em>.</p> | 
|  | 395 </dd> | 
|  | 396 <dt><strong><a name="setcompoundstring" class="item"><strong>SetCompoundString</strong></a></strong></dt> | 
|  | 397 <dd> | 
|  | 398 <div class="OptionsBox"> | 
|  | 399     $FingerprintsSDFileIO->SetCompoundString($CompoundString);</div> | 
|  | 400 <p>Sets <em>CompoundString</em> and returns <strong>FingerprintsSDFileIO</strong>.</p> | 
|  | 401 </dd> | 
|  | 402 <dt><strong><a name="setdetaillevel" class="item"><strong>SetDetailLevel</strong></a></strong></dt> | 
|  | 403 <dd> | 
|  | 404 <div class="OptionsBox"> | 
|  | 405     $FingerprintsSDFileIO->SetDetailLevel($Level);</div> | 
|  | 406 <p>Sets details <em>Level</em> for generating diagnostics messages during SD file processing and returns | 
|  | 407 <strong>FingerprintsSDFileIO</strong>. Possible values: <em>Positive integers</em>.</p> | 
|  | 408 </dd> | 
|  | 409 <dt><strong><a name="setfingerprints" class="item"><strong>SetFingerprints</strong></a></strong></dt> | 
|  | 410 <dd> | 
|  | 411 <div class="OptionsBox"> | 
|  | 412     $FingerprintsSDFileIO->SetFingerprints($FingerprintsObject);</div> | 
|  | 413 <p>Sets <em>FingerprintsObject</em> for current data line and returns <strong>FingerprintsSDFileIO</strong>.</p> | 
|  | 414 </dd> | 
|  | 415 <dt><strong><a name="setfingerprintsstring" class="item"><strong>SetFingerprintsString</strong></a></strong></dt> | 
|  | 416 <dd> | 
|  | 417 <div class="OptionsBox"> | 
|  | 418     $FingerprintsSDFileIO->SetFingerprintsString($FingerprintsString);</div> | 
|  | 419 <p>Sets <em>FingerprintsString</em> for current data line and returns <strong>FingerprintsSDFileIO</strong>.</p> | 
|  | 420 </dd> | 
|  | 421 <dt><strong><a name="setfingerprintsstringmode" class="item"><strong>SetFingerprintsStringMode</strong></a></strong></dt> | 
|  | 422 <dd> | 
|  | 423 <div class="OptionsBox"> | 
|  | 424     $FingerprintsSDFileIO->SetFingerprintsStringMode($Mode);</div> | 
|  | 425 <p>Sets <em>FingerprintsStringMode</em> for SD file and returns <strong>FingerprintsFPFileIO</strong>. | 
|  | 426 Possible values: <em>AutoDetect, FingerprintsBitVectorString, or FingerprintsVectorString</em></p> | 
|  | 427 </dd> | 
|  | 428 <dt><strong><a name="setvectorstringformat" class="item"><strong>SetVectorStringFormat</strong></a></strong></dt> | 
|  | 429 <dd> | 
|  | 430 <div class="OptionsBox"> | 
|  | 431     $FingerprintsSDFileIO->SetVectorStringFormat($Format);</div> | 
|  | 432 <p>Sets <em>VectorStringFormat</em> for SD file and returns <strong>FingerprintsFPFileIO</strong>. Possible values: | 
|  | 433 <em>IDsAndValuesString, IDsAndValuesPairsString, ValuesAndIDsString, ValuesAndIDsPairsString</em>.</p> | 
|  | 434 </dd> | 
|  | 435 <dt><strong><a name="writefingerprints" class="item"><strong>WriteFingerprints</strong></a></strong></dt> | 
|  | 436 <dd> | 
|  | 437 <div class="OptionsBox"> | 
|  | 438     $FingerprintsFPFileIO->WriteFingerprints($FingerprintsObject, | 
|  | 439                                             $CompoundID);</div> | 
|  | 440 <p>Writes fingerprints string generated from <em>FingerprintsObject</em> object and other data including | 
|  | 441 <em>CompoundID</em> to SD file and returns <strong>FingerprintsSDFileIO</strong>.</p> | 
|  | 442 </dd> | 
|  | 443 <dt><strong><a name="writefingerprintsstring" class="item"><strong>WriteFingerprintsString</strong></a></strong></dt> | 
|  | 444 <dd> | 
|  | 445 <div class="OptionsBox"> | 
|  | 446     $FingerprintsSDFileIO->WriteFingerprints($FingerprintsString, | 
|  | 447                                             $CompoundID);</div> | 
|  | 448 <p>Writes <em>FingerprintsString</em> and other data including <em>CompoundID</em> to SD file and returns | 
|  | 449 <strong>FingerprintsSDFileIO</strong>.</p> | 
|  | 450 <p>Caveats:</p> | 
|  | 451 <div class="OptionsBox"> | 
|  | 452     o FingerprintsStringMode, BitStringFormat, BitsOrder, VectorStringFormat | 
|  | 453       values are ignored during writing of fingerprints and it's written to the file | 
|  | 454       as it is. | 
|  | 455 <br/>    o CompoundString is not checked to remove any existing fingerprints data</div> | 
|  | 456 </dd> | 
|  | 457 </dl> | 
|  | 458 <p> | 
|  | 459 </p> | 
|  | 460 <h2>AUTHOR</h2> | 
|  | 461 <p><a href="mailto:msud@san.rr.com">Manish Sud</a></p> | 
|  | 462 <p> | 
|  | 463 </p> | 
|  | 464 <h2>SEE ALSO</h2> | 
|  | 465 <p><a href="./FingerprintsTextFileIO.html">FingerprintsTextFileIO.pm</a>, <a href="./FingerprintsFPFileIO.html">FingerprintsFPFileIO.pm</a>, <a href="./SDFileIO.html">SDFileIO.pm</a> | 
|  | 466 </p> | 
|  | 467 <p> | 
|  | 468 </p> | 
|  | 469 <h2>COPYRIGHT</h2> | 
|  | 470 <p>Copyright (C) 2015 Manish Sud. All rights reserved.</p> | 
|  | 471 <p>This file is part of MayaChemTools.</p> | 
|  | 472 <p>MayaChemTools is free software; you can redistribute it and/or modify it under | 
|  | 473 the terms of the GNU Lesser General Public License as published by the Free | 
|  | 474 Software Foundation; either version 3 of the License, or (at your option) | 
|  | 475 any later version.</p> | 
|  | 476 <p> </p><p> </p><div class="DocNav"> | 
|  | 477 <table width="100%" border=0 cellpadding=0 cellspacing=2> | 
|  | 478 <tr align="left" valign="top"><td width="33%" align="left"><a href="./FingerprintsFPFileIO.html" title="FingerprintsFPFileIO.html">Previous</a>  <a href="./index.html" title="Table of Contents">TOC</a>  <a href="./FingerprintsTextFileIO.html" title="FingerprintsTextFileIO.html">Next</a></td><td width="34%" align="middle"><strong>March 29, 2015</strong></td><td width="33%" align="right"><strong>FileIO::FingerprintsSDFileIO.pm</strong></td></tr> | 
|  | 479 </table> | 
|  | 480 </div> | 
|  | 481 <br /> | 
|  | 482 <center> | 
|  | 483 <img src="../../images/h2o2.png"> | 
|  | 484 </center> | 
|  | 485 </body> | 
|  | 486 </html> |