Skip to content

Releases: jkelowitt/Rotapy

v2.1 - Threaded COM writing

02 Jul 16:51

Choose a tag to compare

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

30 Jun 19:07
56e2ba2

Choose a tag to compare

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

22 Jun 06:28

Choose a tag to compare

Main Changes:

  • Improved user directory input
  • Renamed parsing functions
  • Added .com file support

v1.7 - Better Naming and Color Scheme

19 Jun 04:26

Choose a tag to compare

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

05 Jun 06:47

Choose a tag to compare

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

04 Jun 23:06

Choose a tag to compare

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

04 Jun 17:31

Choose a tag to compare

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.

Pre-Aesthetic Change

Post-Aesthetic Change

  • 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

03 Jun 22:15

Choose a tag to compare

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

30 May 03:11

Choose a tag to compare

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

29 May 04:44

Choose a tag to compare

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.