First, run generate.py to randomly sample molecule from latent space and save the molecular properties.

Second, run train_boundary.py to identify latent directions for each molecular property.

Thirdly, manipulate molecules via running generate_save_only_zinc.py which will generate the manipulation path of randomly sampled molecules.