Generate Gaussian 09 input files for the rotamers of an input compound.

Overview

Rotapy

Logo

Purpose

Generate Gaussian 09 input files for the rotamers of an input compound.

Distance to the axis of rotation remains constant throughout the rotation.

Usage

To walk through how to use Rotapy, we will walk through the rotation of the alcohol group of ethanol.

Start by opening Rotapy:

Empty

In this area here, you can select a .com, .log, or .xyz file to analyze. This can be done by clicking Browse and finding the file, or by copying and pasting the absolute file path into the input box:

Selecting Import Molecule Browse

With Import Molecule Text

With the file selected, click on the "Show Molecule" button to view the molecule. This view is 3d projected into 2d, and doesn't have proper perspective. It is possible to rotate and view the molecule from different angles however.

Figure View

We will need to make note of two atoms. The anchor atom, assuming we are rotating the alcohol group, is atom 1. The center atom, the atom which has all the substituents we want to rotate, is atom 5.

We can go back to the main rotapy window, and type in the number for the anchor atom in the anchor input, and the center atom into the center input.

Center and Anchor Added

If we wanted to make rotamers of the 15 degree rotations of the alcohol group, we type 15 into the Angle input.

Angle Added

Once all three numbers are selected, clicking the "Add" button will add the rotation to the queue.

Add Selected Added Alcohol Rotation

Notice that the Total Rotamers has increased to 24. This means that in the end, there will be 24 rotamers made. If we add a rotation to the queue representing the methyl group being flipped 180 degrees, we can see the number of rotamers double.

Added Methyl Rotation

If we wanted to remove a rotation from the queue, we can click on the rotation in the queue, then click the "Remove" button.

Selected Methyl Rotation Removed Methyl Rotation

Now that we have all the rotations that we want added, we can prepare for getting output. If we want to have .com files as an output, a directory must be selected. If a directory is not in the input box, the .com files will not be generated. The same goes for the image files. Images of the rotamers will not be generated if the input box is empty. A path to the directory must be provided, either by pasting the absolute path to the directory, or by browsing to the directory.

Added Output Directories

Since both the Com and Img outputs both have a directory, .com and .png files will be generated for the rotamers.

Now that we have the output locations, we can click the "Change Output Settings" button for more .com file output options.

Added Output Directories

From here you can change the charge, multiplicity, job, level of theory, basis set, the number of cores, the amount of memory, and the linda cores used. There is no validation for these inputs, so you may go through the process of rotating a ton of files, and end up with invalid option errors in Gaussian. If this happens, use this program to generate new com files with different settings, without having to perform the rotation calculations again.

There is also a setting called "Sequentially Name Files". If this setting is used, the files will be labelled, file_1, file_2, etc. If this setting is not checked off, the explicit rotations will be added to the file name instead. In the example of the methyl and alcohol group of ethanol being rotated, this would look like: ethanol_1a0c180d, ethanol_1a0c180d_1a5c30d, etc. 1a0c180d means, anchor atom 1, center atom 0, rotated 180 degrees. If there are multiple rotations in the same file name, they are listed. 1a0c180d_1a5c30d means that we rotate the methyl group 180 degrees, then the alcohol group 30 degrees. This results in very long file names, which is why this is not the default setting.

The "Reset to Default" button will reset the values of the inputs to the settings shown above.

Clicking the "Save" button will close the window, but will save the options you have chosen. The saved options are lost when Rotapy is closed, or the "Reset to Default" button is clicked.

With the options selected, click the "Perform Calculations" button to execute the rotation queue.

Added Output Directories

The progress bar will show what step Rotapy is working on, and how much progress is left. Once it has finished, Rotapy will pop up a message saying it is done.

Added Output Directories

If given a directory, the com and image files will be contained within, named with the selected naming scheme, and formatted with the selected options.

Work remaining for me

  • Allow for individual rotations, rather than a scanned rotation.

References used in code

You might also like...
Program Input Data Mahasiswa Oop
Program Input Data Mahasiswa Oop

PROGRAM INPUT NILAI MAHASISWA MENGGUNAKAN OOP PENGERTIAN OOP object-oriented-programing/OOP adalah paradigma pemrograman berdasarkan konsep "objek", y

A simple calculator that can add, subtract, multiply or divide depending upon the input from the user

Calculator A simple calculator that can add, subtract, multiply or divide depending upon the input from the user. In this example, we should have the

