Variant Data Retrieval
Documents a system that queries gnomAD variant data via DataFrames, genomic intervals, or string representations using SQLite.
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
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
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.databasewith your own module path - Replace
https://github.com/KalinNonchev/gnomAD_DBwith your repository URL - Replace
gnomAD_DB.gnomad_db.database.gnomAD_DBwith 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
Data Retrieval
Downloads UK electricity generation and pricing data from Electric Insights and Energy Charts APIs using the moepy library, then visualises fuel-mix time-series.
Lesson 4: Information Retrieval
Guides building a Flask app that fetches Bitcoin exchange rates from multiple APIs, stores them in SQLite, and displays best rates and historical trends.
Papers
Lists 100+ papers on deep learning for image retrieval and hashing, each with links and brief metadata.
开放领域问答中的密集段落检索
Explains dense passage retrieval for open-domain QA and provides a code template using Simple Transformers to train a DPR model.