biggr_models.queries.gene_queries
=================================

.. py:module:: biggr_models.queries.gene_queries


Attributes
----------

.. autoapisummary::

   biggr_models.queries.gene_queries.NON_LINK_SOURCES


Functions
---------

.. autoapisummary::

   biggr_models.queries.gene_queries.get_database_links_for_gene
   biggr_models.queries.gene_queries.get_gene_ids_for_gene_name
   biggr_models.queries.gene_queries.get_genes
   biggr_models.queries.gene_queries.get_all_genes
   biggr_models.queries.gene_queries.get_all_genes_with_urls
   biggr_models.queries.gene_queries.get_all_gene_strain_pairs
   biggr_models.queries.gene_queries.get_genes_with_genome_region
   biggr_models.queries.gene_queries.get_model_genes_for_gene_ids
   biggr_models.queries.gene_queries.get_urls_for_gene_ids
   biggr_models.queries.gene_queries.get_genome_region_for_gene_id
   biggr_models.queries.gene_queries.get_model_genes_count
   biggr_models.queries.gene_queries.get_model_genes
   biggr_models.queries.gene_queries.get_model_gene
   biggr_models.queries.gene_queries.get_gene


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

.. py:data:: NON_LINK_SOURCES

.. py:function:: get_database_links_for_gene(session: sqlalchemy.orm.Session, gene_db_id: int) -> Dict[str, list]

   Collect this gene's cross-references, grouped by source database.

   The ETL already stores every /db_xref from the GenBank file as a synonym,
   so this is a read of data that is loaded but was never surfaced. Sources
   that merely restate the gene's own names are skipped, and a source with no
   url_prefix yields text rather than a link.


.. py:function:: get_gene_ids_for_gene_name(name, session)

   Get the gene ids for a gene name.


.. py:function:: get_genes(gene_ids, session)

   Get the genes for a list of gene ids.


.. py:function:: get_all_genes(session)

   Get all genes.


.. py:function:: get_all_genes_with_urls(session, after=None, limit=100000)

   Get all genes with URLs, cursor-based pagination.

   Uses a single opaque cursor that encodes the internal two-phase state
   (genome genes first, then model genes).

   Cursor format: "g:<Gene.id>" for genome phase, "m:<ModelGene.id>" for model phase.


.. py:function:: get_all_gene_strain_pairs(session, after=None, limit=100000)

   Get all gene-strain pairs, one row per (gene, strain, bigg_id). Cursor-based pagination.


.. py:function:: get_genes_with_genome_region(gene_ids, session)

   Get gene + genome_region flattened data with genome_gene_url for a list of gene IDs.


.. py:function:: get_model_genes_for_gene_ids(gene_ids, session)

   Get model_gene + model flattened data with model_gene_url for a list of gene IDs.


.. py:function:: get_urls_for_gene_ids(gene_ids, session)

   Get genome and model URLs for a list of gene IDs, grouped by gene ID.


.. py:function:: get_genome_region_for_gene_id(ids, session)

   Get the genome region for a gene id.


.. py:function:: get_model_genes_count(model_bigg_id, session)

   Get the number of gene for the given model.


.. py:function:: get_model_genes(model_bigg_id, session, page=None, size=None, sort_column=None, sort_direction='ascending', **kwargs)

   Get model genes.

   :param model_bigg_id:
   :type model_bigg_id: The bigg id of the model to retrieve genes.
   :param session:
   :type session: An ome session object.
   :param page:
   :type page: The page, or None for all pages.
   :param size:
   :type size: The page length, or None for all pages.
   :param sort_column:
   :type sort_column: The name of the column to sort. Must be one of 'bigg_id', 'name',
   :param 'model_bigg_id':
   :param and 'organism'.:
   :param sort_direction:
   :type sort_direction: Either 'ascending' or 'descending'.

   :returns: * *A list of objects with keys 'bigg_id', 'name', 'model_bigg_id', and*
             * *'organism'.*


.. py:function:: get_model_gene(gene_bigg_id, model_bigg_id, session)

.. py:function:: get_gene(session: sqlalchemy.orm.Session, accession_type: str, accession_value: str, gene_bigg_id: str) -> Dict[str, Any]