API to summarize input text

summaries API to summarize input text normal run $ docker-compose exec web python -m pytest disable warnings $ docker-compose exec web python -m pytes

An app that mirrors your phone to your compute and maps controller input to the screen

What is 'Dragalia Control'? An app that mirrors your phone to your compute and maps controller input to the screen. Inputs are mapped specifically for

Tool to generate wrappers for Linux libraries allowing for dlopen()ing them without writing any boilerplate

Dynload wrapper This program will generate a wrapper to make it easy to dlopen() shared objects on Linux without writing a ton of boilerplate code. Th

A Bot Which Can generate Random Account Based On Your Hits.

AccountGenBot This Bot Can Generate Account With Hits You Save (Randomly) Keyfeatures Join To Use Support Limit Account Generation Using Sql Customiza

Ikaros is a free financial library built in pure python that can be used to get information for single stocks, generate signals and build prortfolios

Ikaros is a free financial library built in pure python that can be used to get information for single stocks, generate signals and build prortfolios

Generate Azure Blob Storage account authentication headers for Munki

Azure Blob Storage Authentication for Munki The Azure Blob Storage Middleware allows munki clients to connect securely, and directly to a munki repo h

🪄 Auto-generate Streamlit UI from Pydantic Models and Dataclasses.
🪄 Auto-generate Streamlit UI from Pydantic Models and Dataclasses.

Streamlit Pydantic Auto-generate Streamlit UI elements from Pydantic models. Getting Started • Documentation • Support • Report a Bug • Contribution •

Comments
  • Saving a large number of images has memory leak

    Saving a large number of images has memory leak

    Steps to reproduce:

    1. Go through the import and rotation procedure
    2. Set the rotation number very small, so that a couple hundred rotations are performed
    3. Save the images of the rotamers
    4. Observe the ram usage increase greatly.

    This is most likely caused by matplotlib.pyplot.savefig not releasing the memory once the file has been saved.

    I've tried:

    plt.cfg() ax.cla() plt.close('all')

    and a slew of other combinations.

    Here's a pastebin of the memory usage across two consecutive calls fo the "plot_structure" function.

    https://pastebin.com/raw/qQVN20bP

    opened by jkelowitt 0
Releases(v2.1)
  • v2.1(Jul 2, 2021)

    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
    Source code(tar.gz)
    Source code(zip)
    Rotapy.exe(79.21 MB)
  • v2.0(Jun 30, 2021)

    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
    Source code(tar.gz)
    Source code(zip)
    Rotapy.exe(79.21 MB)
  • v1.8(Jun 22, 2021)

  • v1.7(Jun 19, 2021)

    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
    Source code(tar.gz)
    Source code(zip)
    Rotapy.exe(45.99 MB)
  • v1.6(Jun 5, 2021)

    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.
    Source code(tar.gz)
    Source code(zip)
    Rotapy.exe(45.82 MB)
  • v1.5(Jun 4, 2021)

  • v1.4(Jun 4, 2021)

    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.

    Source code(tar.gz)
    Source code(zip)
    gauss09v1-1(2.17 KB)
    Rotapy.exe(45.93 MB)
  • v1.3(Jun 3, 2021)

    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.
    Source code(tar.gz)
    Source code(zip)
    gauss09v1-1(2.17 KB)
    Rotapy.exe(28.93 MB)
  • v1.2(May 30, 2021)

  • v1.1(May 29, 2021)

  • v1.0(May 27, 2021)

    This is the initial release. There's a good chance that it's garbage, but that's why we have version numbers.

    Run this .exe file in the same directory as the .log file you want to 'rotamate'.

    Follow the directions, and you'll end up with some rotamer .com files in your chosen directory.

    I've also thrown in a new version of gauss09, so that it will submit jobs for every .com file in the working directory, rather than the alphabetical first .com file.

    Source code(tar.gz)
    Source code(zip)
    gauss09v1.1(2.17 KB)
    Rotapy.exe(29.12 MB)
Owner
Chemistry undergraduate at BYU-Idaho
Module to align code with thoughts of users and designers. Also magically handles navigation and permissions.

This readme will introduce you to Carteblanche and walk you through an example app, please refer to carteblanche-django-starter for the full example p

Eric Neuman 42 May 28, 2021
All Assignments , Test , Quizzes and Exams with solutions from NIT Patna B.Tech CSE 5th Semester.

