:mod:`biotransformers.wrappers.rostlab_wrapper`
===============================================

.. py:module:: biotransformers.wrappers.rostlab_wrapper

.. autoapi-nested-parse::

   This script defines a class which inherits from the LanguageModel class, and is
   specific to the Rostlab models (eg ProtBert and ProtBert-BFD) developed by
   hugging face
   - ProtBert: https://huggingface.co/Rostlab/prot_bert
   - ProtBert BFD: https://huggingface.co/Rostlab/prot_bert_bfd



Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   biotransformers.wrappers.rostlab_wrapper.RostlabWrapper




Attributes
~~~~~~~~~~

.. autoapisummary::

   biotransformers.wrappers.rostlab_wrapper.log


.. data:: log
   

   

.. class:: RostlabWrapper(model_dir: str, device)


   Bases: :py:obj:`biotransformers.wrappers.language_model.LanguageModel`

   Class that uses a rostlab type of pretrained transformers model to evaluate
   a protein likelihood so as other insights.

   .. method:: model(self) -> torch.nn.Module
      :property:

      Return torch model.


   .. method:: set_model(self, model: torch.nn.Module)

      Set torch model.


   .. method:: clean_model_id(self) -> str
      :property:

      Clean model ID (in case the model directory is not)


   .. method:: model_vocabulary(self) -> List[str]
      :property:

      Returns the whole vocabulary list


   .. method:: vocab_size(self) -> int
      :property:

      Returns the whole vocabulary size


   .. method:: mask_token(self) -> str
      :property:

      Representation of the mask token (as a string)


   .. method:: pad_token(self) -> str
      :property:

      Representation of the pad token (as a string)


   .. method:: begin_token(self) -> str
      :property:

      Representation of the beginning of sentence token (as a string)


   .. method:: end_token(self) -> str
      :property:

      Representation of the end of sentence token (as a string).


   .. method:: does_end_token_exist(self) -> bool
      :property:

      Returns true if a end of sequence token exists


   .. method:: token_to_id(self)
      :property:

      Returns a function which maps tokens to IDs


   .. method:: embeddings_size(self) -> int
      :property:

      Returns size of the embeddings


   .. method:: process_sequences_and_tokens(self, sequences_list: List[str]) -> Dict[str, torch.tensor]

      Function to transform tokens string to IDs; it depends on the model used


   .. method:: model_pass(self, model_inputs: Dict[str, torch.tensor], batch_size: int, silent: bool = False, pba: ray.actor.ActorHandle = None) -> Tuple[torch.Tensor, torch.Tensor]

      Function which computes logits and embeddings based on a dict of sequences
      tensors, a provided batch size and an inference configuration. The output is
      obtained by computing a forward pass through the model ("forward inference")

      :param model_inputs: [description]
      :type model_inputs: Dict[str, torch.tensor]
      :param batch_size: size of the batch
      :type batch_size: int
      :param silent: display or not progress bar
      :param pba: tqdm progress bar for ray actor

      :returns:         * logits [num_seqs, max_len_seqs, vocab_size]
                        * embeddings [num_seqs, max_len_seqs+1, embedding_size]
      :rtype: Tuple[torch.tensor, torch.tensor]


   .. method:: get_alphabet_dataloader(self)

      Define an alphabet mapping for common method between
      protbert and ESM



