code: def rgd(self, rgdid=None, hgnc_symbol=None, hgnc_identifier=None, limit=None, as_df=False):
          
          q = self.session.query(models.RGD)
  
          model_queries_config = (
              (rgdid, models.RGD.rgdid),
          )
          q = self.get_model_queries(q, model_queries_config)
  
          many_to_many_queries_config = (
              (hgnc_symbol, models.RGD.hgncs, models.HGNC.symbol),
              (hgnc_identifier, models.RGD.hgncs, models.HGNC.identifier),
          )
          q = self.get_many_to_many_queries(q, many_to_many_queries_config)
  
          return self._limit_and_df(q, limit, as_df)
docs: Method to query :class:`.models.RGD` objects in database
  
          :param rgdid: Rat genome database gene ID(s)
          :type rgdid: str or tuple(str) or None
  
          :param hgnc_symbol: HGNC symbol(s)
          :type hgnc_symbol: str or tuple(str) or None
  
          :param hgnc_identifier: identifiers(s) in :class:`.models.HGNC`
          :type hgnc_identifier: int or tuple(int) or None
  
          :param limit:
              - if `isinstance(limit,int)==True` -> limit
              - if `isinstance(limit,tuple)==True` -> format:= tuple(page_number, results_per_page)
              - if limit == None -> all results
          :type limit: int or tuple(int) or None
  
          :param bool as_df: if `True` results are returned as :class:`pandas.DataFrame`
  
          :return:
              - if `as_df == False` -> list(:class:`.models.RGD`)
              - if `as_df == True`  -> :class:`pandas.DataFrame`
          :rtype: list(:class:`.models.RGD`) or :class:`pandas.DataFrame`