Back to .md Directory

Variant Data Retrieval

Documents a system that queries gnomAD variant data via DataFrames, genomic intervals, or string representations using SQLite.

May 2, 2026
0 downloads
2 views
ai
View source

What this file does

Documents a system that queries gnomAD variant data via DataFrames, genomic intervals, or string representations using SQLite.

When to use it

  • Building a variant retrieval pipeline for gnomAD data
  • Designing a modular query system with multiple input formats
  • Documenting a database access layer for genomic data
  • Creating architecture docs for a bioinformatics tool

Assumes this stack

PythonSQLitepandasgnomAD
graph LR
    DBConnectionManager["DBConnectionManager"]
    VariantDataProcessor["VariantDataProcessor"]
    QueryBuilder["QueryBuilder"]
    DataFrameQueryHandler["DataFrameQueryHandler"]
    DirectQueryExecutor["DirectQueryExecutor"]
    IntervalQueryHandler["IntervalQueryHandler"]
    StringQueryHandler["StringQueryHandler"]
    DataFrameQueryHandler -- "invokes" --> VariantDataProcessor
    DataFrameQueryHandler -- "invokes" --> QueryBuilder
    DataFrameQueryHandler -- "uses" --> DBConnectionManager
    IntervalQueryHandler -- "invokes" --> QueryBuilder
    IntervalQueryHandler -- "invokes" --> DirectQueryExecutor
    StringQueryHandler -- "invokes" --> VariantDataProcessor
    StringQueryHandler -- "invokes" --> QueryBuilder
    StringQueryHandler -- "invokes" --> DirectQueryExecutor
    DirectQueryExecutor -- "uses" --> DBConnectionManager

CodeBoardingDemoContact

Component Details

This system provides a robust interface for querying gnomAD variant data. It allows users to retrieve variant information using various input formats, including pandas DataFrames, genomic intervals, and string representations of variants. The system manages database connections, sanitizes input data, constructs SQL queries, and executes them, with support for parallel processing for large DataFrame queries.

DBConnectionManager

This component is responsible for establishing and managing connections to the SQLite database. It provides the core functionality to open a database connection for various operations.

Related Classes/Methods:

  • <a href="https://github.com/KalinNonchev/gnomAD_DB/blob/master/gnomad_db/database.py#L42-L43" target="_blank" rel="noopener noreferrer">gnomAD_DB.gnomad_db.database.gnomAD_DB.open_dbconn (42:43)</a>

VariantDataProcessor

This component handles the preparation and sanitization of variant data. It ensures that variant information from different input formats (DataFrame or string) is correctly formatted and packed for database queries.

Related Classes/Methods:

  • <a href="https://github.com/KalinNonchev/gnomAD_DB/blob/master/gnomad_db/database.py#L95-L100" target="_blank" rel="noopener noreferrer">gnomAD_DB.gnomad_db.database.gnomAD_DB._sanitize_variants (95:100)</a>
  • <a href="https://github.com/KalinNonchev/gnomAD_DB/blob/master/gnomad_db/database.py#L102-L103" target="_blank" rel="noopener noreferrer">gnomAD_DB.gnomad_db.database.gnomAD_DB._pack_var_args (102:103)</a>
  • <a href="https://github.com/KalinNonchev/gnomAD_DB/blob/master/gnomad_db/database.py#L170-L176" target="_blank" rel="noopener noreferrer">gnomAD_DB.gnomad_db.database.gnomAD_DB._pack_from_str (170:176)</a>

QueryBuilder

The QueryBuilder component is responsible for constructing the appropriate SQL query strings, specifically for selecting columns based on the user's request or default settings.

Related Classes/Methods:

  • <a href="https://github.com/KalinNonchev/gnomAD_DB/blob/master/gnomad_db/database.py#L163-L168" target="_blank" rel="noopener noreferrer">gnomAD_DB.gnomad_db.database.gnomAD_DB._query_columns (163:168)</a>

DataFrameQueryHandler

This component manages the retrieval of gnomAD information when the input is a pandas DataFrame of variants. It orchestrates data sanitization, packing, query building, and database interaction, potentially utilizing parallel processing.

Related Classes/Methods:

  • <a href="https://github.com/KalinNonchev/gnomAD_DB/blob/master/gnomad_db/database.py#L105-L138" target="_blank" rel="noopener noreferrer">gnomAD_DB.gnomad_db.database.gnomAD_DB._get_info_from_df (105:138)</a>
  • <a href="https://github.com/KalinNonchev/gnomAD_DB/blob/master/gnomad_db/database.py#L142-L159" target="_blank" rel="noopener noreferrer">gnomAD_DB.gnomad_db.database.gnomAD_DB.get_info_from_df (142:159)</a>

DirectQueryExecutor

This component provides a direct interface for executing arbitrary SQL queries against the gnomAD database and returning the results, typically as a pandas DataFrame.

Related Classes/Methods:

  • <a href="https://github.com/KalinNonchev/gnomAD_DB/blob/master/gnomad_db/database.py#L185-L188" target="_blank" rel="noopener noreferrer">gnomAD_DB.gnomad_db.database.gnomAD_DB.query_direct (185:188)</a>

IntervalQueryHandler

This component specializes in retrieving gnomAD information for a specified genomic interval (chromosome, start, and end positions). It uses the QueryBuilder and DirectQueryExecutor to perform its function.

Related Classes/Methods:

  • <a href="https://github.com/KalinNonchev/gnomAD_DB/blob/master/gnomad_db/database.py#L190-L199" target="_blank" rel="noopener noreferrer">gnomAD_DB.gnomad_db.database.gnomAD_DB.get_info_for_interval (190:199)</a>

StringQueryHandler

This component handles the retrieval of gnomAD information for a single variant provided as a string (e.g., 'chr:pos:ref>alt'). It relies on the VariantDataProcessor, QueryBuilder, and DirectQueryExecutor.

Related Classes/Methods:

  • <a href="https://github.com/KalinNonchev/gnomAD_DB/blob/master/gnomad_db/database.py#L203-L217" target="_blank" rel="noopener noreferrer">gnomAD_DB.gnomad_db.database.gnomAD_DB.get_info_from_str (203:217)</a>

FAQ

What's inside

1 Mermaid diagram, 7 component descriptions, each with related methods and links to source code.

Change this for your project

  • Replace gnomAD_DB.gnomad_db.database with your own module path
  • Replace https://github.com/KalinNonchev/gnomAD_DB with your repository URL
  • Replace gnomAD_DB.gnomad_db.database.gnomAD_DB with your class name

Where it goes

Keep it in your repository where the agent or team that needs it will read it.

Worth borrowing

  • Separating query construction from execution into distinct handlers
  • Using a Mermaid diagram to show component relationships and invocation flow

Related Documents