# 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: Config | NoneConfig)

>   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: Config | NoneConfig) → None
>   __weakref__

>     list of weak references to the object

>   get_profile(gene: CoreGene, model_location: ModelLocation) → Profile
>     Parameters:

>       - gene – the gene associated to this profile

>       - model_location – 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.

## Profile

class macsypy.profile.Profile(gene: CoreGene, cfg: Config, path: str)

  Handle a HMM protein profile

  __init__(gene: CoreGene, cfg: Config, path: str) → None
    Parameters:

      - gene – the gene corresponding to this profile

      - cfg – the configuration

      - path – the path to the hmm profile.

  __len__() → int
    Returns:

      the length of the HMM protein profile

    Return type:

      int

  __str__() → str

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

  __weakref__

    list of weak references to the object

  _profile_features() → tuple[int, bool]

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

    Returns:

      the length, presence of ga bit threshold

  execute(cpu: int = 1) → HMMReport | None

    Launch the Hmmer search (hmmsearch executable) with this profile

    Parameters:

      cpu – the number of cpu to use for hmmsearch (must be >= 1)

    Returns:

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

Fork me on GitHub