graph LR
Application_Orchestrator["Application Orchestrator"]
Configuration_Context_Management["Configuration & Context Management"]
Chemical_Domain_Model["Chemical Domain Model"]
Retrosynthetic_Strategy_Framework["Retrosynthetic Strategy Framework"]
Stock_Management["Stock Management"]
Retrosynthetic_Search_Engines["Retrosynthetic Search Engines"]
Reaction_Pathway_Analysis_Management["Reaction Pathway Analysis & Management"]
User_Interfaces["User Interfaces"]
Application_Orchestrator -- "Initializes/Uses" --> Configuration_Context_Management
Application_Orchestrator -- "Orchestrates" --> Retrosynthetic_Search_Engines
Configuration_Context_Management -- "Configures" --> Retrosynthetic_Strategy_Framework
Configuration_Context_Management -- "Configures" --> Stock_Management
Chemical_Domain_Model -- "Provides Data To" --> Retrosynthetic_Strategy_Framework
Chemical_Domain_Model -- "Provides Data To" --> Retrosynthetic_Search_Engines
Retrosynthetic_Strategy_Framework -- "Uses" --> Chemical_Domain_Model
Retrosynthetic_Strategy_Framework -- "Uses" --> Stock_Management
Stock_Management -- "Uses" --> Chemical_Domain_Model
Stock_Management -- "Provides Info To" --> Retrosynthetic_Strategy_Framework
Retrosynthetic_Search_Engines -- "Uses" --> Chemical_Domain_Model
Retrosynthetic_Search_Engines -- "Applies" --> Retrosynthetic_Strategy_Framework
Reaction_Pathway_Analysis_Management -- "Processes Output From" --> Retrosynthetic_Search_Engines
Reaction_Pathway_Analysis_Management -- "Provides Results To" --> Application_Orchestrator
User_Interfaces -- "Interacts With" --> Application_Orchestrator
User_Interfaces -- "Visualizes" --> Reaction_Pathway_Analysis_Management
click Application_Orchestrator href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/aizynthfinder/Application_Orchestrator.md" "Details"
click Configuration_Context_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/aizynthfinder/Configuration_Context_Management.md" "Details"
click Chemical_Domain_Model href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/aizynthfinder/Chemical_Domain_Model.md" "Details"
click Retrosynthetic_Strategy_Framework href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/aizynthfinder/Retrosynthetic_Strategy_Framework.md" "Details"
click Stock_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/aizynthfinder/Stock_Management.md" "Details"
click Retrosynthetic_Search_Engines href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/aizynthfinder/Retrosynthetic_Search_Engines.md" "Details"
click User_Interfaces href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/aizynthfinder/User_Interfaces.md" "Details"
aizynthfinder is a modular and extensible software tool for retrosynthetic planning in cheminformatics, designed to predict synthetic pathways for target molecules using AI/ML strategies. At its core, the system orchestrates a search process that integrates configurable components such as reaction policies, scoring models, and stock databases. The architecture separates concerns across modules for configuration management, chemical data modeling, retrosynthesis strategy execution, search algorithms (e.g., MCTS), and pathway analysis. Users interact with the system via a CLI or GUI to generate and explore feasible synthetic routes.
Application Orchestrator [Expand]
The central control unit that initializes the retrosynthesis process, orchestrates the search, and manages the overall workflow from target molecule input to route collection. It acts as the main entry point for executing a retrosynthesis plan.
Related Classes/Methods:
Configuration & Context Management [Expand]
Manages application-wide settings, loads configurations from various sources (e.g., YAML files), and provides a centralized context for accessing and injecting different strategies (policies, scorers, stock sources) throughout the application. It ensures that components are initialized with the correct dependencies.
Related Classes/Methods:
Chemical Domain Model [Expand]
Defines the fundamental data structures for representing chemical molecules and retro-reactions, along with core chemical operations and serialization/deserialization. It provides the common language and data representation for all cheminformatics-related components.
Related Classes/Methods:
aizynthfinder/chem/mol.py(1:1)aizynthfinder/chem/reaction.py(1:1)aizynthfinder/chem/serialization.py(1:1)
Retrosynthetic Strategy Framework [Expand]
Provides a flexible, plugin-based architecture for defining and managing various strategies involved in retrosynthesis. This includes expansion strategies (generating possible retro-reactions, often using ML models), filter strategies (pruning undesirable reactions or molecules), and scoring strategies (evaluating the quality of molecules and reaction routes). It also encapsulates the integration with underlying machine learning models.
Related Classes/Methods:
aizynthfinder/context/policy/policies.py(1:1)aizynthfinder/context/policy/expansion_strategies.py(1:1)aizynthfinder/context/policy/filter_strategies.py(1:1)aizynthfinder/context/scoring/collection.py(1:1)aizynthfinder/context/scoring/scorers.py(1:1)aizynthfinder/plugins/expansion_strategies.py(1:1)aizynthfinder/utils/models.py(1:1)aizynthfinder/utils/sc_score.py(1:1)
Stock Management [Expand]
Manages and queries the availability of starting materials from various configured sources (e.g., in-memory databases, external databases like MongoDB, or bloom filters). It determines if a molecule is "in stock" and thus a valid precursor for a synthetic pathway.
Related Classes/Methods:
Retrosynthetic Search Engines [Expand]
Implements various search algorithms (e.g., Monte Carlo Tree Search, Depth-First Proof-Number Search, Breadth-First Search, Retro*) to explore the chemical reaction space and discover synthetic pathways from a target molecule to available precursors. It builds and traverses the reaction tree based on the defined strategies.
Related Classes/Methods:
aizynthfinder/search/mcts/search.py(1:1)aizynthfinder/search/dfpn/search_tree.py(1:1)aizynthfinder/search/breadth_first/search_tree.py(1:1)aizynthfinder/search/retrostar/search_tree.py(1:1)aizynthfinder/search/andor_trees.py(1:1)
Collects, stores, and provides functionalities for managing, filtering, analyzing, and visualizing discovered retrosynthetic reaction routes and the underlying search trees. It helps in understanding and selecting the best synthetic pathways, often presenting Pareto-optimal solutions.
Related Classes/Methods:
aizynthfinder/reactiontree/reactiontree.py(1:1)aizynthfinder/analysis/routes.py(1:1)aizynthfinder/analysis/tree_analysis.py(1:1)aizynthfinder/analysis/utils.py(1:1)
User Interfaces [Expand]
Provides various means for users to interact with the AiZynthFinder application. This includes a command-line interface (CLI) for batch processing and scripting, and a web-based graphical user interface (GUI) for interactive exploration of search trees and reaction routes.
Related Classes/Methods:
aizynthfinder/interfaces/aizynthcli.py(1:1)aizynthfinder/interfaces/aizynthapp.py(1:1)aizynthfinder/interfaces/gui/(1:1)