| """ |
| utils.py - μμ μ μ λ° μ νΈλ¦¬ν° ν¨μ |
| """ |
| import os |
| from typing import Dict, List |
|
|
| |
| DIDB_FILTER_COLS = [ |
| "logP", |
| "pKa", |
| "solubility", |
| "permeability", |
| "plasma_protein_binding", |
| |
| "fu_in_vitro", |
| |
| ] |
|
|
| LOAD_DATA_PATH = { |
| "didb":"./dataset_v2/categorized_dataset/preprocessed_DIDBset.csv", |
| "portal":"./dataset_v2/categorized_dataset/preprocessed_portal.csv", |
| "kist":"./dataset_v2/categorized_dataset/convert_kist_data.csv", |
| "all":"./dataset_v2/categorized_dataset/total.csv" |
| } |
|
|
| LOAD_PREPARED_DATA_PATH = { |
| "didb":"./dataset_v2/prepared_set/didb", |
| "portal":"./dataset_v2/prepared_set/portal", |
| "kist":"./dataset_v2/prepared_set/kist", |
| "all":"./dataset_v2/prepared_set/all", |
| "all_clean":"./dataset_v2/prepared_set_outline/all", |
| "all_rating":"./dataset_v2/prepared_set_rating/all", |
| } |
|
|
| def get_task_list(task_type: str) -> List[str]: |
| """ |
| νμ€ν¬ μ νκ³Ό λ°μ΄ν° μ νμ λ°λ₯Έ νμ€ν¬ λͺ©λ‘μ λ°νν©λλ€. |
| |
| Args: |
| task_type: νμ€ν¬ μ ν ('cls' λλ 'reg' λλ 'multi_reg') |
| |
| Returns: |
| νμ€ν¬ λͺ©λ‘ |
| """ |
| y_cols_base = DIDB_FILTER_COLS |
| |
| |
| if task_type == 'cls': |
| return [f'{x}.cls' for x in y_cols_base] |
| else: |
| return y_cols_base |
| |
|
|
| def load_vocabs(data_folder: str, cls_targets: List[str]) -> Dict[str, Dict[str, int]]: |
| """ |
| λΆλ₯ νμ€ν¬μ© μ΄ν μ¬μ μ λ‘λν©λλ€. |
| |
| Args: |
| data_folder: λ°μ΄ν° ν΄λ κ²½λ‘ |
| cls_targets: λΆλ₯ νμ€ν¬ λ μ΄λΈ λͺ©λ‘ |
| |
| Returns: |
| μ΄ν μ¬μ (νμ€ν¬λ³ {λ μ΄λΈ: μΈλ±μ€}) |
| """ |
| all_vocabs = {} |
| |
| for target in cls_targets: |
| vocab_path = os.path.join(data_folder, f'vocabs/{target}.vocab') |
| |
| if target not in all_vocabs: |
| all_vocabs[target] = {} |
| |
| try: |
| with open(vocab_path, 'r', encoding='utf-8') as f: |
| for line in f: |
| line = line.rstrip() |
| vocab, idx = line.split('\t') |
| idx = int(idx) |
| all_vocabs[target][vocab] = idx |
| except FileNotFoundError: |
| |
| print(f"Warning: Vocabulary file not found for {target}. Using default values.") |
| all_vocabs[target] = {'inhibitor': 1, 'non-inhibitor': 0} |
| |
| return all_vocabs |