""" Module: model_directory.py This module provides a centralized directory for managing and accessing different model architectures used in the TEDDY project. It defines a dictionary of supported models and their configurations, allowing for easy integration and dynamic loading of models based on their names or paths. Main Features: - **model_dict**: A dictionary mapping model names to their corresponding classes, configurations, and masking keys. This enables seamless switching between different model architectures. - **get_architecture**: A utility function to retrieve the architecture name from a model's configuration file. Dependencies: - json: For loading model configuration files. - os: For handling file paths. - teddy.models.teddy_g.model: For importing the `TeddyGModel`, `TeddyGConfig`, and `TeddyGModelAnalysis` classes. Usage: 1. Access a model and its configuration from the `model_dict`: ```python model_info = model_dict["TeddyGModel"] model_cls = model_info["model_cls"] config_cls = model_info["config_cls"] ``` 2. Retrieve the architecture name from a model's configuration file: ```python architecture = get_architecture(model_name_or_path) ``` """ import json import os from teddy.models.teddy_g.model import ( TeddyGConfig, TeddyGModel, TeddyGModelAnalysis, ) model_dict = { "TeddyGModel": {"model_cls": TeddyGModel, "config_cls": TeddyGConfig, "masking_key": "gene_ids"}, "TeddyGModelAnalysis": { "model_cls": TeddyGModelAnalysis, "config_cls": TeddyGConfig, "masking_key": "gene_ids", }, } def get_architecture(model_name_or_path): with open(os.path.join(model_name_or_path, "config.json")) as f: config = json.load(f) return config["architectures"][0]