Get chemical–disease associations with inference gene
        
        :param direct_evidence: direct evidence
        :param inference_gene_symbol: inference gene symbol
        :param inference_score: inference score
        :param inference_score_operator: inference score operator
        :param cas_rn:
        :param chemical_name: chemical name
        :param chemical_id:
        :param chemical_definition:
        :param disease_definition:
        :param disease_id:
        :param disease_name: disease name
        :param int limit: maximum number of results
        :param bool as_df: if set to True result returns as `pandas.DataFrame`
        :return: list of :class:`pyctd.manager.database.models.ChemicalDisease` objects

        .. seealso::
            
            :class:`pyctd.manager.models.ChemicalDisease`

            which is linked to:
            :class:`pyctd.manager.models.Disease`
            :class:`pyctd.manager.models.Chemical`

def get_chemical_diseases(self, direct_evidence=None, inference_gene_symbol=None, inference_score=None,
                              inference_score_operator=None, cas_rn=None, chemical_name=None,
                              chemical_id=None, chemical_definition=None, disease_definition=None,
                              disease_id=None, disease_name=None, limit=None, as_df=False):
        """Get chemical–disease associations with inference gene
        
        :param direct_evidence: direct evidence
        :param inference_gene_symbol: inference gene symbol
        :param inference_score: inference score
        :param inference_score_operator: inference score operator
        :param cas_rn:
        :param chemical_name: chemical name
        :param chemical_id:
        :param chemical_definition:
        :param disease_definition:
        :param disease_id:
        :param disease_name: disease name
        :param int limit: maximum number of results
        :param bool as_df: if set to True result returns as `pandas.DataFrame`
        :return: list of :class:`pyctd.manager.database.models.ChemicalDisease` objects

        .. seealso::
            
            :class:`pyctd.manager.models.ChemicalDisease`

            which is linked to:
            :class:`pyctd.manager.models.Disease`
            :class:`pyctd.manager.models.Chemical`
        """
        q = self.session.query(models.ChemicalDisease)

        if direct_evidence:
            q = q.filter(models.ChemicalDisease.direct_evidence.like(direct_evidence))

        if inference_gene_symbol:
            q = q.filter(models.ChemicalDisease.inference_gene_symbol.like(inference_gene_symbol))

        if inference_score:
            if inference_score_operator == ">":
                q = q.filter_by(models.ChemicalDisease.inference_score > inference_score)
            elif inference_score_operator == "<":
                q = q.filter_by(models.ChemicalDisease.inference_score > inference_score)

        q = self._join_chemical(q, cas_rn=cas_rn, chemical_id=chemical_id, chemical_name=chemical_name,
                                chemical_definition=chemical_definition)

        q = self._join_disease(q, disease_definition=disease_definition, disease_id=disease_id,
                               disease_name=disease_name)

        return self._limit_and_df(q, limit, as_df)