MatthijsHak / MetalDock

Dock organometallic compounds to proteins/DNA/biomolecules
MIT License
8 stars 6 forks source link

MC optimization fails #23

Open StefanIvanovIBBR opened 6 months ago

StefanIvanovIBBR commented 6 months ago

(base) stefan@stefan-Latitude-5521:~$ MetalDock/metaldock -i mc_input.ini SPACING BETWEEN GRID POINTS IS STANDARD SET TO 0.375 Å BOX SIZE MUST BE INTEGER GRID POINTS WHICH WAS NOT FOUND BOX SIZE SIDE ROUNDED UP AND SET TO 20.301 Å

multiprocessing.pool.RemoteTraceback: """ Traceback (most recent call last): File "/home/stefan/anaconda3/lib/python3.11/multiprocessing/pool.py", line 125, in worker result = (True, func(*args, **kwds)) ^^^^^^^^^^^^^^^^^^^ File "/home/stefan/anaconda3/lib/python3.11/multiprocessing/pool.py", line 51, in starmapstar return list(itertools.starmap(args[0], args[1])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/stefan/MetalDock/src/metal_dock/monte_carlo.py", line 27, in dock_pool copy_tree(dock_dir_in, dock_dir_out) File "/home/stefan/anaconda3/lib/python3.11/site-packages/setuptools/_distutils/dir_util.py", line 139, in copy_tree raise DistutilsFileError("cannot copy tree '%s': not a directory" % src) distutils.errors.DistutilsFileError: cannot copy tree '/home/stefan/data_set/protein_0/output/docking': not a directory """

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/home/stefan/MetalDock/metaldock", line 6, in main() File "/home/stefan/MetalDock/src/metal_dock/main.py", line 21, in main optimize_MC(par) File "/home/stefan/MetalDock/src/metal_dock/monte_carlo.py", line 148, in optimize_MC best_rmsd = calculate_rmsd(par, best_parameter_set, input_dir, tmp_dir, dir_list) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/stefan/MetalDock/src/metal_dock/monte_carlo.py", line 80, in calculate_rmsd rmsd_avg_list = pool.starmap(dock_pool, zip(dir_list, repeat(par), repeat(parameter_set), repeat(input_dir), repeat(tmp_dir))) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/stefan/anaconda3/lib/python3.11/multiprocessing/pool.py", line 375, in starmap return self._map_async(func, iterable, starmapstar, chunksize).get() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/stefan/anaconda3/lib/python3.11/multiprocessing/pool.py", line 774, in get raise self._value distutils.errors.DistutilsFileError: cannot copy tree '/home/stefan/data_set/protein_0/output/docking': not a directory

StefanIvanovIBBR commented 6 months ago

What exactly is being optimized with MC optimization? It's hard to tell from the example input.

(base) stefan@stefan-Latitude-5521:~/MetalDock/input_examples$ cat mc_input.ini [DEFAULT] metal_symbol = Os parameter_file = metal_dock.dat method = mc

[DOCKING] random_pos = True num_poses = 10 box_size = 20 ga_dock = True ga_dock_pop_size = 200 ga_dock_num_evals = 2500000 ga_dock_num_generations = 30000 ga_dock_elitism = 2 ga_dock_mutation_rate = 0.2 ga_dock_crossover_rate = 0.80 ga_dock_window_size = 20

MatthijsHak commented 6 months ago

Hi,

The MC optimization procedure can be used to optimize new parameters for metal atoms that are currently not included in MetalDock. Osmium is already included, so an optimization procedure for this would be redundant. I do agree with you that the example for this procedure is rather poor, and I will write an improvement for this.