A 🌟 to repo would be delightful, just do it ✔️ it is inexpensive. All Assignments , Quizzes and Exam papers at one place with clean and elegant solut

LakhanKumawat ᵖ⁺ 16 Dec 05, 2022
A basic notes app to store your notes.

Notes Webapp A basic notes webapp to keep your notes.You can add, edit and delete notes after signing up. To add a note type your note in the text box

2 Oct 23, 2021
Python program to start your zoom meetings

zoomstarter Python programm to start your zoom meetings More about Initially this was a bash script for starting zoom meetings, but as i started devel

Viktor Cvetanovic 2 Nov 24, 2021
Student Management System Built With Python

Student-Management-System Group Members 19BCE183 - Patel Sarthak 19BCE195 - Patel Jinil 19BCE220 - Rana Yash Project Description In our project Studen

Sarthak Patel 6 Oct 20, 2022
addon for blender to import mocap data from tools like easymocap, frankmocap and Vibe

b3d_mocap_import addon for blender to import mocap data from tools like easymocap, frankmocap and Vibe ==================VIBE================== To use

Carlos Barreto 97 Dec 07, 2022
Tools for analyzing Java JVM gc log files

gc_log This package consists of two separate utilities useful for : gc_log_visualizer.py regionsize.py GC Log Visualizer This was updated to run under

Brad Schoening 0 Jan 04, 2022
Python with braces. Because Python is awesome, but whitespace is awful.

Bython Python with braces. Because Python is awesome, but whitespace is awful. Bython is a Python preprosessor which translates curly brackets into in

1 Nov 04, 2021
Простенький ботик для троллинга с интерфейсом #Yakima_Visus

Bot-Trolling-Vk Простенький ботик для троллинга с интерфейсом #Yakima_Visus Установка pip install vk_api pip install requests если там еще чото будет

Yakima Visus 4 Oct 11, 2022
ThinkPHP全日志扫描工具,命令行版和BurpSuite插件版

ThinkPHP3和5日志扫描工具,提供命令行版和BurpSuite插件版,尽可能全的发掘网站日志信息 命令行版 安装 git clone https://github.com/r3change/TPLogScan.git cd TPLogScan/ pip install -r requireme

119 Dec 27, 2022
Clear merged pull requests ref (branch) on GitHub

GitHub PR Cleansing This tool is used to clear merged pull requests ref (branch) on GitHub. GitHub has no feature to auto delete branches on pull requ

Andi N. Dirgantara 12 Apr 19, 2022
Python code to control laboratory hardware and perform Bayesian reaction optimization on the MIT Make-It system for chemical synthesis

Description This repository contains code accompanying the following paper on the Make-It robotic flow chemistry platform developed by the Jensen Rese

Anirudh Nambiar 11 Dec 10, 2022
Blender pluggin (python script) that adds a randomly generated tree with random branches and bend orientations

Blender pluggin (python script) that adds a randomly generated tree with random branches and bend orientations

Travis Gruber 2 Dec 24, 2021
A lightweight solution for local Particle development.

neopo A lightweight solution for local Particle development. Features Builds Particle projects locally without any overhead. Compatible with Particle

Nathan Robinson 19 Jan 01, 2023
pybicyclewheel calulates the required spoke length for bicycle wheels

pybicyclewheel pybicyclewheel calulates the required spoke length for bicycle wheels. (under construcion) - homepage further readings wikipedia bicyc

karl 0 Aug 24, 2022
A program that takes Python classes and turns them into CSS classes.

PyCSS What is it? PyCSS is a micro-framework to speed up the process of writing bulk CSS classes. How does it do it? With Python!!! First download the

T.R Batt 0 Aug 03, 2021
A script to add issues to a project in Github based on label or status.

Add Github Issues to Project (Beta) A python script to move Github issues to a next-gen (beta) Github Project Getting Started These instructions will

Kate Donaldson 3 Jan 16, 2022
LinkScope allows you to perform online investigations by representing information as discrete pieces of data, called Entities.

LinkScope Client Description This is the repository for the LinkScope Client Online Investigation software. LinkScope allows you to perform online inv

108 Jan 04, 2023
Find habits that genuinely increase your productivity

BiProductive Description This repository contains the application BiProductive, which analyzes the habits of the person, tests his productivity, and d

Rizvan Iskaliev 43 Jun 11, 2022