graph LR
User_Interface_CLI_["User Interface (CLI)"]
Data_Persistence_Database_["Data Persistence (Database)"]
Molecular_Data_Pipeline_Fragmentation_Indexing_["Molecular Data Pipeline (Fragmentation & Indexing)"]
MMP_Analysis_Prediction["MMP Analysis & Prediction"]
Cheminformatics_Core["Cheminformatics Core"]
Property_Data_Management["Property Data Management"]
User_Interface_CLI_ -- "Directs" --> Molecular_Data_Pipeline_Fragmentation_Indexing_
User_Interface_CLI_ -- "Directs" --> MMP_Analysis_Prediction
User_Interface_CLI_ -- "Directs" --> Property_Data_Management
User_Interface_CLI_ -- "Receives Results From" --> MMP_Analysis_Prediction
Data_Persistence_Database_ -- "Stores Data For" --> Molecular_Data_Pipeline_Fragmentation_Indexing_
Data_Persistence_Database_ -- "Stores Data For" --> MMP_Analysis_Prediction
Data_Persistence_Database_ -- "Provides Data To" --> Molecular_Data_Pipeline_Fragmentation_Indexing_
Data_Persistence_Database_ -- "Provides Data To" --> MMP_Analysis_Prediction
Molecular_Data_Pipeline_Fragmentation_Indexing_ -- "Receives Commands From" --> User_Interface_CLI_
Molecular_Data_Pipeline_Fragmentation_Indexing_ -- "Stores/Retrieves Data From" --> Data_Persistence_Database_
Molecular_Data_Pipeline_Fragmentation_Indexing_ -- "Uses" --> Cheminformatics_Core
Molecular_Data_Pipeline_Fragmentation_Indexing_ -- "Uses" --> Property_Data_Management
Molecular_Data_Pipeline_Fragmentation_Indexing_ -- "Provides Data To" --> MMP_Analysis_Prediction
MMP_Analysis_Prediction -- "Receives Commands From" --> User_Interface_CLI_
MMP_Analysis_Prediction -- "Queries Data From" --> Data_Persistence_Database_
MMP_Analysis_Prediction -- "Uses" --> Cheminformatics_Core
MMP_Analysis_Prediction -- "Uses" --> Property_Data_Management
MMP_Analysis_Prediction -- "Provides Results To" --> User_Interface_CLI_
Cheminformatics_Core -- "Used By" --> Molecular_Data_Pipeline_Fragmentation_Indexing_
Cheminformatics_Core -- "Used By" --> MMP_Analysis_Prediction
Property_Data_Management -- "Receives Commands From" --> User_Interface_CLI_
Property_Data_Management -- "Provides Data To" --> Molecular_Data_Pipeline_Fragmentation_Indexing_
Property_Data_Management -- "Provides Data To" --> MMP_Analysis_Prediction
click Data_Persistence_Database_ href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/mmpdb/Data_Persistence_Database_.md" "Details"
click Molecular_Data_Pipeline_Fragmentation_Indexing_ href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/mmpdb/Molecular_Data_Pipeline_Fragmentation_Indexing_.md" "Details"
click MMP_Analysis_Prediction href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/mmpdb/MMP_Analysis_Prediction.md" "Details"
click Cheminformatics_Core href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/mmpdb/Cheminformatics_Core.md" "Details"
click Property_Data_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/mmpdb/Property_Data_Management.md" "Details"
Project Type: Data Processing and Analysis Tool. Architectural Patterns: Modular Design, Data-Centric Architecture, Pipeline/Workflow Pattern, Database Integration, CLI-driven Application.
Serves as the primary entry point for users, parsing commands and arguments. It orchestrates the overall workflow by directing operations to the appropriate core processing and analysis components.
Related Classes/Methods:
mmpdblib.cli.fragment(189:285)mmpdblib.cli.index(404:525)mmpdblib.cli.transform(321:447)mmpdblib.cli.predict(181:340)mmpdblib.cli.generate(648:773)mmpdblib.cli.merge(886:969)mmpdblib.cli.click_utils(1:10000)mmpdblib.cli.__init__(1:10000)
Data Persistence (Database) [Expand]
Manages all persistent data storage and retrieval for the mmpdb application. It defines the database schema using Peewee ORM and handles connections to various database backends (e.g., SQLite, PostgreSQL).
Related Classes/Methods:
Molecular Data Pipeline (Fragmentation & Indexing) [Expand]
This component encompasses the core data transformation steps. It implements algorithms for breaking down molecules into fragments and subsequently identifies and indexes Matched Molecular Pairs (MMPs), including the calculation of rule environments and aggregation of statistical data.
Related Classes/Methods:
mmpdblib.fragment_algorithm(1:10000)mmpdblib.fragment_db(1:10000)mmpdblib.fragment_records(1:10000)mmpdblib.fragment_types(1:10000)mmpdblib.index_algorithm(1:10000)mmpdblib.index_writers(1:10000)
MMP Analysis & Prediction [Expand]
Responsible for performing various analyses based on the indexed MMP data. This includes transforming molecules, predicting properties for new compounds, and potentially generating novel molecules by applying learned MMP rules.
Related Classes/Methods:
Cheminformatics Core [Expand]
A foundational utility layer providing essential cheminformatics operations. This includes functions for computing chemical environments, converting R-groups to SMARTS patterns, and general SMILES string manipulations, which are critical for molecular processing and analysis.
Related Classes/Methods:
Property Data Management [Expand]
Handles the loading, parsing, and association of external property data with compounds. This component ensures that quantitative property information is available for integration into the MMP indexing and analysis workflows.
Related Classes/Methods: