makson96 / dynamics Goto Github PK
View Code? Open in Web Editor NEWDynamics PyMOL Plugin
License: GNU General Public License v3.0
Dynamics PyMOL Plugin
License: GNU General Public License v3.0
Restraints get separate 'status'.
At the moment restraints calculation is something between separate task and task connected to 'Molecular Dynamics Simulation' step. It should get total independence.
Hide ';define' in MD configuration if restrainst is unchecked.
The fix should be made in 'mdp_configure' function.
PyMOL can not natively display ProDy results. We should make this program to do it.
The Reviewer of the publication mentioned the possibility of adding:
We should check this possibility. We should start at:
http://md.chem.rug.nl/cgmartini/index.php/home
There is no point in keeping separate status and gromacs.status. We should merge it to one variable.
It will be hard work, but we should look into mdp files and make them work for as many proteins as possible for default.
Now ttk is mainline with Python 2.7 and Python 3.x, so we should move from unmaintained Tix bits to ttk.
ttk is modern Tk. We should move away from old Tkinter to new ttk in all places we can.
We should move to Python 3 as soon as PyMOL would do this step.
This feature was requested. It should be pretty easy to implement and will simplify calculations a lot.
Develop help option
We should add some configuration options for ProDy in vectors configuration in the main window.
Global names are not respected in gromacs2. Probably the best way to fix this to to give gromasc2 'gromacs' and 'project_name' variable every time it is invoked from 'dynamics'.
New version compatibility issue.
From time to time there are compatibility breaks between versions. Maybe program should write its version number to options.pickle file to handle correctly older projects files.
Initialize plugin's code after starting it from the menu.
At the moment many functions are started even before user start plugin from the menu bar. If the plugin is broken, than it could affect all of the PyMOL work. It needs to be changed.
Rethink "set_config_files" function.
It is a mess right now. Maybe we should split it on two functions and clean it.
Make Position Restrained MD optional.
We should make at least possible to start work without this step.
Check variables data before use it as a bash script.
Someone clever could smuggle bash code in for example protein name. All data which are used with bash should be previously checked. The 'check_variable' function should be responsible for that.
Since plugin starts to use ProDy for PCA and vectors display, we should enhance abilities for molecular dynamics interpretation by adding post calculation window.
Documentation for 1.2 release
Prepare manual.odt and README for Dynamics Version 1.2.
Should be working on GROMACS 4.6 just fine, but must make sure that the plugin work great on both GROMACS 4.5 and GROMACS 4.6
As suggested by Debian:
http://web.archiveorange.com/archive/v/304OrfbVuEIqSE9XbilN
The name of the package should be "pymol-plugin-dynamics".
After standard molecular dynamics simulation we can use ProDy to perform PCA.
At the moment basic PyMOL Shell for this plugin is working. We should enhance its capabilities.
Probably the best way to handle it is to prepare error message, when 'nothing' molecule was selected.
Starting a run in PyMol 1.5.0.5 on custom Python 2.7 and Gromacs 4.5.5 on CentOS 6.3 results in the below exception:
Calculating topology using Force fields
Warning. Trying to ignore unnecessary hydrogen atoms.
Unhandled exception in thread started by
Traceback (most recent call last):
File "/apps/pymol/1.5.0.5-x86_64/modules/pmg_tk/startup/dynamics_pymol_plugin.py", line 926, in bar_update
steps_status_bar("only_bar", self.bar_widget)
File "/apps/pymol/1.5.0.5-x86_64/modules/pmg_tk/startup/dynamics_pymol_plugin.py", line 1452, in steps_status_bar
bar.configure(value=percent)
File "/apps/pymol/1.5.0.5-x86_64/ext/lib/python2.7/lib-tk/Tkinter.py", line 1202, in configure
return self._configure('configure', cnf, kw)
File "/apps/pymol/1.5.0.5-x86_64/ext/lib/python2.7/lib-tk/Tkinter.py", line 1193, in _configure
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
_tkinter.TclError: out of stack space (infinite loop?)
saving options
The result is that the run continues fine but progress bar is not updated correctly. Also, the buttons next to the progress bar do not change its state (label) at the end.
Make plugin work with PyMOL shell.
Make pydynamics.py working.
pydynamics.py is depreciated by latest changes. We should put it back to work.
Add constraints.
Reading groups to display from GROMACS.
At the moment groups to display (left down corner) are in the list in source file. Need to change that. Available groups should be read directly from GROMACS (pdb2top).
There is no point in resuming calculations after Fatal Error. Therefore we should block STOP button after it, to prevent user from clicking STOP/START.
Make Energy Minimization optional.
We should make at least possible to start dynamics without this step.
We need to make sure, that projects saved in plugin 1.2 will be compatible with 2.0.
progress.to_do
progress.status
progress.to_do_optional
progress.status_optional
are compatibility break.
Microsoft Windows port.
As both GROMACS and PyMOL could actually be used on Microsoft Windows platform, there is possibility to prepare plugin port for that system. If someone is willing to do that please feel free. Firs of all one need to deal with Unix directory structure which is used. Than one need to figure it out how to handle Python interpreter and BASH-GROMACS interactions.
When using 'Previous Projects' show correct checked or unchecked restraints box.
Pmw is part of PyMOL, so it shouldn't be a problem. Simple example is here:
http://www.gossamer-threads.com/lists/python/python/105209
(root.mainloop()) at the end is missing.
This should me specially helpful for configuration options.
Make configuration files em.mdp, pr.mdp, md.mdp work from ~/.dynamics directory.
Before releasing 1.2 we should test it. That include:
After this remove "pre" from plugin_ver, branch it and tag new release.
Don't forget about Ubuntu packages.
Block START button, when calculation is running and STOP, when it is not.
At the moment you can click STOP and START buttons whenever you like. STOP will do nothing, but START will initialize calculations in another thread. So at the beginning STOP button should be DISABLED, but it should become ACTIVE after clicking START. Then the START button should become DISABLED. The opposite thing should happen after clicking STOP.
Show on the progress bar current status of calculation. At the moment it only shows: Working, User Stopped, Finished.
The bar_update function should be responsible for that.
When plugin is used along with Gromacs 4.6 the below error message is thrown:
Energy Minimization
/bin/sh: line 1: 29698 Illegal instruction (core dumped) mdrun -nice 4 -s Protein2_em -o Protein2_em -c Protein2_b4pr -v &>>log.txt
saving options
Position Restrained MD
Unable to perform Position Restrained
Unhandled exception in thread started by <function dynamics at 0x7f37c44ca398>
Traceback (most recent call last):
File "/apps/pymol/1.5.0.5-x86_64/modules/pmg_tk/startup/dynamics_pymol_plugin.py", line 1599, in dynamics
error_message()
File "/apps/pymol/1.5.0.5-x86_64/modules/pmg_tk/startup/dynamics_pymol_plugin.py", line 1736, in error_message
while log_list[error_start_line] != "Fatal error:\n":
IndexError: list index out of range
The version of Gromacs is found correctly; there are no warning issued:
Testing GROMACS installation and version
Found GROMACS VERSION 4.6
The same plugin works well with Gromacs 4.5.5. The system is CentOS 6.3 x86_64 with custom Python 2.7.
Download and use GROMACS builds for system if not detected in the system.
Most of the code should be ready in the 'Gromacs_output' class 'init' function. Just prepare and upload builds for given platform.
Implement Distance Restrains.
We should check if GROMACS can do Distance Restrains (we now use only Positional Restrains) and if so, than we should implement it.
New big release. It will introduce results of the molecular dynamics simulation as a static vector graphic.
Documentation for 1.1 release.
The final issue for 1.1 stable. Prepare manual.odt for new release and make README from it.
As suggested here:
http://sourceforge.net/mailarchive/message.php?msg_id=31240273
We can optimize water-box size and shape. We should test it and include as the default.
Add x2top as a alternative for pdb2gmx.
pdb2gmx is cool GROMACS tool, but have many limitations. x2top could be used as a alternative.
Plugin can catch and display GROMACS errors. It should be described somewhere in the manual.
We can add checkbox to each mdp option. If the checkbox is disable then ";" mark will be added to this line in configuration file.
Rework Jobs to do button and Molecular dynamics from the beginning checkbox.
Probably the best thing to do here is to put only "Steps" button and place all Status Bar and Checkboxes there. It should also include knowledge about changes in settings, which user made for selected step.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.