Releases: jkelowitt/Rotapy
v2.1 - Threaded COM writing
Main Changes:
- Used multi-threading for writing the jobs to file. This results in ~15x speed increase for this task.
- This cannot be done for the images, as matplotlib is not thread safe. Pools don't work either, as they open a main gui window for every process opened, and the processes don't run until the windows are closed. If I can find a way to automatically close the Process opened windows, but not the original window, this would be a viable method of speeding up the image task.
- The progress bar now accurately shows the number of rotations remaining when calculating the rotamers.
- Additional under-the-hood documentation
v2.0 - Graphical User Interface
Main Changes:
- Added a GUI
Things left to do:
- Figure out how to use processes with the image saving without opening a bunch of windows
- Update README.md
- Make the GUI have less of a 'designed by someone who isn't good at design' aesthetic
v1.8 - Com File Support and Directory Input
Main Changes:
- Improved user directory input
- Renamed parsing functions
- Added .com file support
v1.7 - Better Naming and Color Scheme
Main Changes:
- Gauss09 was moved to a new repo
- Atom color defaults to magenta if the atom doesn't have a specified color in code
- Sped up initialization speed of Atom class
- Shortened explicit rotamer naming convention
- Added optional sequential naming convention
- "B3LPY" is incorrect. Changed default theory to correct "B3LYP"
- Added splash text
- Changed %Chk extension to .mo
v1.6 - Better file search and More Speed
Main Changes:
- Added example data to the git
- Made the error for file's not found print out the valid file types.
- Search for files in the current directory and in lower directories. NOTE: Files will still be saved in the working directory, not in the location of the original file.
- File list is sorted by file path length
- Minor text formatting
- Added progress bar to the bond error checking loop because I think its hilariously fast.
- Manually call make_bond_graph, rather than calling after every atom replacement. Results in a 5x rotation calculation speed improvement. make_bond_graph and bonded_atom_search are probably the slowest functions in the program, baring the save_figure function. Any improvement to them would yield great returns.
- Angles are now rounded to 5 decimal places. This is an excess of decimal places, but it rounds out the machine precision errors (i.e. 5.10000000000001 -> 5.10000)
- Encrypted python byte code to try to prevent windows from being mad at running the exe. The aes key is "horrible-aes-key". I think pyinstaller uses AES256.
v1.5 - Extra File Parsing
Main Changes:
- Added XYZ file type support.
- Made it easier to add file type support. Only xyz and log are supported, but I can add support on request.
v1.4 JIT Distance and Aesthetics
Main Changes:
- Aesthetic ordering of the rotation queue. The more atoms being rotated, the sooner they will be calculated. This results in a tiny performance boost, but also when viewing images of the rotamers, there will be less movement of the larger components. An alcohol will spin faster than a methyl group, if both are being spun on the same molecule.
-
Removed some numpy dependencies. The way that distance was calculated, with numpy.linalg.norm, was extremely slow. I replaced this with just the solved Pythagoras equation, and saw a small improvement.
-
Added numba JIT compilation. Since the distance function was still taking a long time, and since it was used very often (every time a bond was checked), I figured it would benefit from Just In Time Compilation. I was right. At the cost of 17mb of exe file size, I saw a 10x improvement in the overall rotation calculation time. If there is any room for improvement in the rotating step of the calculation, it will be in the bond detection function. JIT won't help me anywhere else, as I don't have any rout calculations going on, but it will remain for now, because I like having 100 rotations per second over 10 rotations per second.
v1.3 - Bugfixing, Polish, and Bond Verification
Main Changes:
- User input is now verified
- Can now use the 3d view after each additional rotation
- Progress bars now auto-resize
- Rotamers which break or form bonds are now tagged with "##ERR", where ## tells the number of bonds added or removed from the original compound, followed by ERR
- Decreased fontsize so long titles fit in the plot.
- Adjusted image plot design
- Com file settings should be working now.
v1.2 Multiprocessing Image Saving
Main Changes:
- Saving images is now a multiprocessing process. Saving speed ~3-4x faster now.
- Possible bug with makedir fixed.
- Image size bumped up to 600x600, from 600x480. This may change later.
- Axes and planes removed from images. The molecules now float in empty space, without reference.
v1.1 Fixed Memory Leak
Main Changes:
- Fixed a memory leak when saving a large number of images.
- Adjusted user interface
- Reordered code execution so all calculations and file savings occur at the same time, rather than interspersed with user input.