Example #1
0
alphabet = ['A', 'C', 'G', 'T'] if config["type"] == "nucleotide" else [
    'A', 'R', 'N', 'D', 'C', 'Q', 'E', 'G', 'H', 'I', 'L', 'K', 'M', 'F', 'P',
    'S', 'T', 'W', 'Y', 'V', 'B', 'Z', 'X'
]
for i in range(1, args.n + 1):
    filepath = args.dir + "/A" + "{0:0=4d}".format(i) + ".fa"
    #print(filepath)
    #print("Reading ", filepath)
    inst = MSA.Instance(filepath, alphabet)
    if inst.valid:
        msa.append(inst)

#instantiate the predictor and the trainer
predictor = Model.NeuroAlignPredictor(config, msa[0])
predictor.load_latest()
trainer = Trainer.NeuroAlignTrainer(config, predictor)

train_losses = []
mem_losses = []
rp_losses = []
gaps_losses = []
rest_dist_losses = []

for i in range(config["num_training_iteration"]):
    batch = []
    while len(batch) < config["batch_size"]:
        batch.append(msa[np.random.randint(len(msa))])
    train_loss_sum = 0
    mem_loss_sum = 0
    rp_loss_sum = 0
    gaps_loss_sum = 0