delemottelab / string-method-swarms-trajectories

A python implementation of the string method with swarms of trajectories using GROMACS
MIT License
17 stars 5 forks source link

Error with postprocessing when maxiter is reached #16

Open sperezconesa opened 3 years ago

sperezconesa commented 3 years ago

Hello,

When a string simulation reaches maxiter. This error is generated.

2020-11-26 05:36:29 stringmethod-0-INFO: Stopping all workers for step swarms_mdrun
2020-11-26 05:36:30 stringmethod-0-INFO: Convergence between iteration 299 and 300: 0.04407884625578595
2020-11-26 05:36:30 stringmethod-1-DEBUG: Using config Config(simu_id='adp', string_dir='strings', md_dir='md', mdp_dir='mdp', topology_dir='topology', postprocessing_dir='postprocessing', swarm_size=32, max_iterations=300, fixed_endpoints=True, steered_md_target_path='strings/string0.txt', steered_md_start_coordinates='confout.gro', version='1.0.0', log_level='DEBUG')
2020-11-26 05:36:30 stringmethod-2-DEBUG: Using config Config(simu_id='adp', string_dir='strings', md_dir='md', mdp_dir='mdp', topology_dir='topology', postprocessing_dir='postprocessing', swarm_size=32, max_iterations=300, fixed_endpoints=True, steered_md_target_path='strings/string0.txt', steered_md_start_coordinates='confout.gro', version='1.0.0', log_level='DEBUG')
2020-11-26 05:36:30 stringmethod-3-DEBUG: Using config Config(simu_id='adp', string_dir='strings', md_dir='md', mdp_dir='mdp', topology_dir='topology', postprocessing_dir='postprocessing', swarm_size=32, max_iterations=300, fixed_endpoints=True, steered_md_target_path='strings/string0.txt', steered_md_start_coordinates='confout.gro', version='1.0.0', log_level='DEBUG')
2020-11-26 05:36:30 stringmethod-0-DEBUG: Using config Config(simu_id='adp', string_dir='strings', md_dir='md', mdp_dir='mdp', topology_dir='topology', postprocessing_dir='postprocessing', swarm_size=32, max_iterations=300, fixed_endpoints=True, steered_md_target_path='strings/string0.txt', steered_md_start_coordinates='confout.gro', version='1.0.0', log_level='DEBUG')
2020-11-26 05:36:30 stringmethod-4-DEBUG: Using config Config(simu_id='adp', string_dir='strings', md_dir='md', mdp_dir='mdp', topology_dir='topology', postprocessing_dir='postprocessing', swarm_size=32, max_iterations=300, fixed_endpoints=True, steered_md_target_path='strings/string0.txt', steered_md_start_coordinates='confout.gro', version='1.0.0', log_level='DEBUG')
2020-11-26 05:41:20 stringmethod-0-INFO: No output files found for iteration 301. Not looking further
2020-11-26 05:41:20 stringmethod-1-ERROR: 'NoneType' object has no attribute 'shape'
Traceback (most recent call last):
  File "../../main.py", line 53, in <module>
    run(conf, args.start_mode, args.iteration)
  File "../../main.py", line 22, in run
    return run(conf, start_mode='postprocessing')
  File "../../main.py", line 27, in run
    postprocessing.run(conf)
  File "/data/sperez/Projects/string_simulations/string-method-gmxapi/stringmethod/postprocessing/__init__.py", line 11, in run
    tc = TransitionCountCalculator.from_config(config=config, cv_coordinates=ce.cv_coordinates)
  File "/data/sperez/Projects/string_simulations/string-method-gmxapi/stringmethod/postprocessing/base.py", line 33, in from_config
    return clazz(postprocessing_dir=config.postprocessing_dir, **kwargs)
  File "<string>", line 10, in __init__
  File "/data/sperez/Projects/string_simulations/string-method-gmxapi/stringmethod/postprocessing/transition_count_calculation.py", line 30, in __post_init__
    if len(self.cv_coordinates.shape) < 3:
