예제 #1
0
        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))
예제 #2
0
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")
예제 #3
0
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],