| |
| from pathlib import Path |
| from dataclasses import dataclass |
|
|
|
|
| @dataclass |
| class Config: |
| SEED: int = 42 |
|
|
| ROOT_DIR: Path = Path(__file__).resolve().parent.parent |
|
|
| def __post_init__(self): |
| self.DATA_DIR = self.ROOT_DIR / "data" / "processed" |
| self.RAW_DIR = self.ROOT_DIR / "data" / "raw" |
| self.OUTPUT_DIR = self.ROOT_DIR / "output" |
| self.CASF_DIR = self.ROOT_DIR / "data" / "external" / "CASF-2016" |
| self.CASF13_DIR = self.ROOT_DIR / "data" / "external" / "CASF-2013" |
| self.DATA_DIR.mkdir(parents=True, exist_ok=True) |
| self.OUTPUT_DIR.mkdir(parents=True, exist_ok=True) |
|
|
| |
| LPPDB_CSV: str = "LP_PDBBind.csv" |
|
|
| |
| ESM_MODEL: str = "facebook/esm2_t12_35M_UR50D" |
| ESM_LAYERS: tuple = (8, 10, 11) |
| ESM_DIM: int = 480 |
|
|
| |
| MAX_SEQ_LEN: int = 1022 |
| HALF_SEQ_LEN: int = 511 |
|
|
| |
| ECFP_BITS: int = 1024 |
| ECFP_RADIUS: int = 2 |
|
|
| |
| INTERACT_DIM: int = 128 |
|
|
| |
| |
| |
| |
| |
| N_FOLDS: int = 5 |
| SEEDS: tuple = (42, 123, 456) |
| LR: float = 0.02 |
| N_TREES: int = 3000 |
| EARLY_STOP: int = 150 |
|
|
| |
| TTA_SCREEN: int = 5 |
| TTA_ACCURATE: int = 20 |
|
|
| |
| AD_KNN_K: int = 5 |
| AD_PERCENTILE: float = 95.0 |
| AD_MAX_MONO: float = 0.40 |
|
|
|
|
| config = Config() |
|
|
|
|
| if __name__ == "__main__": |
| print(f"ROOT: {config.ROOT_DIR}") |
| print(f"DATA: {config.DATA_DIR} exists={config.DATA_DIR.exists()}") |
| print(f"OUTPUT: {config.OUTPUT_DIR} exists={config.OUTPUT_DIR.exists()}") |
| print(f"CASF: {config.CASF_DIR} exists={config.CASF_DIR.exists()}") |
| print(f"CASF13: {config.CASF13_DIR} exists={config.CASF13_DIR.exists()}") |
| lp = config.RAW_DIR / config.LPPDB_CSV |
| print(f"LP-PDBBind CSV: {lp} exists={lp.exists()}") |
|
|
|
|