Spaces:
Runtime error
Runtime error
| import argparse | |
| import uuid | |
| import logging | |
| import time | |
| import os | |
| import sys | |
| from utils.logger import create_exp_dir | |
| import glob | |
| class ArgsInit(object): | |
| def __init__(self): | |
| parser = argparse.ArgumentParser(description="DeeperGCN") | |
| # ===================== DATASET ===================== | |
| parser.add_argument( | |
| "--seed", type=int, | |
| default=1, help="Seed for numpy and torch" | |
| ) | |
| parser.add_argument( | |
| "--num_workers", type=int, | |
| default=0, help="number of workers (default: 0)" | |
| ) | |
| parser.add_argument( | |
| "--batch_size", type=int, | |
| default=5120, help="input batch size for training (default: 5120)", | |
| ) | |
| parser.add_argument( | |
| "--feature", type=str, | |
| default="full", help="two options: full or simple" | |
| ) | |
| parser.add_argument( | |
| "--add_virtual_node", | |
| action="store_true" | |
| ) | |
| # ===================== TRAIN & EVAL ===================== | |
| parser.add_argument( | |
| "--use_gpu", action="store_true" | |
| ) | |
| parser.add_argument( | |
| "--device", type=int, | |
| default=0, help="which gpu to use if any (default: 0)" | |
| ) | |
| parser.add_argument( | |
| "--epochs", type=int, | |
| default=20, help="number of epochs to train (default: 300)", | |
| ) | |
| parser.add_argument( | |
| "--lr", type=float, | |
| default=5e-5, help="learning rate set for optimizer (default: 5e-5)" | |
| ) | |
| parser.add_argument( | |
| "--dropout", type=float, | |
| default=0.2, help="Dropout rate layer (default: 0.2)" | |
| ) | |
| # model | |
| parser.add_argument( | |
| "--num_layers", | |
| type=int, | |
| default=20, | |
| help="the number of layers of the networks", | |
| ) | |
| parser.add_argument( | |
| "--mlp_layers", | |
| type=int, | |
| default=3, | |
| help="the number of layers of mlp in conv", | |
| ) | |
| parser.add_argument( | |
| "--hidden_channels", | |
| type=int, | |
| default=128, | |
| help="the dimension of embeddings of nodes and edges", | |
| ) | |
| parser.add_argument( | |
| "--block", | |
| default="res+", | |
| type=str, | |
| help="graph backbone block type {res+, res, dense, plain}", | |
| ) | |
| parser.add_argument("--conv", type=str, default="gen", help="the type of GCNs") | |
| parser.add_argument( | |
| "--gcn_aggr", | |
| type=str, | |
| default="softmax", | |
| help="the aggregator of GENConv [mean, max, add, softmax, softmax_sg, power]", | |
| ) | |
| parser.add_argument( | |
| "--norm", type=str, default="batch", help="the type of normalization layer" | |
| ) | |
| parser.add_argument( | |
| "--num_tasks", type=int, default=1, help="the number of prediction tasks" | |
| ) | |
| # learnable parameters | |
| parser.add_argument( | |
| "--t", type=float, default=1.0, help="the temperature of SoftMax" | |
| ) | |
| parser.add_argument( | |
| "--p", type=float, default=1.0, help="the power of PowerMean" | |
| ) | |
| parser.add_argument("--learn_t", action="store_true") | |
| parser.add_argument("--learn_p", action="store_true") | |
| # message norm | |
| parser.add_argument("--msg_norm", action="store_true") | |
| parser.add_argument("--learn_msg_scale", action="store_true") | |
| # encode edge in conv | |
| parser.add_argument("--conv_encode_edge", action="store_true") | |
| # graph pooling type | |
| parser.add_argument( | |
| "--graph_pooling", type=str, default="mean", help="graph pooling method" | |
| ) | |
| # save model | |
| parser.add_argument( | |
| "--model_save_path", | |
| type=str, | |
| default="model_ckpt", | |
| help="the directory used to save models", | |
| ) | |
| parser.add_argument("--save", type=str, default="EXP", help="experiment name") | |
| # load pre-trained model | |
| parser.add_argument( | |
| "--model_load_init_path", | |
| type=str, | |
| default="/media/SSD5/pruiz/home/Best_Models", | |
| help="the directory to load adversarial weights", | |
| ) | |
| parser.add_argument( | |
| "--model_load_prot_init_path", | |
| type=str, | |
| default="/media/SSD5/pruiz/home/Best_Models", | |
| help="the directory to load protein weights", | |
| ) | |
| parser.add_argument( | |
| "--model_load_path", | |
| type=str, | |
| default="Checkpoint_Last_model.pth", | |
| help="the path of pre-trained model", | |
| ) | |
| parser.add_argument( | |
| "--resume", | |
| action="store_true", | |
| default=False, | |
| help="resume training from a previous model", | |
| ) | |
| # data partition | |
| parser.add_argument("--cross_val", type=int, default=0, help="Data partition") | |
| # Task | |
| parser.add_argument( | |
| "--task_type", type=str, default="classification", help="Choose task type" | |
| ) | |
| parser.add_argument( | |
| "--binary", | |
| action="store_true", | |
| default=False, | |
| help="Performed de binary task", | |
| ) | |
| parser.add_argument( | |
| "--balanced_loader", | |
| action="store_true", | |
| default=False, | |
| help="Balance the dataloader", | |
| ) | |
| parser.add_argument( | |
| "--target", type=str, default=None, help="Target for the binary task" | |
| ) | |
| parser.add_argument( | |
| "--nclasses", type=int, default=102, help="number of target classes" | |
| ) | |
| parser.add_argument( | |
| "--num_features", | |
| type=int, | |
| default=2, | |
| help="Num of features used for simple classification", | |
| ) | |
| # PROTEIN MODEL | |
| parser.add_argument( | |
| "--LMPM", | |
| action="store_true", | |
| default=False, | |
| help="Initialize training the LM and PM jointly.", | |
| ) | |
| parser.add_argument( | |
| "--PLANET", | |
| action="store_true", | |
| default=False, | |
| help="Initialize training PLANET.", | |
| ) | |
| parser.add_argument( | |
| "--use_prot", action="store_true", default=False, help="Use protein info" | |
| ) | |
| parser.add_argument( | |
| "--freeze_molecule", | |
| action="store_true", | |
| default=False, | |
| help="Whether to freeze molecule network", | |
| ) | |
| parser.add_argument( | |
| "--num_layers_prot", | |
| type=int, | |
| default=20, | |
| help="the number of layers of the networks", | |
| ) | |
| parser.add_argument( | |
| "--mlp_layers_prot", | |
| type=int, | |
| default=3, | |
| help="the number of layers of mlp in conv", | |
| ) | |
| parser.add_argument( | |
| "--hidden_channels_prot", | |
| type=int, | |
| default=128, | |
| help="the dimension of embeddings of nodes and edges", | |
| ) | |
| parser.add_argument("--msg_norm_prot", action="store_true", default=False) | |
| parser.add_argument( | |
| "--learn_msg_scale_prot", action="store_true", default=False | |
| ) | |
| parser.add_argument( | |
| "--conv_encode_edge_prot", action="store_true", default=False | |
| ) | |
| parser.add_argument("--use_prot_metadata", action="store_true", default=False) | |
| parser.add_argument( | |
| "--num_metadata", | |
| type=int, | |
| default=240, | |
| help="Number of metadata of the protein.", | |
| ) | |
| parser.add_argument( | |
| "--scalar", | |
| action="store_true", | |
| default=False, | |
| help="Use same multiplier factor for all metadata", | |
| ) | |
| # CONCATENATION MULTIPLIER | |
| parser.add_argument( | |
| "--multi_concat", | |
| action="store_true", | |
| default=False, | |
| help="Use a multiplier to concant info", | |
| ) | |
| # CONCATENATION MLP | |
| parser.add_argument( | |
| "--MLP", | |
| action="store_true", | |
| default=False, | |
| help="Use a multiplier to concant info", | |
| ) | |
| # ADVERSARIAL AUGMENTATION TRAINING | |
| parser.add_argument( | |
| "--init_adv_training", | |
| action="store_true", | |
| default=False, | |
| help="Initialize training with adversarial molecules", | |
| ) | |
| parser.add_argument( | |
| "--advs", | |
| action="store_true", | |
| default=False, | |
| help="Training with adversarial molecules", | |
| ) | |
| parser.add_argument( | |
| "--saliency", | |
| action="store_true", | |
| default=False, | |
| help="Allow backpropagation through atom features.", | |
| ) | |
| parser.add_argument( | |
| "--inference_path", | |
| type=str, | |
| help='path model for inference', | |
| default=None | |
| ) | |
| parser.add_argument( | |
| "--target_checkpoint_path", | |
| type=str, | |
| help='path to the target checkpoints', | |
| default=None | |
| ) | |
| parser.add_argument( | |
| "--target_list", | |
| type=str, | |
| help='path to the target list mappings', | |
| default=None | |
| ) | |
| parser.add_argument( | |
| "--input_file_smiles", | |
| type=str, | |
| help='path input file with smiles for inference', | |
| default=None | |
| ) | |
| parser.add_argument( | |
| "--output_file", | |
| type=str, | |
| help='path output file with predictions', | |
| default=None | |
| ) | |
| self.args = parser.parse_args() | |
| def save_exp(self): | |
| self.args.save = "{}/Fold{}".format(self.args.save, str(self.args.cross_val)) | |
| self.args.save = "log/{}".format(self.args.save) | |
| self.args.model_save_path = os.path.join( | |
| self.args.save, self.args.model_save_path | |
| ) | |
| create_exp_dir(self.args.save, scripts_to_save=glob.glob("*.py")) | |
| log_format = "%(asctime)s %(message)s" | |
| logging.basicConfig( | |
| stream=sys.stdout, | |
| level=logging.INFO, | |
| format=log_format, | |
| datefmt="%m/%d %I:%M:%S %p", | |
| ) | |
| fh = logging.FileHandler(os.path.join(self.args.save, "log.txt")) | |
| fh.setFormatter(logging.Formatter(log_format)) | |
| logging.getLogger().addHandler(fh) | |
| return self.args | |