SaProt / scripts /mutation_zeroshot.py
anzhi2710gmailcom's picture
Upload folder using huggingface_hub
3b99abb verified
Raw
History Blame Contribute Delete
1.99 kB
import sys
sys.path.append('.')
import yaml
import argparse
from tqdm import tqdm
from easydict import EasyDict
from scripts.utils.others import setup_seed
from scripts.utils.module_loader import *
def run(config):
# Initialize a model
model = load_model(config.model)
# Initialize a dataset
data_module = load_dataset(config.dataset)
# Initialize a trainer
trainer = load_trainer(config)
# Record results
if config.setting.os_environ.NODE_RANK == 0 and config.setting.out_path is not None:
out_path = config.setting.out_path
out_dir = os.path.dirname(out_path)
if not os.path.exists(out_dir):
os.makedirs(out_dir)
w = open(config.setting.out_path, 'w')
w.write("dataset\tspearman\n")
# Save logs for ClinVar benchmark
if config.model.kwargs.get("log_dir", None) is not None:
os.makedirs(config.model.kwargs.log_dir, exist_ok=True)
for name in tqdm(os.listdir(config.setting.dataset_dir)):
print(name)
path = os.path.join(config.setting.dataset_dir, name)
data_module.test_lmdb = path
result = trainer.test(model=model, datamodule=data_module)
spearman = result[0]['spearman']
if config.setting.os_environ.NODE_RANK == 0 and config.setting.out_path is not None:
w.write(f"{name}\t{spearman:.4f}\n")
def get_args():
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--config', help="Running configurations", type=str, required=True)
return parser.parse_args()
def main():
with open(args.config, 'r', encoding='utf-8') as r:
config = EasyDict(yaml.safe_load(r))
if config.setting.seed:
setup_seed(config.setting.seed)
# set os environment variables
for k, v in config.setting.os_environ.items():
if v is not None and k not in os.environ:
os.environ[k] = str(v)
run(config)
if __name__ == '__main__':
args = get_args()
main()