NAME
    EStateIndiciesFingerprints

SYNOPSIS
    use Fingerprints::EStateIndiciesFingerprints;

    use Fingerprints::EStateIndiciesFingerprints qw(:all);

DESCRIPTION
    EStateIndiciesFingerprints [ Ref 75-78 ] class provides the following
    methods:

    new, GenerateFingerprints, GetDescription, SetEStateAtomTypesSetToUse,
    SetValuesPrecision, StringifyEStateIndiciesFingerprints

    EStateIndiciesFingerprints is derived from Fingerprints class which in
    turn is derived from ObjectProperty base class that provides methods not
    explicitly defined in AtomNeighborhoodsFingerprints, Fingerprints or
    ObjectProperty classes using Perl's AUTOLOAD functionality. These
    methods are generated on-the-fly for a specified object property:

        Set<PropertyName>(<PropertyValue>);
        $PropertyValue = Get<PropertyName>();
        Delete<PropertyName>();

    E-state atom types are assigned to all non-hydrogen atoms in a molecule
    using module AtomTypes::EStateAtomTypes.pm and E-state values are
    calculated using module AtomicDescriptors::EStateValues.pm. Using
    E-state atom types and E-state values, EStateIndiciesFingerprints
    constituting sum of E-state values for E-sate atom types are generated.

    Two types of E-state atom types set size are allowed:

        ArbitrarySize - Corresponds to only E-state atom types detected
                        in molecule
        FixedSize - Corresponds to fixed number of E-state atom types previously
                    defined

    Module AtomTypes::EStateAtomTypes.pm, used to assign E-state atom types
    to non-hydrogen atoms in the molecule, is able to assign atom types to
    any valid atom group. However, for *FixedSize* value of
    EStateAtomTypesSetToUse, only a fixed set of E-state atom types
    corresponding to specific atom groups [ Appendix III in Ref 77 ] are
    used for fingerprints.

    The fixed size E-state atom type set size used during generation of
    fingerprints contains 87 E-state non-hydrogen atom types in
    EStateAtomTypes.csv data file distributed with MayaChemTools.

    Combination of Type and EStateAtomTypesSetToUse allow generation of 2
    different types of E-state indicies fingerprints:

        Type                        EStateAtomTypesSetToUse

        EStateIndicies              ArbitrarySize      [ default fingerprints ]
        EStateIndicies              FixedSize

    The current release of MayaChemTools generates the following types of
    E-state fingerprints vector strings:

        FingerprintsVector;EStateIndicies:ArbitrarySize;11;NumericalValues;IDs
        AndValuesString;SaaCH SaasC SaasN SdO SdssC SsCH3 SsF SsOH SssCH2 SssN
        H SsssCH;24.778 4.387 1.993 25.023 -1.435 3.975 14.006 29.759 -0.073 3
        .024 -2.270

        FingerprintsVector;EStateIndicies:FixedSize;87;OrderedNumericalValues;
        ValuesString;0 0 0 0 0 0 0 3.975 0 -0.073 0 0 24.778 -2.270 0 0 -1.435
        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
        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
        0 0 0 0 0 0 0 0 0 0 0 0 0 0

        FingerprintsVector;EStateIndicies:FixedSize;87;OrderedNumericalValues;
        IDsAndValuesString;SsLi SssBe SssssBem SsBH2 SssBH SsssB SssssBm SsCH3
        SdCH2 SssCH2 StCH SdsCH SaaCH SsssCH SddC StsC SdssC SaasC SaaaC Sssss
        C SsNH3p SsNH2 SssNH2p SdNH SssNH SaaNH StN SsssNHp SdsN SaaN SsssN Sd
        0 0 0 0 0 0 0 3.975 0 -0.073 0 0 24.778 -2.270 0 0 -1.435 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 14.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 0 0 0 0 0 0...

  METHODS
    new
            $EStateIndiciesFingerprints = new EStateIndiciesFingerprints(%NamesAndValues);

        Using specified *EStateIndiciesFingerprints* property names and
        values hash, new method creates a new object and returns a reference
        to newly created PathLengthFingerprints object. By default, the
        following properties are initialized:

            Molecule = '';
            Type = 'EStateIndicies'
            EStateAtomTypesSetToUse = 'ArbitrarySize'
            ValuesPrecision = 3

        Examples:

            $EStateIndiciesFingerprints = new AtomTypesFingerprints(
                                      'Molecule' => $Molecule,
                                      'EStateAtomTypesSetToUse' =>
                                                      'ArbitrarySize');

            $EStateIndiciesFingerprints = new AtomTypesFingerprints(
                                      'Molecule' => $Molecule,
                                      'EStateAtomTypesSetToUse' =>
                                                      'FixedSize');

            $EStateIndiciesFingerprints->GenerateFingerprints();
            print "$EStateIndiciesFingerprints\n";

    GenerateFingerprints
            $EStateIndiciesFingerprints = $EStateIndiciesFingerprints->
                                          GenerateEStateIndiciesFingerprints();

        Generates EState keys fingerprints and returns
        *EStateIndiciesFingerprints*.

    GetDescription
            $Description = $EStateIndiciesFingerprints->GetDescription();

        Returns a string containing description of EState keys fingerprints.

    SetEStateAtomTypesSetToUse
            $EStateIndiciesFingerprints->SetEStateAtomTypesSetToUse($Value);

        Sets *Value* of *EStateAtomTypesSetToUse* and returns
        *EStateIndiciesFingerprints*. Possible values: *ArbitrarySize or
        FixedSize*. Default value: *ArbitrarySize*.

    SetValuesPrecision
            $EStateIndiciesFingerprints->SetValuesPrecision($Precision);

        Sets precesion of E-state values to use during generation of E-state
        indices fingerprints and returns *EStateIndiciesFingerprints*.
        Possible values: *Positive integers*. Default value: *3*.

    StringifyEStateIndiciesFingerprints
            $String = $EStateIndiciesFingerprints->StringifyEStateIndiciesFingerprints();

        Returns a string containing information about
        *EStateIndiciesFingerprints* object.

AUTHOR
    Manish Sud <msud@san.rr.com>

SEE ALSO
    Fingerprints.pm, FingerprintsStringUtil.pm,
    AtomNeighborhoodsFingerprints.pm, AtomTypesFingerprints.pm,
    ExtendedConnectivityFingerprints.pm, MACCSKeys.pm,
    PathLengthFingerprints.pm, TopologicalAtomPairsFingerprints.pm,
    TopologicalAtomTripletsFingerprints.pm,
    TopologicalAtomTorsionsFingerprints.pm,
    TopologicalPharmacophoreAtomPairsFingerprints.pm,
    TopologicalPharmacophoreAtomTripletsFingerprints.pm

COPYRIGHT
    Copyright (C) 2018 Manish Sud. All rights reserved.

    This file is part of MayaChemTools.

    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.