AttributeError: 'NoneType' object has no attribute 'shape'
2020-11-26 05:41:20 stringmethod-1-ERROR: Script failed with message 'NoneType' object has no attribute 'shape'
2020-11-26 05:41:20 stringmethod-3-ERROR: 'NoneType' object has no attribute 'shape'
Traceback (most recent call last):
  File "../../main.py", line 53, in <module>
    run(conf, args.start_mode, args.iteration)
  File "../../main.py", line 22, in run
    return run(conf, start_mode='postprocessing')
  File "../../main.py", line 27, in run
    postprocessing.run(conf)
  File "/data/sperez/Projects/string_simulations/string-method-gmxapi/stringmethod/postprocessing/__init__.py", line 11, in run
    tc = TransitionCountCalculator.from_config(config=config, cv_coordinates=ce.cv_coordinates)
  File "/data/sperez/Projects/string_simulations/string-method-gmxapi/stringmethod/postprocessing/base.py", line 33, in from_config
    return clazz(postprocessing_dir=config.postprocessing_dir, **kwargs)
  File "<string>", line 10, in __init__
  File "/data/sperez/Projects/string_simulations/string-method-gmxapi/stringmethod/postprocessing/transition_count_calculation.py", line 30, in __post_init__
    if len(self.cv_coordinates.shape) < 3:
AttributeError: 'NoneType' object has no attribute 'shape'
2020-11-26 05:41:20 stringmethod-3-ERROR: Script failed with message 'NoneType' object has no attribute 'shape'
2020-11-26 05:41:20 stringmethod-4-ERROR: 'NoneType' object has no attribute 'shape'
Traceback (most recent call last):
  File "../../main.py", line 53, in <module>
    run(conf, args.start_mode, args.iteration)
  File "../../main.py", line 22, in run
    return run(conf, start_mode='postprocessing')
  File "../../main.py", line 27, in run
    postprocessing.run(conf)
  File "/data/sperez/Projects/string_simulations/string-method-gmxapi/stringmethod/postprocessing/__init__.py", line 11, in run
    tc = TransitionCountCalculator.from_config(config=config, cv_coordinates=ce.cv_coordinates)
  File "/data/sperez/Projects/string_simulations/string-method-gmxapi/stringmethod/postprocessing/base.py", line 33, in from_config
    return clazz(postprocessing_dir=config.postprocessing_dir, **kwargs)
  File "<string>", line 10, in __init__
  File "/data/sperez/Projects/string_simulations/string-method-gmxapi/stringmethod/postprocessing/transition_count_calculation.py", line 30, in __post_init__
    if len(self.cv_coordinates.shape) < 3:
AttributeError: 'NoneType' object has no attribute 'shape'
2020-11-26 05:41:20 stringmethod-4-ERROR: Script failed with message 'NoneType' object has no attribute 'shape'
2020-11-26 05:41:20 stringmethod-2-ERROR: 'NoneType' object has no attribute 'shape'
Traceback (most recent call last):
  File "../../main.py", line 53, in <module>
    run(conf, args.start_mode, args.iteration)
  File "../../main.py", line 22, in run
    return run(conf, start_mode='postprocessing')
  File "../../main.py", line 27, in run
    postprocessing.run(conf)
  File "/data/sperez/Projects/string_simulations/string-method-gmxapi/stringmethod/postprocessing/__init__.py", line 11, in run
    tc = TransitionCountCalculator.from_config(config=config, cv_coordinates=ce.cv_coordinates)
  File "/data/sperez/Projects/string_simulations/string-method-gmxapi/stringmethod/postprocessing/base.py", line 33, in from_config
    return clazz(postprocessing_dir=config.postprocessing_dir, **kwargs)
  File "<string>", line 10, in __init__
  File "/data/sperez/Projects/string_simulations/string-method-gmxapi/stringmethod/postprocessing/transition_count_calculation.py", line 30, in __post_init__
    if len(self.cv_coordinates.shape) < 3:
AttributeError: 'NoneType' object has no attribute 'shape'
2020-11-26 05:41:20 stringmethod-2-ERROR: Script failed with message 'NoneType' object has no attribute 'shape'
2020-11-26 05:41:39 stringmethod-0-WARNING: Found 280 accessible states, 620 inaccessible states and 0 states with no starting points.
2020-11-26 05:42:14 stringmethod-0-DEBUG: Converged with master equation after 5185 iterations
2020-11-26 05:42:14 stringmethod-0-INFO: ----------------Finished------------

Thanks, Sergio

oliverfleetwood commented 3 years ago

I think we should change the code so the script just terminates once max_iter is reached. The user should invoke postprocessing.