# profile

The Profile object is used for the search of the gene with Hmmer. A “Profile” must match a HMM protein profile file, which name is based on the profile name. For instance, the gspG gene has the corresponding “gspG.hmm” profile file provided at a dedicated location.

## profile API reference

## ProfileFactory

> class `macsypy.profile.``ProfileFactory`(cfg)

>   Build and store all Profile objects. Profiles must not be instanciated directly. The profile_factory must be used. The profile_factory ensures there is only one instance of profile for a given name. To get a profile, use the method get_profile. If the profile is already cached, this instance is returned. Otherwise a new profile is built, stored in the profile_factory and then returned.

>   `__init__`(cfg)

>     Initialize self. See help(type(self)) for accurate signature.

>   `__weakref__`

>     list of weak references to the object (if defined)

>   `get_profile`(gene, model_location)
>     Parameters

>       - gene (`macsypy.gene.Gene` or `macsypy.gene.Homolog` or `macsypy.gene.Analog` object) – the gene associated to this profile

>       - model_location (`macsypy.registries.ModelLocation` object.) – The where to get the profile

>     Returns

>       the profile corresponding to the name. If the profile already exists, return it. Otherwise build it, store it and return it.

>     Return type

>       `macsypy.profile.Profile` object

## Profile

class `macsypy.profile.``Profile`(gene, cfg, path)

  Handle a HMM protein profile

  `__init__`(gene, cfg, path)
    Parameters

      - gene (`macsypy.secretion.Gene` object) – the gene corresponding to this profile

      - cfg (`macsypy.config.Config` object) – the configuration

      - path (string) – the path to the hmm profile.

  `__len__`()
    Returns

      the length of the HMM protein profile

    Return type

      int

  `__str__`()

    Print the name of the corresponding gene and the path to the HMM profile.

  `__weakref__`

    list of weak references to the object (if defined)

  `_profile_features`()

    Parse the HMM profile to extract the length and the presence of GA bit threshold

    Returns

      the length, presence of ga bit threshold

    Return type

      tuple(int length, bool ga_threshold)

  `execute`()

    Launch the Hmmer search (hmmsearch executable) with this profile

    Returns

      an object storing information on the results of the HMM search (HMMReport)

    Return type

      `macsypy.report.HMMReport` object