distpair = tuple([int(x) for x in line.split()]) dists.append(distpair) input_file_list = sys.argv[2:] #com files results_dict = OrderedDict([]) for input_file in input_file_list: input_file_no_suf = input_file[:-4] results_dict[input_file_no_suf] = [] #print(input_file) if input_file.endswith(".com"): gaussian_file = GaussianCom(input_file) structure = gaussian_file.atoms_list else: gaussian_file = GaussianLog(input_file) structure = gaussian_file.final_geometry for pair in dists: atom_a = structure[pair[0] - 1] atom_b = structure[pair[1] - 1] this_dist = atom_a.distance(atom_b) if len(pair) == 2: results_dict[input_file_no_suf].append( "{0:7.5f}".format(this_dist)) #print("{0:>3}{2[0]:<4}-{1:>3}{2[1]:<4} : {3:7.3f}".format(atom_a,atom_b,pair,this_dist)) elif len(pair) == 3: atom_c = structure[pair[2] - 1] this_angle = atom_b.angle(atom_a, atom_c) this_angle = math.degrees(this_angle) results_dict[input_file_no_suf].append( "{0:7.3f}".format(this_angle))
from gaussian import GaussianCom, GaussianLog print("Trying to read qm_modred_gen.com, a simple gassian.com file") gaussian_file_name = "qm_modred_gen.com" gaussian_com = GaussianCom(gaussian_file_name) print("List of atoms:\n", gaussian_com.atoms_list) print("Everything seems ok\n\n") print("Trying to read oniom.com, a simple ONIOM gassian.com file") gaussian_file_name = "oniom.com" gaussian_com = GaussianCom(gaussian_file_name) print("List of atoms:\n", gaussian_com.atoms_list[0:100], " ... ") print("Everything seems ok\n\n") print("Trying to read oniom_pdb.com, a ONIOM gassian.com file with pdb info") gaussian_file_name = "oniom_pdb.com" gaussian_com = GaussianCom(gaussian_file_name) print("List of atoms:\n", gaussian_com.atoms_list[0:100], " ... ") print("Everything seems ok\n\n") print("Trying to read oniom_pdb.log, a ONIOM gassian.log file with pdb info") gaussian_file_name = "oniom_pdb.log" gaussian_log = GaussianLog(gaussian_file_name) print("Everything seems ok\n\n") print("Trying to read big_scan_oniom.log, a 1.2 GB ONIOM gassian.log file") gaussian_file_name = "big_scan_oniom.log" gaussian_log = GaussianLog(gaussian_file_name) print("Everything seems ok\n\n")
from elements_database import ATOMIC_NUMBER_DICT try: reactants_folder = sys.argv[1] ts_folder = sys.argv[2] original_ts_energy = float(sys.argv[3]) except: print( "Usage: residel_energies.py <reactants_folder> <ts_folder> <ts_energy>" ) sys.exit() for reactants_filename in os.listdir(reactants_folder): if reactants_filename.endswith(".log"): try: reactants_energy = GaussianLog("{0}/{1}"\ .format(reactants_folder,reactants_filename)).energies_list[-1][-1] except IndexError: reactants_energy = None try: ts_filenames = os.listdir(ts_folder) ts_filename_end = "_".join(reactants_filename.split("_")[-2:]) ts_filename = ts_folder + "_" + ts_filename_end ts_energy = GaussianLog("{0}/{1}"\ .format(ts_folder,ts_filename)).energies_list[-1][-1] except IndexError: ts_energy = None if reactants_energy and ts_energy: print( ts_filename_end[:-4],