graph LR
User_Interface_CLI_["User Interface (CLI)"]
Agent_Workflow_Orchestrator["Agent Workflow Orchestrator"]
Core_AI_Agents["Core AI Agents"]
External_Service_Integration["External Service Integration"]
Data_Persistence_Layer["Data Persistence Layer"]
System_Utilities_Support_Scripts["System Utilities & Support Scripts"]
User_Interface_CLI_ -- "initiates and receives output from" --> Agent_Workflow_Orchestrator
Agent_Workflow_Orchestrator -- "coordinates and invokes" --> Core_AI_Agents
Agent_Workflow_Orchestrator -- "interacts with for workflow state" --> Data_Persistence_Layer
Agent_Workflow_Orchestrator -- "utilizes" --> System_Utilities_Support_Scripts
Core_AI_Agents -- "utilize for external data access" --> External_Service_Integration
Core_AI_Agents -- "interact with for agent-specific data" --> Data_Persistence_Layer
Core_AI_Agents -- "leverage for common functions" --> System_Utilities_Support_Scripts
Core_AI_Agents -- "reports results back to" --> Agent_Workflow_Orchestrator
External_Service_Integration -- "relies on for configuration and common helpers" --> System_Utilities_Support_Scripts
Data_Persistence_Layer -- "leverages for database-specific utilities" --> System_Utilities_Support_Scripts
System_Utilities_Support_Scripts -- "manages and populates" --> Data_Persistence_Layer
System_Utilities_Support_Scripts -- "may fetch raw data using" --> External_Service_Integration
click User_Interface_CLI_ href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/SRAgent/User_Interface_CLI_.md" "Details"
click Agent_Workflow_Orchestrator href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/SRAgent/Agent_Workflow_Orchestrator.md" "Details"
click Core_AI_Agents href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/SRAgent/Core_AI_Agents.md" "Details"
click External_Service_Integration href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/SRAgent/External_Service_Integration.md" "Details"
click Data_Persistence_Layer href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/SRAgent/Data_Persistence_Layer.md" "Details"
click System_Utilities_Support_Scripts href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/SRAgent/System_Utilities_Support_Scripts.md" "Details"
The SRAgent project, an AI Agent-based Bioinformatics Data Curation and Retrieval System, is architected around a modular design with a clear separation of concerns. The system leverages an agent-oriented approach, orchestrating various AI agents and specialized tools to interact with external bioinformatics services and manage internal data.
User Interface (CLI) [Expand]
The primary entry point for users, responsible for parsing commands, validating inputs, and initiating specific data curation and retrieval workflows. It provides the interactive command-line experience.
Related Classes/Methods:
SRAgent.cli.__main__(1:1)SRAgent.cli.entrez(1:1)SRAgent.cli.sragent(1:1)SRAgent.cli.metadata(1:1)SRAgent.cli.tissue_ontology(1:1)SRAgent.cli.srx_info(1:1)SRAgent.cli.find_datasets(1:1)SRAgent.cli.utils(1:1)
Agent Workflow Orchestrator [Expand]
Orchestrates complex, multi-step data curation and retrieval processes. It defines the sequence of operations, coordinates the execution of various Core AI Agents, and manages their interactions to achieve high-level bioinformatics tasks.
Related Classes/Methods:
SRAgent.workflows.find_datasets(1:1)SRAgent.workflows.metadata(1:1)SRAgent.workflows.tissue_ontology(1:1)SRAgent.workflows.srx_info(1:1)SRAgent.workflows.convert(1:1)SRAgent.workflows.utils(1:1)
Core AI Agents [Expand]
Encapsulates the LLM-driven reasoning and decision-making logic for specialized bioinformatics tasks. Each agent leverages External Service Integration tools to perform atomic operations and contributes to the overall workflow. This component also handles formatting and displaying agent progress.
Related Classes/Methods:
SRAgent.agents.sragent(1:1)SRAgent.agents.entrez(1:1)SRAgent.agents.find_datasets(1:1)SRAgent.agents.tissue_ontology(1:1)SRAgent.agents.ncbi_fetch(1:1)SRAgent.agents.esearch(1:1)SRAgent.agents.efetch(1:1)SRAgent.agents.elink(1:1)SRAgent.agents.esummary(1:1)SRAgent.agents.bigquery(1:1)SRAgent.agents.sequences(1:1)SRAgent.agents.entrez_convert(1:1)SRAgent.agents.display(1:1)SRAgent.agents.utils(1:1)
External Service Integration [Expand]
Provides a standardized and abstracted interface for interacting with various external bioinformatics APIs and services. This includes NCBI Entrez databases, SRA data processing utilities, Google Cloud BigQuery, and the UBERON tissue ontology service. It acts as a wrapper for external interactions.
Related Classes/Methods:
SRAgent.tools.esearch(180:250)SRAgent.tools.efetch(15:68)SRAgent.tools.elink(44:129)SRAgent.tools.esummary(13:69)SRAgent.tools.ncbi_fetch(1:1)SRAgent.tools.entrez_db(1:1)SRAgent.tools.sequences(1:1)SRAgent.tools.bigquery(1:1)SRAgent.tools.tissue_ontology(1:1)SRAgent.tools.utils(1:1)
Data Persistence Layer [Expand]
Manages all persistent data storage and retrieval operations, primarily with the PostgreSQL database. It handles connection management, schema creation, data insertion, updates, and querying, abstracting the underlying database interactions from other components.
Related Classes/Methods:
SRAgent.db.connect(1:1)SRAgent.db.create(1:1)SRAgent.db.get(1:1)SRAgent.db.update(1:1)SRAgent.db.upsert(1:1)SRAgent.db.utils(1:1)SRAgent.db.fix(1:1)
System Utilities & Support Scripts [Expand]
A collection of foundational shared helper functions, configuration management, and standalone scripts. This includes general data manipulation, command execution, initial data ingestion, format transformations, database administration, metadata enrichment, dataset discovery, and the evaluation framework.
Related Classes/Methods:
SRAgent.utils(1:1)SRAgent.organisms(1:1)SRAgent.search(1:1)SRAgent.scripts.acc2srr(1:1)SRAgent.scripts.uberon_obo_embed(1:1)SRAgent.scripts.obs_csv_to_parquet(1:1)SRAgent.scripts.h5ad_to_parquet(1:1)SRAgent.scripts.bioproject2srx(1:1)SRAgent.scripts.db_tools(1:1)SRAgent.scripts.add_tissue_ontology(1:1)SRAgent.scripts.get_srx_date(1:1)SRAgent.scripts.dataset_finder(1:1)SRAgent.scripts.eval(160:228)