Mercurial > repos > deepakjadmin > mayatool3_test3
diff mayachemtools/docs/modules/man3/PathLengthFingerprints.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/PathLengthFingerprints.3 Wed Jan 20 11:55:01 2016 -0500 @@ -0,0 +1,600 @@ +.\" 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 "PATHLENGTHFINGERPRINTS 1" +.TH PATHLENGTHFINGERPRINTS 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" +PathLengthFingerprints +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +use Fingerprints::PathLengthFingerprints; +.PP +use Fingerprints::PathLengthFingerprints qw(:all); +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fBPathLengthFingerprints\fR class provides the following methods: +.PP +new, GenerateFingerprints, , GetDescription, SetAtomIdentifierType, +SetAtomicInvariantsToUse, SetFunctionalClassesToUse, SetMaxLength, +SetMinLength, SetNumOfBitsToSetPerPath, SetType, +StringifyPathLengthFingerprints +.PP +\&\fBPathLengthFingerprints\fR is derived from \fBFingerprints\fR class which in turn +is derived from \fBObjectProperty\fR base class that provides methods not explicitly defined +in \fBPathLengthFingerprints\fR, \fBFingerprints\fR or \fBObjectProperty\fR classes using Perl's +\&\s-1AUTOLOAD\s0 functionality. These methods are generated on-the-fly for a specified object property: +.PP +.Vb 3 +\& Set<PropertyName>(<PropertyValue>); +\& $PropertyValue = Get<PropertyName>(); +\& Delete<PropertyName>(); +.Ve +.PP +The current release of MayaChemTools supports generation of \fBAtomTypesFingerpritns\fR +corresponding to following \fBAtomtomIdentifierTypes\fR: +.PP +.Vb 3 +\& AtomicInvariantsAtomTypes, DREIDINGAtomTypes, EStateAtomTypes, +\& FunctionalClassAtomTypes, MMFF94AtomTypes, SLogPAtomTypes, +\& SYBYLAtomTypes, TPSAAtomTypes, UFFAtomTypes +.Ve +.PP +Based on the values specified for \fBType\fR, \fBAtomtomIdentifierTypes\fR, \fBMinPathLength\fR and +\&\fBMaxPathLength\fR, 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 \fBUseUniquePaths\fR. +.PP +For molecules containing rings, atom paths starting from each atom can be traversed in four +different ways: +.PP +.Vb 7 +\& o Atom paths without any rings and sharing of bonds in traversed paths. +\& o Atom paths containing rings and without any sharing of bonds in +\& traversed paths +\& o All possible atom paths without any rings and sharing of bonds in +\& traversed paths +\& o All possible atom paths containing rings and with sharing of bonds in +\& traversed paths. +.Ve +.PP +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. +.PP +\&\fBAllowSharedBonds\fR and \fBAllowRings\fR allow generation of different types of paths +to be used for fingerprints generation. +.PP +The combination of \fBAllowSharedBonds\fR, \fBAllowRings\fR, and \fBUseBondSymbols\fR allows generation of +8 different types of path length fingerprints: +.PP +.Vb 1 +\& AllowSharedBonds AllowRings UseBondSymbols +\& +\& 0 0 1 \- AtomPathsNoCyclesWithBondSymbols +\& 0 1 1 \- AtomPathsWithCyclesWithBondSymbols +\& +\& 1 0 1 \- AllAtomPathsNoCyclesWithBondSymbols +\& 1 1 1 \- AllAtomPathsWithCyclesWithBondSymbols +\& [ DEFAULT ] +\& +\& 0 0 0 \- AtomPathsNoCyclesNoBondSymbols +\& 0 1 0 \- AtomPathsWithCyclesNoBondSymbols +\& +\& 1 0 0 \- AllAtomPathsNoCyclesNoBondSymbols +\& 1 1 0 \- AllAtomPathsWithCyclesNoWithBondSymbols +.Ve +.PP +Additionally, possible values for option \fB\-\-AtomIdentifierType\fR in conjunction with corresponding +specified values for \fBAtomicInvariantsToUse\fR and \fBFunctionalClassesToUse \fR changes the nature +of atom path length strings and the fingerprints. +.PP +For each atom path in the filtered atom paths list, an atom path string is created using value of +\&\fBAtomIdentifierType\fR and specified values to use for a particular atom identifier type. +Value of \fBUseBondSymbols\fR 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: \fI1 \- None; 2 \- '='; 3 \- '#'; 1.5 or aromatic \- ':'; others: bond order value\fR. 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. +.PP +\&\fBUseUniquePaths\fR controls the removal of structurally duplicate atom path strings are removed +from the list. +.PP +For \fIPathLengthBits\fR value of \fBType\fR, each atom path is hashed to a 32 bit unsigned +integer key using \fBTextUtil::HashCode\fR function. Using the hash key as a seed for a random number +generator, a random integer value between 0 and \fBSize\fR is used to set corresponding bits +in the fingerprint bit-vector string. Value of \fBNumOfBitsToSetPerPaths\fR option controls the number +of time a random number is generated to set corresponding bits. +.PP +For \fI PathLengthCount\fR value of \fBType\fRn, the number of times an atom path appears +is tracked and a fingerprints count-string corresponding to count of atom paths is generated. +.PP +The current release of MayaChemTools generates the following types of path length +fingerprints bit-vector and vector strings: +.PP +.Vb 6 +\& FingerprintsBitVector;PathLengthBits:AtomicInvariantsAtomTypes:MinLeng +\& th1:MaxLength8;1024;BinaryString;Ascending;001000010011010101011000110 +\& 0100010101011000101001011100110001000010001001101000001001001001001000 +\& 0010110100000111001001000001001010100100100000000011000000101001011100 +\& 0010000001000101010100000100111100110111011011011000000010110111001101 +\& 0101100011000000010001000011000010100011101100001000001000100000000... +\& +\& FingerprintsBitVector;PathLengthBits:AtomicInvariantsAtomTypes:MinLeng +\& th1:MaxLength8;1024;HexadecimalString;Ascending;48caa1315d82d91122b029 +\& 42861c9409a4208182d12015509767bd0867653604481a8b1288000056090583603078 +\& 9cedae54e26596889ab121309800900490515224208421502120a0dd9200509723ae89 +\& 00024181b86c0122821d4e4880c38620dab280824b455404009f082003d52c212b4e6d +\& 6ea05280140069c780290c43 +\& +\& FingerprintsVector;PathLengthCount:AtomicInvariantsAtomTypes:MinLength +\& 1:MaxLength8;432;NumericalValues;IDsAndValuesPairsString;C.X1.BO1.H3 2 +\& 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 +\& 2.BO2.H1 1 N.X3.BO3 1 O.X1.BO1.H1 3 O.X1.BO2 2 C.X1.BO1.H3C.X3.BO3.H1 +\& 2 C.X2.BO2.H2C.X2.BO2.H2 1 C.X2.BO2.H2C.X3.BO3.H1 4 C.X2.BO2.H2C.X3.BO +\& 4 1 C.X2.BO2.H2N.X3.BO3 1 C.X2.BO3.H1:C.X2.BO3.H1 10 C.X2.BO3.H1:C.... +\& +\& FingerprintsVector;PathLengthCount:DREIDINGAtomTypes:MinLength1:MaxLen +\& gth8;410;NumericalValues;IDsAndValuesPairsString;C_2 2 C_3 9 C_R 22 F_ +\& 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 +\& 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 +\& _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 +\& _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 ... +\& +\& FingerprintsVector;PathLengthCount:EStateAtomTypes:MinLength1:MaxLengt +\& h8;454;NumericalValues;IDsAndValuesPairsString;aaCH 14 aasC 8 aasN 1 d +\& O 2 dssC 2 sCH3 2 sF 1 sOH 3 ssCH2 4 ssNH 1 sssCH 3 aaCH:aaCH 10 aaCH: +\& aasC 8 aasC:aasC 3 aasC:aasN 2 aasCaasC 2 aasCdssC 1 aasCsF 1 aasCssNH +\& 1 aasCsssCH 1 aasNssCH2 1 dO=dssC 2 dssCsOH 1 dssCssCH2 1 dssCssNH 1 +\& sCH3sssCH 2 sOHsssCH 2 ssCH2ssCH2 1 ssCH2sssCH 4 aaCH:aaCH:aaCH 6 a... +\& +\& FingerprintsVector;PathLengthCount:FunctionalClassAtomTypes:MinLength1 +\& :MaxLength8;404;NumericalValues;IDsAndValuesPairsString;Ar 22 Ar.HBA 1 +\& HBA 2 HBA.HBD 3 HBD 1 Hal 1 NI 1 None 10 Ar.HBA:Ar 2 Ar.HBANone 1 Ar: +\& Ar 21 ArAr 2 ArHBD 1 ArHal 1 ArNone 2 HBA.HBDNI 1 HBA.HBDNone 2 HBA=NI +\& 1 HBA=None 1 HBDNone 1 NINone 1 NoneNone 7 Ar.HBA:Ar:Ar 2 Ar.HBA:ArAr +\& 1 Ar.HBA:ArNone 1 Ar.HBANoneNone 1 Ar:Ar.HBA:Ar 1 Ar:Ar.HBANone 2 ... +\& +\& FingerprintsVector;PathLengthCount:MMFF94AtomTypes:MinLength1:MaxLengt +\& h8;463;NumericalValues;IDsAndValuesPairsString;C5A 2 C5B 2 C=ON 1 CB 1 +\& 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 +\& 5 2 C5ACB 1 C5ACR 1 C5B:C5B 1 C5BC=ON 1 C5BCB 1 C=ON=O=CN 1 C=ONNC=O 1 +\& CB:CB 18 CBF 1 CBNC=O 1 COO=O=CO 1 COOCR 1 COOOC=O 1 CRCR 7 CRN5 1 CR +\& OR 2 C5A:C5B:C5B 2 C5A:C5BC=ON 1 C5A:C5BCB 1 C5A:N5:C5A 1 C5A:N5CR ... +\& +\& FingerprintsVector;PathLengthCount:SLogPAtomTypes:MinLength1:MaxLength +\& 8;518;NumericalValues;IDsAndValuesPairsString;C1 5 C10 1 C11 1 C14 1 C +\& 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 +\& 1 C10N11 1 C11C1 2 C11C21 1 C14:C18 2 C14F 1 C18:C18 10 C18:C20 4 C18 +\& :C22 2 C1C5 1 C1CS 4 C20:C20 1 C20:C21 1 C20:N11 1 C20C20 2 C21:C21 1 +\& C21:N11 1 C21C5 1 C22N4 1 C5=O10 1 C5=O9 1 C5N4 1 C5O2 1 CSO2 2 C10... +\& +\& FingerprintsVector;PathLengthCount:SYBYLAtomTypes:MinLength1:MaxLength +\& 8;412;NumericalValues;IDsAndValuesPairsString;C.2 2 C.3 9 C.ar 22 F 1 +\& 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. +\& 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 +\& .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 +\& .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... +\& +\& FingerprintsVector;PathLengthCount:TPSAAtomTypes:MinLength1:MaxLength8 +\& ;331;NumericalValues;IDsAndValuesPairsString;N21 1 N7 1 None 34 O3 2 O +\& 4 3 N21:None 2 N21None 1 N7None 2 None:None 21 None=O3 2 NoneNone 13 N +\& oneO4 3 N21:None:None 2 N21:NoneNone 2 N21NoneNone 1 N7None:None 2 N7N +\& one=O3 1 N7NoneNone 1 None:N21:None 1 None:N21None 2 None:None:None 20 +\& None:NoneNone 12 NoneN7None 1 NoneNone=O3 2 NoneNoneNone 8 NoneNon... +\& +\& FingerprintsVector;PathLengthCount:UFFAtomTypes:MinLength1:MaxLength8; +\& 410;NumericalValues;IDsAndValuesPairsString;C_2 2 C_3 9 C_R 22 F_ 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 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_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_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 1 C_3... +.Ve +.SS "\s-1METHODS\s0" +.IX Subsection "METHODS" +.IP "\fBnew\fR" 4 +.IX Item "new" +.Vb 2 +\& $NewPathLengthFingerprints = new PathLengthFingerprints( +\& %NamesAndValues); +.Ve +.Sp +Using specified \fIPathLengthFingerprints\fR property names and values hash, \fBnew\fR method creates a new object +and returns a reference to newly created \fBPathLengthFingerprints\fR object. By default, the following properties are +initialized: +.Sp +.Vb 10 +\& Molecule = \*(Aq\*(Aq; +\& Type = \*(Aq\*(Aq +\& Size = 1024 +\& MinSize = 32 +\& MaxSize = 2**32 +\& NumOfBitsToSetPerPath = 1 +\& MinLength = 1 +\& MaxLength = 8 +\& AllowSharedBonds = 1 +\& AllowRings = 1 +\& UseBondSymbols = 1 +\& UseUniquePaths = \*(Aq\*(Aq +\& AtomIdentifierType = \*(Aq\*(Aq +\& SetAtomicInvariantsToUse = [\*(AqAS\*(Aq] +\& FunctionalClassesToUse = [\*(AqHBD\*(Aq, \*(AqHBA\*(Aq, \*(AqPI\*(Aq, \*(AqNI\*(Aq, \*(AqAr\*(Aq, \*(AqHal\*(Aq] +.Ve +.Sp +Examples: +.Sp +.Vb 5 +\& $PathLengthFingerprints = new PathLengthFingerprints( +\& \*(AqMolecule\*(Aq => $Molecule, +\& \*(AqType\*(Aq => \*(AqPathLengthBits\*(Aq, +\& \*(AqAtomIdentifierType\*(Aq = +\& \*(AqAtomicInvariantsAtomTypes\*(Aq); +\& +\& $PathLengthFingerprints = new PathLengthFingerprints( +\& \*(AqMolecule\*(Aq => $Molecule, +\& \*(AqType\*(Aq => \*(AqPathLengthBits\*(Aq, +\& \*(AqSize\*(Aq => 1024, +\& \*(AqMinLength\*(Aq => 1, +\& \*(AqMaxLength\*(Aq => 8, +\& \*(AqAllowRings\*(Aq => 1, +\& \*(AqAllowSharedBonds\*(Aq => 1, +\& \*(AqUseBondSymbols\*(Aq => 1, +\& \*(AqUseUniquePaths\*(Aq => 1, +\& \*(AqAtomIdentifierType\*(Aq = +\& \*(AqAtomicInvariantsAtomTypes\*(Aq, +\& \*(AqAtomicInvariantsToUse\*(Aq => [\*(AqAS\*(Aq]); +\& +\& $PathLengthFingerprints = new PathLengthFingerprints( +\& \*(AqMolecule\*(Aq => $Molecule, +\& \*(AqType\*(Aq => \*(AqPathLengthCount\*(Aq, +\& \*(AqMinLength\*(Aq => 1, +\& \*(AqMaxLength\*(Aq => 8, +\& \*(AqAllowRings\*(Aq => 1, +\& \*(AqAllowSharedBonds\*(Aq => 1, +\& \*(AqUseBondSymbols\*(Aq => 1, +\& \*(AqUseUniquePaths\*(Aq => 1, +\& \*(AqAtomIdentifierType\*(Aq => +\& \*(AqAtomicInvariantsAtomTypes\*(Aq, +\& \*(AqAtomicInvariantsToUse\*(Aq => [\*(AqAS\*(Aq]); +\& +\& $PathLengthFingerprints = new PathLengthFingerprints( +\& \*(AqMolecule\*(Aq => $Molecule, +\& \*(AqType\*(Aq => \*(AqPathLengthBits\*(Aq, +\& \*(AqAtomIdentifierType\*(Aq = +\& \*(AqSLogPAtomTypes\*(Aq); +\& +\& $PathLengthFingerprints = new PathLengthFingerprints( +\& \*(AqMolecule\*(Aq => $Molecule, +\& \*(AqType\*(Aq => \*(AqPathLengthCount\*(Aq, +\& \*(AqAtomIdentifierType\*(Aq = +\& \*(AqSYBYLAtomTypes\*(Aq); +\& +\& $PathLengthFingerprints = new PathLengthFingerprints( +\& \*(AqMolecule\*(Aq => $Molecule, +\& \*(AqType\*(Aq => \*(AqPathLengthBits\*(Aq, +\& \*(AqAtomIdentifierType\*(Aq = +\& \*(AqFunctionalClassAtomTypes\*(Aq, +\& \*(AqFunctionalClassesToUse\*(Aq => [\*(AqHBD\*(Aq, \*(AqHBA\*(Aq, \*(AqAr\*(Aq]); +\& +\& $PathLengthFingerprints\->GenerateFingerprints(); +\& print "$PathLengthFingerprints\en"; +.Ve +.IP "\fBGetDescription\fR" 4 +.IX Item "GetDescription" +.Vb 1 +\& $Description = $PathLengthFingerprints\->GetDescription(); +.Ve +.Sp +Returns a string containing description of path length fingerprints. +.IP "\fBGenerateFingerprints\fR" 4 +.IX Item "GenerateFingerprints" +.Vb 1 +\& $PathLengthFingerprints\->GenerateFingerprints(); +.Ve +.Sp +Generates path length fingerprints and returns \fIPathLengthFingerprints\fR. +.IP "\fBSetMaxLength\fR" 4 +.IX Item "SetMaxLength" +.Vb 1 +\& $PathLengthFingerprints\->SetMaxLength($Length); +.Ve +.Sp +Sets maximum value of atom path length to be used during atom path length fingerprints +generation and returns \fIPathLengthFingerprints\fR +.IP "\fBSetAtomIdentifierType\fR" 4 +.IX Item "SetAtomIdentifierType" +.Vb 1 +\& $PathLengthFingerprints\->SetAtomIdentifierType(); +.Ve +.Sp +Sets atom \fIIdentifierType\fR to use during path length fingerprints generation and +returns \fIPathLengthFingerprints\fR. +.Sp +Possible values: \fIAtomicInvariantsAtomTypes, DREIDINGAtomTypes, EStateAtomTypes, +FunctionalClassAtomTypes, MMFF94AtomTypes, SLogPAtomTypes, SYBYLAtomTypes, +TPSAAtomTypes, UFFAtomTypes\fR. +.IP "\fBSetAtomicInvariantsToUse\fR" 4 +.IX Item "SetAtomicInvariantsToUse" +.Vb 2 +\& $PathLengthFingerprints\->SetAtomicInvariantsToUse($ValuesRef); +\& $PathLengthFingerprints\->SetAtomicInvariantsToUse(@Values); +.Ve +.Sp +Sets atomic invariants to use during \fIAtomicInvariantsAtomTypes\fR value of \fIAtomIdentifierType\fR +for path length fingerprints generation and returns \fIPathLengthFingerprints\fR. +.Sp +Possible values for atomic invariants are: \fI\s-1AS\s0, X, \s-1BO\s0, \s-1LBO\s0, \s-1SB\s0, \s-1DB\s0, \s-1TB\s0, +H, Ar, \s-1RA\s0, \s-1FC\s0, \s-1MN\s0, \s-1SM\s0\fR. Default value: \fI\s-1AS\s0\fR. +.Sp +The atomic invariants abbreviations correspond to: +.Sp +.Vb 1 +\& AS = Atom symbol corresponding to element symbol +\& +\& X<n> = Number of non\-hydrogen atom neighbors or heavy atoms +\& BO<n> = Sum of bond orders to non\-hydrogen atom neighbors or heavy atoms +\& LBO<n> = Largest bond order of non\-hydrogen atom neighbors or heavy atoms +\& SB<n> = Number of single bonds to non\-hydrogen atom neighbors or heavy atoms +\& DB<n> = Number of double bonds to non\-hydrogen atom neighbors or heavy atoms +\& TB<n> = Number of triple bonds to non\-hydrogen atom neighbors or heavy atoms +\& H<n> = Number of implicit and explicit hydrogens for atom +\& Ar = Aromatic annotation indicating whether atom is aromatic +\& RA = Ring atom annotation indicating whether atom is a ring +\& FC<+n/\-n> = Formal charge assigned to atom +\& MN<n> = Mass number indicating isotope other than most abundant isotope +\& SM<n> = Spin multiplicity of atom. Possible values: 1 (singlet), 2 (doublet) or +\& 3 (triplet) +.Ve +.Sp +Atom type generated by AtomTypes::AtomicInvariantsAtomTypes class corresponds to: +.Sp +.Vb 1 +\& AS.X<n>.BO<n>.LBO<n>.<SB><n>.<DB><n>.<TB><n>.H<n>.Ar.RA.FC<+n/\-n>.MN<n>.SM<n> +.Ve +.Sp +Except for \s-1AS\s0 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. +.Sp +In addition to usage of abbreviations for specifying atomic invariants, the following descriptive words +are also allowed: +.Sp +.Vb 12 +\& X : NumOfNonHydrogenAtomNeighbors or NumOfHeavyAtomNeighbors +\& BO : SumOfBondOrdersToNonHydrogenAtoms or SumOfBondOrdersToHeavyAtoms +\& LBO : LargestBondOrderToNonHydrogenAtoms or LargestBondOrderToHeavyAtoms +\& SB : NumOfSingleBondsToNonHydrogenAtoms or NumOfSingleBondsToHeavyAtoms +\& DB : NumOfDoubleBondsToNonHydrogenAtoms or NumOfDoubleBondsToHeavyAtoms +\& TB : NumOfTripleBondsToNonHydrogenAtoms or NumOfTripleBondsToHeavyAtoms +\& H : NumOfImplicitAndExplicitHydrogens +\& Ar : Aromatic +\& RA : RingAtom +\& FC : FormalCharge +\& MN : MassNumber +\& SM : SpinMultiplicity +.Ve +.Sp +\&\fIAtomTypes::AtomicInvariantsAtomTypes\fR module is used to assign atomic invariant +atom types. +.IP "\fBSetFunctionalClassesToUse\fR" 4 +.IX Item "SetFunctionalClassesToUse" +.Vb 2 +\& $PathLengthFingerprints\->SetFunctionalClassesToUse($ValuesRef); +\& $PathLengthFingerprints\->SetFunctionalClassesToUse(@Values); +.Ve +.Sp +Sets functional classes invariants to use during \fIFunctionalClassAtomTypes\fR value of \fIAtomIdentifierType\fR +for path length fingerprints generation and returns \fIPathLengthFingerprints\fR. +.Sp +Possible values for atom functional classes are: \fIAr, \s-1CA\s0, H, \s-1HBA\s0, \s-1HBD\s0, Hal, \s-1NI\s0, \s-1PI\s0, \s-1RA\s0\fR. +Default value [ Ref 24 ]: \fI\s-1HBD\s0,HBA,PI,NI,Ar,Hal\fR. +.Sp +The functional class abbreviations correspond to: +.Sp +.Vb 9 +\& HBD: HydrogenBondDonor +\& HBA: HydrogenBondAcceptor +\& PI : PositivelyIonizable +\& NI : NegativelyIonizable +\& Ar : Aromatic +\& Hal : Halogen +\& H : Hydrophobic +\& RA : RingAtom +\& CA : ChainAtom +\& +\& Functional class atom type specification for an atom corresponds to: +\& +\& Ar.CA.H.HBA.HBD.Hal.NI.PI.RA or None +.Ve +.Sp +\&\fIAtomTypes::FunctionalClassAtomTypes\fR module is used to assign functional class atom +types. It uses following definitions [ Ref 60\-61, Ref 65\-66 ]: +.Sp +.Vb 4 +\& HydrogenBondDonor: NH, NH2, OH +\& HydrogenBondAcceptor: N[!H], O +\& PositivelyIonizable: +, NH2 +\& NegativelyIonizable: \-, C(=O)OH, S(=O)OH, P(=O)OH +.Ve +.IP "\fBSetMinLength\fR" 4 +.IX Item "SetMinLength" +.Vb 1 +\& $PathLengthFingerprints\->SetMinLength($Length); +.Ve +.Sp +Sets minimum value of atom path length to be used during atom path length fingerprints +generation and returns \fIPathLengthFingerprints\fR. +.IP "\fBSetMaxLength\fR" 4 +.IX Item "SetMaxLength" +.Vb 1 +\& $PathLengthFingerprints\->SetMaxLength($Length); +.Ve +.Sp +Sets maximum value of atom path length to be used during atom path length fingerprints +generation and returns \fIPathLengthFingerprints\fR. +.IP "\fBSetNumOfBitsToSetPerPath\fR" 4 +.IX Item "SetNumOfBitsToSetPerPath" +.Vb 1 +\& $PathLengthFingerprints\->SetNumOfBitsToSetPerPath($NumOfBits); +.Ve +.Sp +Sets number of bits to set for each path during \fIPathLengthBits\fR \fBType \fR during path length fingerprints +generation and returns \fIPathLengthFingerprints\fR. +.IP "\fBSetType\fR" 4 +.IX Item "SetType" +.Vb 1 +\& $PathLengthFingerprints\->SetType($Type); +.Ve +.Sp +Sets type of path length fingerprints and returns \fIPathLengthFingerprints\fR. Possible values: +\&\fIPathLengthBits or PathLengthCount\fR. +.IP "\fBStringifyPathLengthFingerprints\fR" 4 +.IX Item "StringifyPathLengthFingerprints" +.Vb 1 +\& $String = $PathLengthFingerprints\->StringifyPathLengthFingerprints(); +.Ve +.Sp +Returns a string containing information about \fIPathLengthFingerprints\fR object. +.SH "AUTHOR" +.IX Header "AUTHOR" +Manish Sud <msud@san.rr.com> +.SH "SEE ALSO" +.IX Header "SEE ALSO" +Fingerprints.pm, FingerprintsStringUtil.pm, AtomNeighborhoodsFingerprints.pm, +AtomTypesFingerprints.pm, EStateIndiciesFingerprints.pm, ExtendedConnectivityFingerprints.pm, +MACCSKeys.pm, TopologicalAtomPairsFingerprints.pm, TopologicalAtomTripletsFingerprints.pm, +TopologicalAtomTorsionsFingerprints.pm, TopologicalPharmacophoreAtomPairsFingerprints.pm, +TopologicalPharmacophoreAtomTripletsFingerprints.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.