diff --git a/builder_ligpargen_openmm_from_molality_multi_system.py b/builder_ligpargen_openmm_from_molality_multi_system.py index 54c7a9c..d0d1473 100644 --- a/builder_ligpargen_openmm_from_molality_multi_system.py +++ b/builder_ligpargen_openmm_from_molality_multi_system.py @@ -26,6 +26,8 @@ def run( salt_type:str, molality:float, charges:str, + polynames:list, + lit_charges_save_path:str, system:str, simu_temp:float, atom_count:int, @@ -188,7 +190,8 @@ def run( atom_names_short=atom_names_short_list, atom_names_long=atom_names_long_list, param_dict=param_dict_list, - lit_charges_save_path=None, + lit_charges_save_path=lit_charges_save_path, + polynames=polynames, charges=charges, charge_scale=charge_scale, salt_smiles=salt_smiles, @@ -364,8 +367,18 @@ def run( ratios_type = 'mol' assert len(smiles) == len(ratios) else: +<<<<<<< HEAD + mol_ratios = None + if len(lines) == 3: + """ + 3rd line is the DFT charge CSV file name for each molecule. + This line is optional. + """ + polynames = lines[2].split(",") +======= ratios = None ratios_type = None +>>>>>>> origin/main if args.atom_count == "None": atom_count = None @@ -376,7 +389,10 @@ def run( polymer_chain_length = None else: polymer_chain_length = int(args.polymer_chain_length) - + if args.charge_type == "LIT": + print("polynames: ", polynames) + else: + polynames = None run( save_path=args.save_path, @@ -386,6 +402,8 @@ def run( salt_type=args.salt_type, molality=float(args.molality_salt), charges=args.charge_type, + polynames=polynames, + lit_charges_save_path=args.lit_charges_save_path, system=args.system, atom_count=atom_count, md_save_time=int(args.md_save_time), diff --git a/builder_ligpargen_openmm_from_mols_multi_system.py b/builder_ligpargen_openmm_from_mols_multi_system.py new file mode 100644 index 0000000..10e4e96 --- /dev/null +++ b/builder_ligpargen_openmm_from_mols_multi_system.py @@ -0,0 +1,404 @@ +import argparse +import os +from hitpoly.writers.box_builder import * +from hitpoly.utils.building_utils import salt_string_to_values, get_concentraiton_from_molality_multi_system +from hitpoly.simulations.openmm_scripts import ( + equilibrate_system_1, + equilibrate_system_2, + prod_run_nvt, + prod_run_tg, + write_analysis_script, + equilibrate_system_liquid1, + equilibrate_system_liquid2, +) +import sys + +sys.setrecursionlimit(5000) + + +def run( + save_path: str, + results_path: str, + smiles:list, + charge_scale:float, + salt_type:str, + alkali_count:int, + charges:str, + polynames:list, + lit_charges_save_path:str, + system:str, + simu_temp:float, + atom_count:int, + mol_ratios:list, + simu_length:int, + md_save_time:int, + hitpoly_path:str, + platform:str='local', + polymer_chain_length:int=None, + simu_type="conductivity", +): + """Run the MD simulation.""" + cuda_device = "0" + + packmol_path = os.environ["packmol"] + if not hitpoly_path: + hitpoly_path = f"{os.path.expanduser('~')}/HiTPoly" + + if salt_type: + salt_smiles, salt_paths, salt_data_paths, ani_name_rdf, concentration = salt_string_to_values( + hitpoly_path, salt_type, alkali_count) + salt = True + else: + salt = False + salt_paths = [] + salt_data_paths = [] + salt_smiles = [] + ani_name_rdf = None + + filename_list = [] + long_smiles_list = [] + atom_names_short_list = [] + atom_names_long_list = [] + atoms_short_list = [] + atoms_long_list = [] + param_dict_list = [] + + """ + specifying the specific parameters for this simulation. + """ + solvent_count = mol_ratios + poly_name = "PLY" + repeats = [1] * len(smiles) + + print(f"Concentration: {concentration}, solvent_count: {solvent_count}, repeats: {repeats}, poly_name: {poly_name}") + print("--------------------------------") + print("smiles: ", smiles) + print(f"System: {system}") + print(f"Atom count: {atom_count}") + print(f"Polymer chain length: {polymer_chain_length}") + print(f"Mol ratios: {mol_ratios}") + print(f"Salt smiles: {salt_smiles}") + + with open(f"{save_path}/repeats.txt", "w") as f: + f.write(str(repeats)) + + for ind, i in enumerate(smiles): + if len(smiles) == 1: + extra_name = "" + name = "polymer_conformation.pdb" + filename_list.append(name) + else: + extra_name = f"_{ind}" + name = f"polymer_conformation{extra_name}.pdb" + filename_list.append(name) + + ligpargen_path = f"{save_path}/ligpargen{extra_name}" + print(f"ligpargen path: {ligpargen_path}") + if not os.path.isdir(ligpargen_path): + os.makedirs(ligpargen_path) + + long_smiles, _ = create_long_smiles( + i, + repeats=repeats[ind], + add_end_Cs=True, + ) + long_smiles_list.append(long_smiles) + + mol_long = Chem.MolFromSmiles(long_smiles) + mol_long = Chem.AddHs(mol_long) + r_long, atom_names_long, atoms_long, bonds_typed_long = generate_atom_types( + mol_long, 2 + ) + atom_names_long_list.append(atom_names_long) + atoms_long_list.append(atoms_long) + + ( + ligpargen_repeats, + smiles_initial, + mol_initial, + r, + atom_names, + atoms, + bonds_typed, + ) = create_ligpargen_short_polymer( + i, + add_end_Cs=True, + reaction="[Cu][*:1].[*:2][Au]>>[*:1]-[*:2]", + product_index=0, + atom_names_long=atom_names_long, + ) + + mol_initial, _ = create_ligpargen( + smiles=i, + repeats=ligpargen_repeats, + add_end_Cs=True, + ligpargen_path=ligpargen_path, + hitpoly_path=hitpoly_path, + platform=platform, + ) + + print(f"Created ligpargen files at {ligpargen_path}") + + r, atom_names, atoms, bonds_typed = generate_atom_types(mol_initial, 2) + atom_names_short_list.append(atom_names) + atoms_short_list.append(atoms) + + param_dict = generate_parameter_dict(ligpargen_path, atom_names, atoms, bonds_typed) + param_dict_list.append(param_dict) + + minimize = create_conformer_pdb( + save_path, + long_smiles, + name=name, + ) + + print(f"Saved conformer pdb.") + + if minimize: + minimize_polymer( + save_path=save_path, + long_smiles=long_smiles, + atoms_long=atoms_long, + atoms_short=atoms, + atom_names_short=atom_names, + atom_names_long=atom_names_long, + param_dict=param_dict, + lit_charges_save_path=None, + charges=charges, + name=name, + cuda_device=cuda_device, + ) + + if system == "gel": + box_multiplier = 0.2 + elif system == "liquid": + box_multiplier = 10 + elif system == "polymer": + box_multiplier = 1 + else: + raise ValueError("System must be either gel, liquid or polymer") + + create_box_and_ff_files_openmm( + save_path=save_path, + long_smiles=long_smiles_list, + filename=filename_list, + concentration=concentration, + solvent_count=solvent_count, + packmol_path=packmol_path, + atoms_long=atoms_long_list, + atoms_short=atoms_short_list, + atom_names_short=atom_names_short_list, + atom_names_long=atom_names_long_list, + param_dict=param_dict_list, + lit_charges_save_path=lit_charges_save_path, + polynames=polynames, + charges=charges, + charge_scale=charge_scale, + salt_smiles=salt_smiles, + salt_paths=salt_paths, + salt_data_paths=salt_data_paths, + box_multiplier=box_multiplier, + salt=salt, + ) + + final_save_path = f"{save_path}/openmm_saver" + if not os.path.isdir(final_save_path): + os.makedirs(final_save_path) + + if system == "polymer" or system == "gel": + + equilibrate_system_1( + save_path=save_path, + final_save_path=final_save_path, + cuda_device=cuda_device, + ) + + equilibrate_system_2( + save_path=save_path, + final_save_path=final_save_path, + cuda_device=cuda_device, + ) + else: + equilibrate_system_liquid1( + save_path=save_path, + final_save_path=final_save_path, + simu_temp=simu_temp, + cuda_device=cuda_device, + ) + equilibrate_system_liquid2( + save_path=save_path, + final_save_path=final_save_path, + simu_temp=simu_temp, + cuda_device=cuda_device, + ) + + if simu_type == "conductivity": + prod_run_nvt( + save_path=save_path, + final_save_path=final_save_path, + simu_temp=simu_temp, + mdOutputTime=md_save_time, + simu_time=simu_length, + cuda_device=cuda_device, + ) + + write_analysis_script( + save_path=save_path, + results_path=results_path, + platform=platform, + repeat_units=repeats, + cation=salt_type.split(".")[0], + anion=ani_name_rdf.split(",")[0], + simu_temperature=simu_temp, + prod_run_time=simu_length, + ani_name_rdf=ani_name_rdf, + poly_name=','.join(poly_name), + ) + + elif simu_type.lower() == "tg": + prod_run_tg( + save_path=save_path, + final_save_path=final_save_path, + simu_time=10, + start_temperature=500, + end_temperature=100, + temperature_step=20, + ) + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Boxbuilder for OpenMM simulations") + parser.add_argument( + "-p", "--save_path", help="Path to the where the new directory to be created" + ) + parser.add_argument( + "-pr", + "--results_path", + help="Path to the where the new directory to be created", + ) + parser.add_argument( + "-s", + "--smiles_path", + help="Path of the file that contains the smiles strings to be created, if more than one, have them '.' separated, and the second line should be the mole fraction ratios of the smiles strings, ex, 'C1.C2.C3', '0.5,0.3,0.2'", + ) + parser.add_argument( + "--salt_type", + help="Type of the salt to be added to the simulation", + default="Li.TFSI", + ) + parser.add_argument( + "-M", + "--alkali_count", + help="number of alkali metal", + default="100", + ) + parser.add_argument( + "-cs", + "--charge_scale", + help="To what value the charges of the salts be scaled", + default="0.75", + ) + parser.add_argument( + "-ct", "--charge_type", help="What type of charges to select", default="LPG" + ) + parser.add_argument( + "-f", + "--hitpoly_path", + help="Path towards the HiTPoly folder", + default="None", + ) + parser.add_argument("--temperature", help="Simulation temperature", default="430") + parser.add_argument("--simu_length", help="Simulation length, ns", default="100") + parser.add_argument( + "--platform", help="For which platform to build the files for", default="local" + ) + parser.add_argument( + "-system", + "--system", + help="System to be used for the simulation", + default="polymer", + ) + parser.add_argument( + "-atom_count", + "--atom_count", + help="Atom count of the system", + default="None", + ) + parser.add_argument( + "-md_save_time", + "--md_save_time", + help="MD save time", + default="10000", + ) + parser.add_argument( + "-polymer_chain_length", + "--polymer_chain_length", + help="Polymer chain length", + default="None", + ) + parser.add_argument( + "--simu_type", + help="What type of simulation to perform, options [conductivity, tg]}", + default="conductivity", + ) + parser.add_argument( + "--lit_charges_save_path", + help="Path to the where the DFT charge CSV file is saved", + default=".", + ) + args = parser.parse_args() + + if args.hitpoly_path == "None": + args.hitpoly_path = None + + with open(args.smiles_path, "r") as f: + lines = f.readlines() + smiles = lines[0].split(".") + mol_ratios = lines[1].split(",") + mol_ratios = [int(i) for i in mol_ratios] + assert len(smiles) == len(mol_ratios) + + if len(lines) == 3: + """ + 3rd line is the DFT charge CSV file path for each molecule. + This line is optional. + """ + polynames = lines[2].split(",") + print(polynames) + #assert len(smiles) == len(polynames) + + if args.atom_count == "None": + atom_count = None + else: + atom_count = int(args.atom_count) + + if args.polymer_chain_length == "None": + polymer_chain_length = None + else: + polymer_chain_length = int(args.polymer_chain_length) + if args.charge_type == "LIT": + print(polynames) + #assert len(polynames) == len(smiles) + else: + polynames = None + + run( + save_path=args.save_path, + results_path=args.results_path, + smiles=smiles, + charge_scale=float(args.charge_scale), + salt_type=args.salt_type, + alkali_count=int(args.alkali_count), + charges=args.charge_type, + polynames=polynames, + lit_charges_save_path=args.lit_charges_save_path, + system=args.system, + atom_count=atom_count, + md_save_time=int(args.md_save_time), + simu_temp=int(args.temperature), + simu_length=int(args.simu_length), + platform=args.platform, + polymer_chain_length=polymer_chain_length, + mol_ratios=mol_ratios, + hitpoly_path=args.hitpoly_path, + simu_type=args.simu_type, + ) diff --git a/data/forcefield_files/lammps_TETRAORION_q100.data b/data/forcefield_files/lammps_TETRAORION_q100.data new file mode 100644 index 0000000..3ef240c --- /dev/null +++ b/data/forcefield_files/lammps_TETRAORION_q100.data @@ -0,0 +1,1530 @@ +LAMMPS data file generated with LigParGen (israel.cabezadevaca@yale.edu) + + 113 atoms + 112 bonds + 210 angles + 252 dihedrals + 113 atom types + 112 bond types + 210 angle types + 252 dihedral types + + -4.877000 45.123000 xlo xhi + -8.272000 41.728000 ylo yhi + -10.058000 39.942000 zlo zhi + +Masses + + 1 15.999 + 2 32.067 + 3 15.999 + 4 14.007 + 5 32.067 + 6 15.999 + 7 15.999 + 8 12.011 + 9 18.998 + 10 18.998 + 11 12.011 + 12 18.998 + 13 18.998 + 14 15.999 + 15 12.011 + 16 18.998 + 17 12.011 + 18 18.998 + 19 18.998 + 20 32.067 + 21 12.011 + 22 12.011 + 23 12.011 + 24 32.067 + 25 12.011 + 26 18.998 + 27 18.998 + 28 12.011 + 29 18.998 + 30 15.999 + 31 12.011 + 32 18.998 + 33 18.998 + 34 12.011 + 35 18.998 + 36 18.998 + 37 32.067 + 38 15.999 + 39 15.999 + 40 14.007 + 41 32.067 + 42 15.999 + 43 15.999 + 44 12.011 + 45 18.998 + 46 18.998 + 47 18.998 + 48 12.011 + 49 32.067 + 50 12.011 + 51 18.998 + 52 18.998 + 53 12.011 + 54 18.998 + 55 15.999 + 56 12.011 + 57 18.998 + 58 18.998 + 59 12.011 + 60 18.998 + 61 18.998 + 62 32.067 + 63 15.999 + 64 15.999 + 65 14.007 + 66 32.067 + 67 15.999 + 68 15.999 + 69 12.011 + 70 18.998 + 71 18.998 + 72 18.998 + 73 12.011 + 74 32.067 + 75 12.011 + 76 18.998 + 77 18.998 + 78 12.011 + 79 18.998 + 80 15.999 + 81 12.011 + 82 18.998 + 83 18.998 + 84 12.011 + 85 18.998 + 86 18.998 + 87 32.067 + 88 15.999 + 89 15.999 + 90 14.007 + 91 32.067 + 92 15.999 + 93 15.999 + 94 12.011 + 95 18.998 + 96 18.998 + 97 18.998 + 98 12.011 + 99 18.998 + 100 18.998 + 101 18.998 + 102 1.008 + 103 1.008 + 104 1.008 + 105 1.008 + 106 1.008 + 107 1.008 + 108 1.008 + 109 1.008 + 110 1.008 + 111 1.008 + 112 1.008 + 113 1.008 + +Pair Coeffs + + 1 0.170 2.9600000 + 2 0.250 3.5500000 + 3 0.170 2.9600000 + 4 0.170 3.2500000 + 5 0.250 3.5500000 + 6 0.170 2.9600000 + 7 0.170 2.9600000 + 8 0.066 3.5000000 + 9 0.060 2.9000000 + 10 0.060 2.9000000 + 11 0.066 3.5000000 + 12 0.060 2.9000000 + 13 0.060 2.9000000 + 14 0.140 2.9000000 + 15 0.066 3.5000000 + 16 0.060 2.9000000 + 17 0.066 3.5000000 + 18 0.060 2.9000000 + 19 0.060 2.9000000 + 20 0.355 3.6000000 + 21 0.066 3.5000000 + 22 0.066 3.5000000 + 23 0.066 3.5000000 + 24 0.355 3.6000000 + 25 0.066 3.5000000 + 26 0.060 2.9000000 + 27 0.060 2.9000000 + 28 0.066 3.5000000 + 29 0.060 2.9000000 + 30 0.140 2.9000000 + 31 0.066 3.5000000 + 32 0.060 2.9000000 + 33 0.060 2.9000000 + 34 0.066 3.5000000 + 35 0.060 2.9000000 + 36 0.060 2.9000000 + 37 0.250 3.5500000 + 38 0.170 2.9600000 + 39 0.170 2.9600000 + 40 0.170 3.2500000 + 41 0.250 3.5500000 + 42 0.170 2.9600000 + 43 0.170 2.9600000 + 44 0.066 3.5000000 + 45 0.060 2.9000000 + 46 0.060 2.9000000 + 47 0.060 2.9000000 + 48 0.066 3.5000000 + 49 0.355 3.6000000 + 50 0.066 3.5000000 + 51 0.060 2.9000000 + 52 0.060 2.9000000 + 53 0.066 3.5000000 + 54 0.060 2.9000000 + 55 0.140 2.9000000 + 56 0.066 3.5000000 + 57 0.060 2.9000000 + 58 0.060 2.9000000 + 59 0.066 3.5000000 + 60 0.060 2.9000000 + 61 0.060 2.9000000 + 62 0.250 3.5500000 + 63 0.170 2.9600000 + 64 0.170 2.9600000 + 65 0.170 3.2500000 + 66 0.250 3.5500000 + 67 0.170 2.9600000 + 68 0.170 2.9600000 + 69 0.066 3.5000000 + 70 0.060 2.9000000 + 71 0.060 2.9000000 + 72 0.060 2.9000000 + 73 0.066 3.5000000 + 74 0.355 3.6000000 + 75 0.066 3.5000000 + 76 0.060 2.9000000 + 77 0.060 2.9000000 + 78 0.066 3.5000000 + 79 0.060 2.9000000 + 80 0.140 2.9000000 + 81 0.066 3.5000000 + 82 0.060 2.9000000 + 83 0.060 2.9000000 + 84 0.066 3.5000000 + 85 0.060 2.9000000 + 86 0.060 2.9000000 + 87 0.250 3.5500000 + 88 0.170 2.9600000 + 89 0.170 2.9600000 + 90 0.170 3.2500000 + 91 0.250 3.5500000 + 92 0.170 2.9600000 + 93 0.170 2.9600000 + 94 0.066 3.5000000 + 95 0.060 2.9000000 + 96 0.060 2.9000000 + 97 0.060 2.9000000 + 98 0.066 3.5000000 + 99 0.060 2.9000000 + 100 0.060 2.9000000 + 101 0.060 2.9000000 + 102 0.030 2.5000000 + 103 0.030 2.5000000 + 104 0.030 2.5000000 + 105 0.030 2.5000000 + 106 0.030 2.5000000 + 107 0.030 2.5000000 + 108 0.030 2.5000000 + 109 0.030 2.5000000 + 110 0.030 2.5000000 + 111 0.030 2.5000000 + 112 0.030 2.5000000 + 113 0.030 2.5000000 + +Bond Coeffs + + 1 268.0000 1.5290 + 2 268.0000 1.5290 + 3 222.0000 1.8100 + 4 222.0000 1.8100 + 5 367.0000 1.3320 + 6 367.0000 1.3320 + 7 268.0000 1.5290 + 8 367.0000 1.3600 + 9 320.0000 1.4100 + 10 320.0000 1.4100 + 11 367.0000 1.3320 + 12 367.0000 1.3320 + 13 268.0000 1.5290 + 14 367.0000 1.3320 + 15 367.0000 1.3320 + 16 340.0000 1.7700 + 17 700.0000 1.4400 + 18 700.0000 1.4400 + 19 250.0000 1.7300 + 20 250.0000 1.7300 + 21 700.0000 1.4400 + 22 700.0000 1.4400 + 23 340.0000 1.7700 + 24 367.0000 1.3320 + 25 367.0000 1.3320 + 26 367.0000 1.3320 + 27 222.0000 1.8100 + 28 222.0000 1.8100 + 29 367.0000 1.3320 + 30 367.0000 1.3320 + 31 268.0000 1.5290 + 32 367.0000 1.3600 + 33 320.0000 1.4100 + 34 320.0000 1.4100 + 35 367.0000 1.3320 + 36 367.0000 1.3320 + 37 268.0000 1.5290 + 38 367.0000 1.3320 + 39 367.0000 1.3320 + 40 340.0000 1.7700 + 41 700.0000 1.4400 + 42 700.0000 1.4400 + 43 250.0000 1.7300 + 44 250.0000 1.7300 + 45 700.0000 1.4400 + 46 700.0000 1.4400 + 47 340.0000 1.7700 + 48 367.0000 1.3320 + 49 367.0000 1.3320 + 50 367.0000 1.3320 + 51 268.0000 1.5290 + 52 222.0000 1.8100 + 53 222.0000 1.8100 + 54 367.0000 1.3320 + 55 367.0000 1.3320 + 56 268.0000 1.5290 + 57 367.0000 1.3600 + 58 320.0000 1.4100 + 59 320.0000 1.4100 + 60 367.0000 1.3320 + 61 367.0000 1.3320 + 62 268.0000 1.5290 + 63 367.0000 1.3320 + 64 367.0000 1.3320 + 65 340.0000 1.7700 + 66 700.0000 1.4400 + 67 700.0000 1.4400 + 68 250.0000 1.7300 + 69 250.0000 1.7300 + 70 700.0000 1.4400 + 71 700.0000 1.4400 + 72 340.0000 1.7700 + 73 367.0000 1.3320 + 74 367.0000 1.3320 + 75 367.0000 1.3320 + 76 268.0000 1.5290 + 77 222.0000 1.8100 + 78 222.0000 1.8100 + 79 367.0000 1.3320 + 80 367.0000 1.3320 + 81 268.0000 1.5290 + 82 367.0000 1.3600 + 83 320.0000 1.4100 + 84 320.0000 1.4100 + 85 367.0000 1.3320 + 86 367.0000 1.3320 + 87 268.0000 1.5290 + 88 367.0000 1.3320 + 89 367.0000 1.3320 + 90 340.0000 1.7700 + 91 700.0000 1.4400 + 92 700.0000 1.4400 + 93 250.0000 1.7300 + 94 250.0000 1.7300 + 95 700.0000 1.4400 + 96 340.0000 1.7700 + 97 367.0000 1.3320 + 98 367.0000 1.3320 + 99 367.0000 1.3320 + 100 700.0000 1.4400 + 101 340.0000 1.0900 + 102 340.0000 1.0900 + 103 340.0000 1.0900 + 104 340.0000 1.0900 + 105 340.0000 1.0900 + 106 340.0000 1.0900 + 107 340.0000 1.0900 + 108 340.0000 1.0900 + 109 340.0000 1.0900 + 110 340.0000 1.0900 + 111 340.0000 1.0900 + 112 340.0000 1.0900 + +Angle Coeffs + + 1 58.350 112.700 + 2 50.000 114.700 + 3 62.000 98.900 + 4 59.700 110.180 + 5 59.700 110.180 + 6 50.000 114.700 + 7 50.000 109.500 + 8 50.000 109.500 + 9 60.000 109.500 + 10 59.700 110.180 + 11 59.700 110.180 + 12 50.000 109.500 + 13 50.000 109.500 + 14 50.000 109.500 + 15 50.000 114.700 + 16 74.000 108.900 + 17 74.000 108.900 + 18 76.450 103.980 + 19 80.290 117.310 + 20 76.450 103.980 + 21 76.450 103.980 + 22 76.450 103.980 + 23 50.000 109.500 + 24 50.000 109.500 + 25 50.000 109.500 + 26 50.000 114.700 + 27 62.000 98.900 + 28 59.700 110.180 + 29 59.700 110.180 + 30 50.000 114.700 + 31 50.000 109.500 + 32 50.000 109.500 + 33 60.000 109.500 + 34 59.700 110.180 + 35 59.700 110.180 + 36 50.000 109.500 + 37 50.000 109.500 + 38 50.000 109.500 + 39 50.000 114.700 + 40 74.000 108.900 + 41 74.000 108.900 + 42 76.450 103.980 + 43 80.290 117.310 + 44 76.450 103.980 + 45 76.450 103.980 + 46 76.450 103.980 + 47 50.000 109.500 + 48 50.000 109.500 + 49 50.000 109.500 + 50 58.350 112.700 + 51 50.000 114.700 + 52 62.000 98.900 + 53 59.700 110.180 + 54 59.700 110.180 + 55 50.000 114.700 + 56 50.000 109.500 + 57 50.000 109.500 + 58 60.000 109.500 + 59 59.700 110.180 + 60 59.700 110.180 + 61 50.000 109.500 + 62 50.000 109.500 + 63 50.000 109.500 + 64 50.000 114.700 + 65 74.000 108.900 + 66 74.000 108.900 + 67 76.450 103.980 + 68 80.290 117.310 + 69 76.450 103.980 + 70 76.450 103.980 + 71 76.450 103.980 + 72 50.000 109.500 + 73 50.000 109.500 + 74 50.000 109.500 + 75 58.350 112.700 + 76 50.000 114.700 + 77 62.000 98.900 + 78 59.700 110.180 + 79 59.700 110.180 + 80 50.000 114.700 + 81 50.000 109.500 + 82 50.000 109.500 + 83 60.000 109.500 + 84 59.700 110.180 + 85 59.700 110.180 + 86 50.000 109.500 + 87 50.000 109.500 + 88 50.000 109.500 + 89 50.000 114.700 + 90 74.000 108.900 + 91 74.000 108.900 + 92 76.450 103.980 + 93 80.290 117.310 + 94 76.450 103.980 + 95 76.450 103.980 + 96 50.000 109.500 + 97 50.000 109.500 + 98 50.000 109.500 + 99 76.450 103.980 + 100 37.500 110.700 + 101 37.500 110.700 + 102 37.500 110.700 + 103 37.500 110.700 + 104 37.500 110.700 + 105 37.500 110.700 + 106 37.500 110.700 + 107 37.500 110.700 + 108 37.500 110.700 + 109 37.500 110.700 + 110 37.500 110.700 + 111 37.500 110.700 + 112 58.350 112.700 + 113 58.350 112.700 + 114 35.000 109.500 + 115 35.000 109.500 + 116 77.000 109.100 + 117 50.000 109.500 + 118 50.000 109.500 + 119 51.140 110.240 + 120 40.000 107.000 + 121 35.000 109.500 + 122 77.000 109.100 + 123 50.000 109.500 + 124 50.000 109.500 + 125 77.000 109.100 + 126 50.000 109.500 + 127 50.000 109.500 + 128 104.000 123.000 + 129 76.450 103.980 + 130 76.450 103.980 + 131 104.000 123.000 + 132 74.000 108.900 + 133 74.000 108.900 + 134 77.000 109.100 + 135 77.000 109.100 + 136 77.000 109.100 + 137 35.000 109.500 + 138 35.000 109.500 + 139 77.000 109.100 + 140 50.000 109.500 + 141 50.000 109.500 + 142 51.140 110.240 + 143 40.000 107.000 + 144 35.000 109.500 + 145 77.000 109.100 + 146 50.000 109.500 + 147 50.000 109.500 + 148 77.000 109.100 + 149 50.000 109.500 + 150 50.000 109.500 + 151 104.000 123.000 + 152 76.450 103.980 + 153 76.450 103.980 + 154 104.000 123.000 + 155 74.000 108.900 + 156 74.000 108.900 + 157 77.000 109.100 + 158 77.000 109.100 + 159 77.000 109.100 + 160 58.350 112.700 + 161 35.000 109.500 + 162 35.000 109.500 + 163 77.000 109.100 + 164 50.000 109.500 + 165 50.000 109.500 + 166 51.140 110.240 + 167 40.000 107.000 + 168 35.000 109.500 + 169 77.000 109.100 + 170 50.000 109.500 + 171 50.000 109.500 + 172 77.000 109.100 + 173 50.000 109.500 + 174 50.000 109.500 + 175 104.000 123.000 + 176 76.450 103.980 + 177 76.450 103.980 + 178 104.000 123.000 + 179 74.000 108.900 + 180 74.000 108.900 + 181 77.000 109.100 + 182 77.000 109.100 + 183 77.000 109.100 + 184 35.000 109.500 + 185 35.000 109.500 + 186 77.000 109.100 + 187 50.000 109.500 + 188 50.000 109.500 + 189 51.140 110.240 + 190 40.000 107.000 + 191 35.000 109.500 + 192 77.000 109.100 + 193 50.000 109.500 + 194 50.000 109.500 + 195 77.000 109.100 + 196 50.000 109.500 + 197 50.000 109.500 + 198 104.000 123.000 + 199 76.450 103.980 + 200 76.450 103.980 + 201 74.000 108.900 + 202 104.000 123.000 + 203 74.000 108.900 + 204 77.000 109.100 + 205 77.000 109.100 + 206 77.000 109.100 + 207 33.000 107.800 + 208 33.000 107.800 + 209 33.000 107.800 + 210 33.000 107.800 + +Dihedral Coeffs + + 1 -1.565 -0.009 -0.450 0.000 + 2 0.925 -0.576 0.677 0.000 + 3 0.000 0.000 0.647 0.000 + 4 0.000 0.000 0.647 0.000 + 5 0.925 -0.576 0.677 0.000 + 6 -2.500 0.000 0.250 0.000 + 7 0.000 0.000 0.300 0.000 + 8 0.250 -0.250 0.500 0.000 + 9 0.000 5.124 0.000 0.000 + 10 0.000 5.124 0.000 0.000 + 11 0.250 -0.250 0.500 0.000 + 12 -2.500 0.000 0.250 0.000 + 13 -2.500 0.000 0.250 0.000 + 14 -2.500 0.000 0.250 0.000 + 15 0.000 0.000 0.000 0.000 + 16 0.000 0.000 0.000 0.000 + 17 1.656 -0.768 -0.117 0.000 + 18 1.671 -4.901 0.669 0.000 + 19 0.000 0.000 0.000 0.000 + 20 0.000 0.000 0.000 0.000 + 21 1.671 -4.901 0.669 0.000 + 22 0.000 0.000 0.000 0.000 + 23 0.000 0.000 0.000 0.000 + 24 0.000 0.000 0.000 0.000 + 25 -1.565 -0.009 -0.450 0.000 + 26 0.925 -0.576 0.677 0.000 + 27 0.000 0.000 0.647 0.000 + 28 0.000 0.000 0.647 0.000 + 29 0.925 -0.576 0.677 0.000 + 30 -2.500 0.000 0.250 0.000 + 31 0.000 0.000 0.300 0.000 + 32 0.250 -0.250 0.500 0.000 + 33 0.000 5.124 0.000 0.000 + 34 0.000 5.124 0.000 0.000 + 35 0.250 -0.250 0.500 0.000 + 36 -2.500 0.000 0.250 0.000 + 37 -2.500 0.000 0.250 0.000 + 38 -2.500 0.000 0.250 0.000 + 39 0.000 0.000 0.000 0.000 + 40 0.000 0.000 0.000 0.000 + 41 1.656 -0.768 -0.117 0.000 + 42 1.671 -4.901 0.669 0.000 + 43 0.000 0.000 0.000 0.000 + 44 0.000 0.000 0.000 0.000 + 45 1.671 -4.901 0.669 0.000 + 46 0.000 0.000 0.000 0.000 + 47 0.000 0.000 0.000 0.000 + 48 0.000 0.000 0.000 0.000 + 49 -1.565 -0.009 -0.450 0.000 + 50 -1.565 -0.009 -0.450 0.000 + 51 0.925 -0.576 0.677 0.000 + 52 0.000 0.000 0.647 0.000 + 53 0.000 0.000 0.647 0.000 + 54 0.925 -0.576 0.677 0.000 + 55 -2.500 0.000 0.250 0.000 + 56 0.000 0.000 0.300 0.000 + 57 0.250 -0.250 0.500 0.000 + 58 0.000 5.124 0.000 0.000 + 59 0.000 5.124 0.000 0.000 + 60 0.250 -0.250 0.500 0.000 + 61 -2.500 0.000 0.250 0.000 + 62 -2.500 0.000 0.250 0.000 + 63 -2.500 0.000 0.250 0.000 + 64 0.000 0.000 0.000 0.000 + 65 0.000 0.000 0.000 0.000 + 66 1.656 -0.768 -0.117 0.000 + 67 1.671 -4.901 0.669 0.000 + 68 0.000 0.000 0.000 0.000 + 69 0.000 0.000 0.000 0.000 + 70 1.671 -4.901 0.669 0.000 + 71 0.000 0.000 0.000 0.000 + 72 0.000 0.000 0.000 0.000 + 73 0.000 0.000 0.000 0.000 + 74 -1.565 -0.009 -0.450 0.000 + 75 -1.565 -0.009 -0.450 0.000 + 76 0.925 -0.576 0.677 0.000 + 77 0.000 0.000 0.647 0.000 + 78 0.000 0.000 0.647 0.000 + 79 0.925 -0.576 0.677 0.000 + 80 -2.500 0.000 0.250 0.000 + 81 0.000 0.000 0.300 0.000 + 82 0.250 -0.250 0.500 0.000 + 83 0.000 5.124 0.000 0.000 + 84 0.000 5.124 0.000 0.000 + 85 0.250 -0.250 0.500 0.000 + 86 -2.500 0.000 0.250 0.000 + 87 -2.500 0.000 0.250 0.000 + 88 -2.500 0.000 0.250 0.000 + 89 0.000 0.000 0.000 0.000 + 90 0.000 0.000 0.000 0.000 + 91 1.656 -0.768 -0.117 0.000 + 92 1.671 -4.901 0.669 0.000 + 93 0.000 0.000 0.000 0.000 + 94 1.671 -4.901 0.669 0.000 + 95 0.000 0.000 0.000 0.000 + 96 0.000 0.000 0.000 0.000 + 97 0.000 0.000 0.000 0.000 + 98 0.000 0.000 0.000 0.000 + 99 0.000 0.000 0.452 0.000 + 100 0.000 0.000 0.300 0.000 + 101 0.000 0.000 0.300 0.000 + 102 0.000 0.000 0.300 0.000 + 103 0.000 0.000 0.300 0.000 + 104 0.000 0.000 0.452 0.000 + 105 0.000 0.000 0.300 0.000 + 106 0.000 0.000 0.300 0.000 + 107 0.000 0.000 0.452 0.000 + 108 0.000 0.000 0.300 0.000 + 109 0.000 0.000 0.300 0.000 + 110 0.000 0.000 0.452 0.000 + 111 -1.565 -0.009 -0.450 0.000 + 112 0.000 0.000 0.300 0.000 + 113 0.000 0.000 0.300 0.000 + 114 -1.565 -0.009 -0.450 0.000 + 115 0.000 0.000 0.300 0.000 + 116 0.000 0.000 0.300 0.000 + 117 -1.565 -0.009 -0.450 0.000 + 118 -1.565 -0.009 -0.450 0.000 + 119 0.000 0.000 0.647 0.000 + 120 0.000 0.000 0.647 0.000 + 121 -2.500 0.000 0.250 0.000 + 122 0.000 0.000 0.540 0.000 + 123 0.000 0.000 0.360 0.000 + 124 -2.500 0.000 0.250 0.000 + 125 0.000 0.000 0.540 0.000 + 126 0.000 0.000 0.360 0.000 + 127 0.000 0.000 0.760 0.000 + 128 0.000 0.000 0.760 0.000 + 129 -2.500 0.000 0.250 0.000 + 130 -2.500 0.000 0.250 0.000 + 131 -2.500 0.000 0.250 0.000 + 132 -2.500 0.000 0.250 0.000 + 133 -2.500 0.000 0.250 0.000 + 134 -2.500 0.000 0.250 0.000 + 135 0.000 0.000 0.000 0.000 + 136 0.000 0.000 0.000 0.000 + 137 0.000 0.000 0.000 0.000 + 138 0.000 0.000 0.000 0.000 + 139 0.000 0.000 0.000 0.000 + 140 0.000 0.000 0.000 0.000 + 141 0.000 0.000 0.000 0.000 + 142 0.000 0.000 0.000 0.000 + 143 0.000 0.000 0.000 0.000 + 144 0.000 0.000 0.000 0.000 + 145 0.000 0.000 0.000 0.000 + 146 0.000 0.000 0.000 0.000 + 147 0.000 0.000 0.000 0.000 + 148 0.000 0.000 0.000 0.000 + 149 0.000 0.000 0.647 0.000 + 150 0.000 0.000 0.647 0.000 + 151 -2.500 0.000 0.250 0.000 + 152 0.000 0.000 0.540 0.000 + 153 0.000 0.000 0.360 0.000 + 154 -2.500 0.000 0.250 0.000 + 155 0.000 0.000 0.540 0.000 + 156 0.000 0.000 0.360 0.000 + 157 0.000 0.000 0.760 0.000 + 158 0.000 0.000 0.760 0.000 + 159 -2.500 0.000 0.250 0.000 + 160 -2.500 0.000 0.250 0.000 + 161 -2.500 0.000 0.250 0.000 + 162 -2.500 0.000 0.250 0.000 + 163 -2.500 0.000 0.250 0.000 + 164 -2.500 0.000 0.250 0.000 + 165 0.000 0.000 0.000 0.000 + 166 0.000 0.000 0.000 0.000 + 167 0.000 0.000 0.000 0.000 + 168 0.000 0.000 0.000 0.000 + 169 0.000 0.000 0.000 0.000 + 170 0.000 0.000 0.000 0.000 + 171 0.000 0.000 0.000 0.000 + 172 0.000 0.000 0.000 0.000 + 173 0.000 0.000 0.000 0.000 + 174 0.000 0.000 0.000 0.000 + 175 0.000 0.000 0.000 0.000 + 176 0.000 0.000 0.000 0.000 + 177 0.000 0.000 0.000 0.000 + 178 0.000 0.000 0.000 0.000 + 179 0.000 0.000 0.300 0.000 + 180 0.000 0.000 0.300 0.000 + 181 0.000 0.000 0.300 0.000 + 182 0.000 0.000 0.300 0.000 + 183 -1.565 -0.009 -0.450 0.000 + 184 0.000 0.000 0.300 0.000 + 185 0.000 0.000 0.300 0.000 + 186 -1.565 -0.009 -0.450 0.000 + 187 0.000 0.000 0.647 0.000 + 188 0.000 0.000 0.647 0.000 + 189 -2.500 0.000 0.250 0.000 + 190 0.000 0.000 0.540 0.000 + 191 0.000 0.000 0.360 0.000 + 192 -2.500 0.000 0.250 0.000 + 193 0.000 0.000 0.540 0.000 + 194 0.000 0.000 0.360 0.000 + 195 0.000 0.000 0.760 0.000 + 196 0.000 0.000 0.760 0.000 + 197 -2.500 0.000 0.250 0.000 + 198 -2.500 0.000 0.250 0.000 + 199 -2.500 0.000 0.250 0.000 + 200 -2.500 0.000 0.250 0.000 + 201 -2.500 0.000 0.250 0.000 + 202 -2.500 0.000 0.250 0.000 + 203 0.000 0.000 0.000 0.000 + 204 0.000 0.000 0.000 0.000 + 205 0.000 0.000 0.000 0.000 + 206 0.000 0.000 0.000 0.000 + 207 0.000 0.000 0.000 0.000 + 208 0.000 0.000 0.000 0.000 + 209 0.000 0.000 0.000 0.000 + 210 0.000 0.000 0.000 0.000 + 211 0.000 0.000 0.000 0.000 + 212 0.000 0.000 0.000 0.000 + 213 0.000 0.000 0.000 0.000 + 214 0.000 0.000 0.000 0.000 + 215 0.000 0.000 0.000 0.000 + 216 0.000 0.000 0.000 0.000 + 217 0.000 0.000 0.300 0.000 + 218 0.000 0.000 0.300 0.000 + 219 0.000 0.000 0.300 0.000 + 220 0.000 0.000 0.300 0.000 + 221 0.000 0.000 0.300 0.000 + 222 0.000 0.000 0.300 0.000 + 223 0.000 0.000 0.647 0.000 + 224 0.000 0.000 0.647 0.000 + 225 -2.500 0.000 0.250 0.000 + 226 0.000 0.000 0.540 0.000 + 227 0.000 0.000 0.360 0.000 + 228 -2.500 0.000 0.250 0.000 + 229 0.000 0.000 0.540 0.000 + 230 0.000 0.000 0.360 0.000 + 231 0.000 0.000 0.760 0.000 + 232 0.000 0.000 0.760 0.000 + 233 -2.500 0.000 0.250 0.000 + 234 -2.500 0.000 0.250 0.000 + 235 -2.500 0.000 0.250 0.000 + 236 -2.500 0.000 0.250 0.000 + 237 -2.500 0.000 0.250 0.000 + 238 -2.500 0.000 0.250 0.000 + 239 0.000 0.000 0.000 0.000 + 240 0.000 0.000 0.000 0.000 + 241 0.000 0.000 0.000 0.000 + 242 0.000 0.000 0.000 0.000 + 243 0.000 0.000 0.000 0.000 + 244 0.000 0.000 0.000 0.000 + 245 0.000 0.000 0.000 0.000 + 246 0.000 0.000 0.000 0.000 + 247 0.000 0.000 0.000 0.000 + 248 0.000 0.000 0.000 0.000 + 249 0.000 0.000 0.000 0.000 + 250 0.000 0.000 0.000 0.000 + 251 0.000 0.000 0.000 0.000 + 252 0.000 0.000 0.000 0.000 + +Atoms + + 1 1 1 -0.5079022758800333 -3.31300 -4.55800 -10.05800 + 2 1 2 0.9332105886918297 -3.07100 -4.33200 -8.59800 + 3 1 3 -0.5047194365325154 -1.62700 -3.91600 -8.40900 + 4 1 4 -0.6684285829721405 -4.07600 -3.12000 -7.93600 + 5 1 5 0.9516813049053326 -3.47000 -2.52600 -6.43500 + 6 1 6 -0.5067620961137703 -4.35800 -2.80800 -5.27800 + 7 1 7 -0.5101341554224982 -2.15100 -3.23600 -6.17100 + 8 1 8 0.0679256460752426 -3.11200 -0.78400 -6.58700 + 9 1 9 -0.0759716044258211 -2.16400 -0.64600 -7.57700 + 10 1 10 -0.0970942400956808 -4.23300 -0.08600 -7.00400 + 11 1 11 0.4869474001757830 -2.62300 -0.20900 -5.29500 + 12 1 12 -0.1610171469914849 -1.47800 -0.80000 -4.80700 + 13 1 13 -0.1527000286964942 -2.21700 1.12300 -5.59800 + 14 1 14 -0.3324062918567101 -3.62700 -0.04900 -4.34700 + 15 1 15 0.3410798300786348 -3.02500 0.42200 -3.15500 + 16 1 16 -0.1967222796719327 -3.48700 1.72400 -2.92200 + 17 1 17 0.3200759143844374 -3.43100 -0.48300 -2.00200 + 18 1 18 -0.1490696294407260 -4.87700 -0.32800 -2.00400 + 19 1 19 -0.1582736675538982 -3.34200 -1.83700 -2.57600 + 20 1 20 -0.2521282483137091 -2.82500 -0.35500 -0.49800 + 21 1 21 -0.4800314015935626 -1.79700 -0.44500 0.75200 + 22 1 22 0.8263975305885064 -0.44900 0.27600 0.96100 + 23 1 23 -0.4857025604309751 0.07600 -0.12000 2.34900 + 24 1 24 -0.2195930949834156 0.39800 -1.73100 2.81100 + 25 1 25 0.3055663373589008 -0.71700 -3.04000 2.96300 + 26 1 26 -0.1633563865119408 -1.97100 -2.67600 3.51800 + 27 1 27 -0.1500715692353284 -0.92500 -3.77800 1.85700 + 28 1 28 0.3479186886766688 -0.25400 -4.08500 4.03000 + 29 1 29 -0.2001820789626738 -0.16300 -3.46100 5.25800 + 30 1 30 -0.3161894551811616 0.90200 -4.73500 3.68500 + 31 1 31 0.4523509872680476 0.72500 -6.10200 3.49400 + 32 1 32 -0.1429911506868141 -0.07300 -6.42100 2.44200 + 33 1 33 -0.1617976068314906 0.07600 -6.50700 4.70700 + 34 1 34 0.1081270178339613 2.04800 -6.80100 3.55200 + 35 1 35 -0.1190605955925779 1.90500 -8.17800 3.35800 + 36 1 36 -0.0730183050312475 2.58500 -6.71100 4.85200 + 37 1 37 0.9499594052583219 3.24600 -6.20300 2.40700 + 38 1 38 -0.5063336962015923 2.82700 -6.31100 0.98800 + 39 1 39 -0.5074563959714388 3.54100 -4.74400 2.72900 + 40 1 40 -0.6661897234311068 4.74200 -7.09500 2.57500 + 41 1 41 0.9199318514139703 6.10900 -6.15900 2.14500 + 42 1 42 -0.5117471750918293 5.76400 -4.80800 1.58900 + 43 1 43 -0.5058116563086106 6.99300 -5.92600 3.35300 + 44 1 44 0.3580703465955791 7.02000 -7.03600 0.86800 + 45 1 45 -0.1482951895994861 7.42800 -8.27200 1.34300 + 46 1 46 -0.1525282487317090 6.21000 -7.13000 -0.23200 + 47 1 47 -0.1437057905403129 8.09100 -6.22600 0.54900 + 48 1 48 -0.4655799645561073 0.54000 -0.15500 -0.05900 + 49 1 49 -0.2657342255244838 0.27600 0.18700 -1.75500 + 50 1 50 0.3189616946128528 0.70400 1.80700 -2.36000 + 51 1 51 -0.1622725667341239 0.06900 2.88200 -1.86800 + 52 1 52 -0.1414798509966306 0.15400 1.79400 -3.74200 + 53 1 53 0.3818704417165594 2.12900 2.04600 -2.63500 + 54 1 54 -0.2061850377320673 2.29200 3.40400 -2.98600 + 55 1 55 -0.3466196289429761 3.09700 1.70600 -1.72100 + 56 1 56 0.4680668840462889 4.10400 1.06200 -2.48800 + 57 1 57 -0.1592716273493164 3.47100 -0.02900 -3.15600 + 58 1 58 -0.1478853696834992 4.57000 1.87400 -3.49800 + 59 1 59 0.1009090393136470 5.23700 0.47300 -1.75700 + 60 1 60 -0.0798292236350092 6.10200 -0.01800 -2.80200 + 61 1 61 -0.1106340573200182 5.94100 1.34700 -1.01500 + 62 1 62 0.9498513052804827 4.85200 -1.06100 -0.90700 + 63 1 63 -0.5153347743563714 3.96600 -0.91200 0.24400 + 64 1 64 -0.5078372158933707 6.20500 -1.55900 -0.39600 + 65 1 65 -0.6685414829489960 4.35100 -2.18800 -2.09900 + 66 1 66 0.9239393105924418 3.09500 -3.23500 -1.62700 + 67 1 67 -0.4992608376515284 2.92100 -3.38400 -0.15600 + 68 1 68 -0.5058034963102832 1.80500 -2.68000 -2.18500 + 69 1 69 0.3343782114524666 3.27000 -4.85400 -2.36400 + 70 1 70 -0.1473275697978482 4.47200 -5.37200 -1.95000 + 71 1 71 -0.1369375919277936 3.22300 -4.72900 -3.75400 + 72 1 72 -0.1379718317157745 2.25300 -5.66200 -1.90300 + 73 1 73 -0.4401787097633645 -0.77500 1.73800 0.91400 + 74 1 74 -0.2355529517116449 0.48400 2.88200 1.16900 + 75 1 75 0.3259049131894928 1.13600 3.31700 2.72600 + 76 1 76 -0.1542689883748574 1.89900 2.37200 3.32900 + 77 1 77 -0.1734719444382515 0.03700 3.57500 3.58600 + 78 1 78 0.3715279638367675 1.99800 4.58900 2.68600 + 79 1 79 -0.2045867780597105 3.07800 4.33400 1.78400 + 80 1 80 -0.3360892711016994 2.57600 4.76800 3.88700 + 81 1 81 0.5119686950464175 2.56400 5.95700 4.52700 + 82 1 82 -0.1556667080883249 3.31700 5.77600 5.72200 + 83 1 83 -0.1581631275765589 3.16200 6.96300 3.81600 + 84 1 84 0.0256205547477863 1.17300 6.41100 4.91800 + 85 1 85 -0.0763496243483270 0.58600 5.48900 5.77600 + 86 1 86 -0.0777177040678707 0.44300 6.60700 3.76800 + 87 1 87 0.9536554445006340 1.27800 8.01400 5.73800 + 88 1 88 -0.5065311561611131 -0.11100 8.44700 6.03900 + 89 1 89 -0.5066958961273413 2.11700 7.90400 6.98200 + 90 1 90 -0.6638450239117701 1.98600 9.09500 4.59600 + 91 1 91 0.8996153555788523 0.75200 9.86100 3.68100 + 92 1 92 -0.5043310166121415 0.97300 9.60400 2.20300 + 93 1 93 -0.4942267386835187 -0.57800 9.34600 4.12500 + 94 1 94 0.3648749452006363 0.89200 11.62400 3.95000 + 95 1 95 -0.1411999310540142 -0.09500 12.25300 3.23300 + 96 1 96 -0.1450182902712505 2.16400 11.99200 3.52600 + 97 1 97 -0.1565065079161660 0.80400 11.94800 5.28000 + 98 1 98 0.3338014515707025 -3.32300 -5.87600 -7.71900 + 99 1 99 -0.1510535690340184 -2.53700 -6.88700 -8.21000 + 100 1 100 -0.1291418935259118 -4.63400 -6.24800 -7.91400 + 101 1 101 -0.1435972505625637 -3.01100 -5.71000 -6.37900 + 102 1 102 0.0933315008670423 -1.98800 0.45400 -3.31600 + 103 1 103 0.2124729564430441 -2.37000 -0.16100 1.77900 + 104 1 104 0.2117855365839650 -1.55600 -1.54700 1.12200 + 105 1 105 0.2228725343111304 -0.48100 0.54400 3.05400 + 106 1 106 0.2119147965574666 1.11800 0.41600 2.33400 + 107 1 107 0.0974953400134553 -1.07800 -4.80500 4.08400 + 108 1 108 0.2029131584028026 0.61300 -1.29700 0.06100 + 109 1 109 0.2240073740784883 1.58400 0.20100 0.26200 + 110 1 110 0.0873309420971569 2.39600 1.54000 -3.65500 + 111 1 111 0.2209282747097037 -1.45200 1.95600 0.02800 + 112 1 112 0.1901143810265520 -1.52900 1.84300 1.81700 + 113 1 113 0.0767353442692544 1.46400 5.40200 2.20800 + +Bonds + + 1 1 22 48 + 2 2 23 22 + 3 3 24 23 + 4 4 25 24 + 5 5 26 25 + 6 6 27 25 + 7 7 28 25 + 8 8 29 28 + 9 9 30 28 + 10 10 31 30 + 11 11 32 31 + 12 12 33 31 + 13 13 34 31 + 14 14 35 34 + 15 15 36 34 + 16 16 37 34 + 17 17 38 37 + 18 18 39 37 + 19 19 40 37 + 20 20 41 40 + 21 21 42 41 + 22 22 43 41 + 23 23 44 41 + 24 24 45 44 + 25 25 46 44 + 26 26 47 44 + 27 27 49 48 + 28 28 50 49 + 29 29 51 50 + 30 30 52 50 + 31 31 53 50 + 32 32 54 53 + 33 33 55 53 + 34 34 56 55 + 35 35 57 56 + 36 36 58 56 + 37 37 59 56 + 38 38 60 59 + 39 39 61 59 + 40 40 62 59 + 41 41 63 62 + 42 42 64 62 + 43 43 65 62 + 44 44 66 65 + 45 45 67 66 + 46 46 68 66 + 47 47 69 66 + 48 48 70 69 + 49 49 71 69 + 50 50 72 69 + 51 51 73 22 + 52 52 74 73 + 53 53 75 74 + 54 54 76 75 + 55 55 77 75 + 56 56 78 75 + 57 57 79 78 + 58 58 80 78 + 59 59 81 80 + 60 60 82 81 + 61 61 83 81 + 62 62 84 81 + 63 63 85 84 + 64 64 86 84 + 65 65 87 84 + 66 66 88 87 + 67 67 89 87 + 68 68 90 87 + 69 69 91 90 + 70 70 92 91 + 71 71 93 91 + 72 72 94 91 + 73 73 95 94 + 74 74 96 94 + 75 75 97 94 + 76 76 21 22 + 77 77 20 21 + 78 78 17 20 + 79 79 18 17 + 80 80 19 17 + 81 81 15 17 + 82 82 16 15 + 83 83 14 15 + 84 84 11 14 + 85 85 12 11 + 86 86 13 11 + 87 87 8 11 + 88 88 9 8 + 89 89 10 8 + 90 90 5 8 + 91 91 6 5 + 92 92 7 5 + 93 93 4 5 + 94 94 2 4 + 95 95 3 2 + 96 96 98 2 + 97 97 99 98 + 98 98 100 98 + 99 99 101 98 + 100 100 1 2 + 101 101 102 15 + 102 102 103 21 + 103 103 104 21 + 104 104 105 23 + 105 105 106 23 + 106 106 107 28 + 107 107 108 48 + 108 108 109 48 + 109 109 110 53 + 110 110 111 73 + 111 111 112 73 + 112 112 113 78 + +Angles + + 1 1 23 22 48 + 2 2 24 23 22 + 3 3 25 24 23 + 4 4 26 25 24 + 5 5 27 25 24 + 6 6 28 25 24 + 7 7 29 28 25 + 8 8 30 28 25 + 9 9 31 30 28 + 10 10 32 31 30 + 11 11 33 31 30 + 12 12 34 31 30 + 13 13 35 34 31 + 14 14 36 34 31 + 15 15 37 34 31 + 16 16 38 37 34 + 17 17 39 37 34 + 18 18 40 37 34 + 19 19 41 40 37 + 20 20 42 41 40 + 21 21 43 41 40 + 22 22 44 41 40 + 23 23 45 44 41 + 24 24 46 44 41 + 25 25 47 44 41 + 26 26 49 48 22 + 27 27 50 49 48 + 28 28 51 50 49 + 29 29 52 50 49 + 30 30 53 50 49 + 31 31 54 53 50 + 32 32 55 53 50 + 33 33 56 55 53 + 34 34 57 56 55 + 35 35 58 56 55 + 36 36 59 56 55 + 37 37 60 59 56 + 38 38 61 59 56 + 39 39 62 59 56 + 40 40 63 62 59 + 41 41 64 62 59 + 42 42 65 62 59 + 43 43 66 65 62 + 44 44 67 66 65 + 45 45 68 66 65 + 46 46 69 66 65 + 47 47 70 69 66 + 48 48 71 69 66 + 49 49 72 69 66 + 50 50 73 22 48 + 51 51 74 73 22 + 52 52 75 74 73 + 53 53 76 75 74 + 54 54 77 75 74 + 55 55 78 75 74 + 56 56 79 78 75 + 57 57 80 78 75 + 58 58 81 80 78 + 59 59 82 81 80 + 60 60 83 81 80 + 61 61 84 81 80 + 62 62 85 84 81 + 63 63 86 84 81 + 64 64 87 84 81 + 65 65 88 87 84 + 66 66 89 87 84 + 67 67 90 87 84 + 68 68 91 90 87 + 69 69 92 91 90 + 70 70 93 91 90 + 71 71 94 91 90 + 72 72 95 94 91 + 73 73 96 94 91 + 74 74 97 94 91 + 75 75 21 22 48 + 76 76 20 21 22 + 77 77 17 20 21 + 78 78 18 17 20 + 79 79 19 17 20 + 80 80 15 17 20 + 81 81 16 15 17 + 82 82 14 15 17 + 83 83 11 14 15 + 84 84 12 11 14 + 85 85 13 11 14 + 86 86 8 11 14 + 87 87 9 8 11 + 88 88 10 8 11 + 89 89 5 8 11 + 90 90 6 5 8 + 91 91 7 5 8 + 92 92 4 5 8 + 93 93 2 4 5 + 94 94 3 2 4 + 95 95 98 2 4 + 96 96 99 98 2 + 97 97 100 98 2 + 98 98 101 98 2 + 99 99 1 2 4 + 100 100 102 15 17 + 101 101 103 21 22 + 102 102 104 21 22 + 103 103 105 23 22 + 104 104 106 23 22 + 105 105 107 28 25 + 106 106 108 48 22 + 107 107 109 48 22 + 108 108 110 53 50 + 109 109 111 73 22 + 110 110 112 73 22 + 111 111 113 78 75 + 112 112 73 22 23 + 113 113 21 22 23 + 114 114 105 23 24 + 115 115 106 23 24 + 116 116 27 25 26 + 117 117 28 25 26 + 118 118 28 25 27 + 119 119 30 28 29 + 120 120 107 28 29 + 121 121 107 28 30 + 122 122 33 31 32 + 123 123 34 31 32 + 124 124 34 31 33 + 125 125 36 34 35 + 126 126 37 34 35 + 127 127 37 34 36 + 128 128 39 37 38 + 129 129 40 37 38 + 130 130 40 37 39 + 131 131 43 41 42 + 132 132 44 41 42 + 133 133 44 41 43 + 134 134 46 44 45 + 135 135 47 44 45 + 136 136 47 44 46 + 137 137 108 48 49 + 138 138 109 48 49 + 139 139 52 50 51 + 140 140 53 50 51 + 141 141 53 50 52 + 142 142 55 53 54 + 143 143 110 53 54 + 144 144 110 53 55 + 145 145 58 56 57 + 146 146 59 56 57 + 147 147 59 56 58 + 148 148 61 59 60 + 149 149 62 59 60 + 150 150 62 59 61 + 151 151 64 62 63 + 152 152 65 62 63 + 153 153 65 62 64 + 154 154 68 66 67 + 155 155 69 66 67 + 156 156 69 66 68 + 157 157 71 69 70 + 158 158 72 69 70 + 159 159 72 69 71 + 160 160 21 22 73 + 161 161 111 73 74 + 162 162 112 73 74 + 163 163 77 75 76 + 164 164 78 75 76 + 165 165 78 75 77 + 166 166 80 78 79 + 167 167 113 78 79 + 168 168 113 78 80 + 169 169 83 81 82 + 170 170 84 81 82 + 171 171 84 81 83 + 172 172 86 84 85 + 173 173 87 84 85 + 174 174 87 84 86 + 175 175 89 87 88 + 176 176 90 87 88 + 177 177 90 87 89 + 178 178 93 91 92 + 179 179 94 91 92 + 180 180 94 91 93 + 181 181 96 94 95 + 182 182 97 94 95 + 183 183 97 94 96 + 184 184 103 21 20 + 185 185 104 21 20 + 186 186 19 17 18 + 187 187 15 17 18 + 188 188 15 17 19 + 189 189 14 15 16 + 190 190 102 15 16 + 191 191 102 15 14 + 192 192 13 11 12 + 193 193 8 11 12 + 194 194 8 11 13 + 195 195 10 8 9 + 196 196 5 8 9 + 197 197 5 8 10 + 198 198 7 5 6 + 199 199 4 5 6 + 200 200 4 5 7 + 201 201 98 2 3 + 202 202 1 2 3 + 203 203 1 2 98 + 204 204 100 98 99 + 205 205 101 98 99 + 206 206 101 98 100 + 207 207 104 21 103 + 208 208 106 23 105 + 209 209 109 48 108 + 210 210 112 73 111 + +Dihedrals + + 1 1 24 23 22 48 + 2 2 25 24 23 22 + 3 3 26 25 24 23 + 4 4 27 25 24 23 + 5 5 28 25 24 23 + 6 6 29 28 25 24 + 7 7 30 28 25 24 + 8 8 31 30 28 25 + 9 9 32 31 30 28 + 10 10 33 31 30 28 + 11 11 34 31 30 28 + 12 12 35 34 31 30 + 13 13 36 34 31 30 + 14 14 37 34 31 30 + 15 15 38 37 34 31 + 16 16 39 37 34 31 + 17 17 40 37 34 31 + 18 18 41 40 37 34 + 19 19 42 41 40 37 + 20 20 43 41 40 37 + 21 21 44 41 40 37 + 22 22 45 44 41 40 + 23 23 46 44 41 40 + 24 24 47 44 41 40 + 25 25 49 48 22 23 + 26 26 50 49 48 22 + 27 27 51 50 49 48 + 28 28 52 50 49 48 + 29 29 53 50 49 48 + 30 30 54 53 50 49 + 31 31 55 53 50 49 + 32 32 56 55 53 50 + 33 33 57 56 55 53 + 34 34 58 56 55 53 + 35 35 59 56 55 53 + 36 36 60 59 56 55 + 37 37 61 59 56 55 + 38 38 62 59 56 55 + 39 39 63 62 59 56 + 40 40 64 62 59 56 + 41 41 65 62 59 56 + 42 42 66 65 62 59 + 43 43 67 66 65 62 + 44 44 68 66 65 62 + 45 45 69 66 65 62 + 46 46 70 69 66 65 + 47 47 71 69 66 65 + 48 48 72 69 66 65 + 49 49 73 22 48 49 + 50 50 74 73 22 48 + 51 51 75 74 73 22 + 52 52 76 75 74 73 + 53 53 77 75 74 73 + 54 54 78 75 74 73 + 55 55 79 78 75 74 + 56 56 80 78 75 74 + 57 57 81 80 78 75 + 58 58 82 81 80 78 + 59 59 83 81 80 78 + 60 60 84 81 80 78 + 61 61 85 84 81 80 + 62 62 86 84 81 80 + 63 63 87 84 81 80 + 64 64 88 87 84 81 + 65 65 89 87 84 81 + 66 66 90 87 84 81 + 67 67 91 90 87 84 + 68 68 92 91 90 87 + 69 69 93 91 90 87 + 70 70 94 91 90 87 + 71 71 95 94 91 90 + 72 72 96 94 91 90 + 73 73 97 94 91 90 + 74 74 21 22 48 49 + 75 75 20 21 22 48 + 76 76 17 20 21 22 + 77 77 18 17 20 21 + 78 78 19 17 20 21 + 79 79 15 17 20 21 + 80 80 16 15 17 20 + 81 81 14 15 17 20 + 82 82 11 14 15 17 + 83 83 12 11 14 15 + 84 84 13 11 14 15 + 85 85 8 11 14 15 + 86 86 9 8 11 14 + 87 87 10 8 11 14 + 88 88 5 8 11 14 + 89 89 6 5 8 11 + 90 90 7 5 8 11 + 91 91 4 5 8 11 + 92 92 2 4 5 8 + 93 93 3 2 4 5 + 94 94 98 2 4 5 + 95 95 99 98 2 4 + 96 96 100 98 2 4 + 97 97 101 98 2 4 + 98 98 1 2 4 5 + 99 99 102 15 17 20 + 100 100 103 21 22 48 + 101 101 104 21 22 48 + 102 102 105 23 22 48 + 103 103 106 23 22 48 + 104 104 107 28 25 24 + 105 105 108 48 22 23 + 106 106 109 48 22 23 + 107 107 110 53 50 49 + 108 108 111 73 22 48 + 109 109 112 73 22 48 + 110 110 113 78 75 74 + 111 111 74 73 22 23 + 112 112 111 73 22 23 + 113 113 112 73 22 23 + 114 114 20 21 22 23 + 115 115 103 21 22 23 + 116 116 104 21 22 23 + 117 117 73 22 23 24 + 118 118 21 22 23 24 + 119 119 105 23 24 25 + 120 120 106 23 24 25 + 121 121 29 28 25 26 + 122 122 30 28 25 26 + 123 123 107 28 25 26 + 124 124 29 28 25 27 + 125 125 30 28 25 27 + 126 126 107 28 25 27 + 127 127 31 30 28 29 + 128 128 107 28 30 31 + 129 129 35 34 31 32 + 130 130 36 34 31 32 + 131 131 37 34 31 32 + 132 132 35 34 31 33 + 133 133 36 34 31 33 + 134 134 37 34 31 33 + 135 135 38 37 34 35 + 136 136 39 37 34 35 + 137 137 40 37 34 35 + 138 138 38 37 34 36 + 139 139 39 37 34 36 + 140 140 40 37 34 36 + 141 141 41 40 37 38 + 142 142 41 40 37 39 + 143 143 45 44 41 42 + 144 144 46 44 41 42 + 145 145 47 44 41 42 + 146 146 45 44 41 43 + 147 147 46 44 41 43 + 148 148 47 44 41 43 + 149 149 108 48 49 50 + 150 150 109 48 49 50 + 151 151 54 53 50 51 + 152 152 55 53 50 51 + 153 153 110 53 50 51 + 154 154 54 53 50 52 + 155 155 55 53 50 52 + 156 156 110 53 50 52 + 157 157 56 55 53 54 + 158 158 110 53 55 56 + 159 159 60 59 56 57 + 160 160 61 59 56 57 + 161 161 62 59 56 57 + 162 162 60 59 56 58 + 163 163 61 59 56 58 + 164 164 62 59 56 58 + 165 165 63 62 59 60 + 166 166 64 62 59 60 + 167 167 65 62 59 60 + 168 168 63 62 59 61 + 169 169 64 62 59 61 + 170 170 65 62 59 61 + 171 171 66 65 62 63 + 172 172 66 65 62 64 + 173 173 70 69 66 67 + 174 174 71 69 66 67 + 175 175 72 69 66 67 + 176 176 70 69 66 68 + 177 177 71 69 66 68 + 178 178 72 69 66 68 + 179 179 108 48 22 73 + 180 180 109 48 22 73 + 181 181 105 23 22 73 + 182 182 106 23 22 73 + 183 183 20 21 22 73 + 184 184 103 21 22 73 + 185 185 104 21 22 73 + 186 186 21 22 73 74 + 187 187 111 73 74 75 + 188 188 112 73 74 75 + 189 189 79 78 75 76 + 190 190 80 78 75 76 + 191 191 113 78 75 76 + 192 192 79 78 75 77 + 193 193 80 78 75 77 + 194 194 113 78 75 77 + 195 195 81 80 78 79 + 196 196 113 78 80 81 + 197 197 85 84 81 82 + 198 198 86 84 81 82 + 199 199 87 84 81 82 + 200 200 85 84 81 83 + 201 201 86 84 81 83 + 202 202 87 84 81 83 + 203 203 88 87 84 85 + 204 204 89 87 84 85 + 205 205 90 87 84 85 + 206 206 88 87 84 86 + 207 207 89 87 84 86 + 208 208 90 87 84 86 + 209 209 91 90 87 88 + 210 210 91 90 87 89 + 211 211 95 94 91 92 + 212 212 96 94 91 92 + 213 213 97 94 91 92 + 214 214 95 94 91 93 + 215 215 96 94 91 93 + 216 216 97 94 91 93 + 217 217 108 48 22 21 + 218 218 109 48 22 21 + 219 219 105 23 22 21 + 220 220 106 23 22 21 + 221 221 111 73 22 21 + 222 222 112 73 22 21 + 223 223 103 21 20 17 + 224 224 104 21 20 17 + 225 225 16 15 17 18 + 226 226 14 15 17 18 + 227 227 102 15 17 18 + 228 228 16 15 17 19 + 229 229 14 15 17 19 + 230 230 102 15 17 19 + 231 231 11 14 15 16 + 232 232 102 15 14 11 + 233 233 9 8 11 12 + 234 234 10 8 11 12 + 235 235 5 8 11 12 + 236 236 9 8 11 13 + 237 237 10 8 11 13 + 238 238 5 8 11 13 + 239 239 6 5 8 9 + 240 240 7 5 8 9 + 241 241 4 5 8 9 + 242 242 6 5 8 10 + 243 243 7 5 8 10 + 244 244 4 5 8 10 + 245 245 2 4 5 6 + 246 246 2 4 5 7 + 247 247 99 98 2 3 + 248 248 100 98 2 3 + 249 249 101 98 2 3 + 250 250 1 2 98 99 + 251 251 1 2 98 100 + 252 252 1 2 98 101 + + diff --git a/data/pdb_files/geometry_file_TETRAORION.pdb b/data/pdb_files/geometry_file_TETRAORION.pdb new file mode 100644 index 0000000..80d61ed --- /dev/null +++ b/data/pdb_files/geometry_file_TETRAORION.pdb @@ -0,0 +1,338 @@ +HETATM 1 O1 UNL 1 -3.313 -4.558 -10.058 1.00 0.00 O +HETATM 2 S1 UNL 1 -3.071 -4.332 -8.598 1.00 0.00 S +HETATM 3 O2 UNL 1 -1.627 -3.916 -8.409 1.00 0.00 O +HETATM 4 N1 UNL 1 -4.076 -3.120 -7.936 1.00 0.00 N +HETATM 5 S2 UNL 1 -3.470 -2.526 -6.435 1.00 0.00 S +HETATM 6 O3 UNL 1 -4.358 -2.808 -5.278 1.00 0.00 O +HETATM 7 O4 UNL 1 -2.151 -3.236 -6.171 1.00 0.00 O +HETATM 8 C1 UNL 1 -3.112 -0.784 -6.587 1.00 0.00 C +HETATM 9 F1 UNL 1 -2.164 -0.646 -7.577 1.00 0.00 F +HETATM 10 F2 UNL 1 -4.233 -0.086 -7.004 1.00 0.00 F +HETATM 11 C2 UNL 1 -2.623 -0.209 -5.295 1.00 0.00 C +HETATM 12 F3 UNL 1 -1.478 -0.800 -4.807 1.00 0.00 F +HETATM 13 F4 UNL 1 -2.217 1.123 -5.598 1.00 0.00 F +HETATM 14 O5 UNL 1 -3.627 -0.049 -4.347 1.00 0.00 O +HETATM 15 C3 UNL 1 -3.025 0.422 -3.155 1.00 0.00 C +HETATM 16 F5 UNL 1 -3.487 1.724 -2.922 1.00 0.00 F +HETATM 17 C4 UNL 1 -3.431 -0.483 -2.002 1.00 0.00 C +HETATM 18 F6 UNL 1 -4.877 -0.328 -2.004 1.00 0.00 F +HETATM 19 F7 UNL 1 -3.342 -1.837 -2.576 1.00 0.00 F +HETATM 20 S3 UNL 1 -2.825 -0.355 -0.498 1.00 0.00 S +HETATM 21 C5 UNL 1 -1.797 -0.445 0.752 1.00 0.00 C +HETATM 22 C6 UNL 1 -0.449 0.276 0.961 1.00 0.00 C +HETATM 23 C7 UNL 1 0.076 -0.120 2.349 1.00 0.00 C +HETATM 24 S4 UNL 1 0.398 -1.731 2.811 1.00 0.00 S +HETATM 25 C8 UNL 1 -0.717 -3.040 2.963 1.00 0.00 C +HETATM 26 F8 UNL 1 -1.971 -2.676 3.518 1.00 0.00 F +HETATM 27 F9 UNL 1 -0.925 -3.778 1.857 1.00 0.00 F +HETATM 28 C9 UNL 1 -0.254 -4.085 4.030 1.00 0.00 C +HETATM 29 F10 UNL 1 -0.163 -3.461 5.258 1.00 0.00 F +HETATM 30 O6 UNL 1 0.902 -4.735 3.685 1.00 0.00 O +HETATM 31 C10 UNL 1 0.725 -6.102 3.494 1.00 0.00 C +HETATM 32 F11 UNL 1 -0.073 -6.421 2.442 1.00 0.00 F +HETATM 33 F12 UNL 1 0.076 -6.507 4.707 1.00 0.00 F +HETATM 34 C11 UNL 1 2.048 -6.801 3.552 1.00 0.00 C +HETATM 35 F13 UNL 1 1.905 -8.178 3.358 1.00 0.00 F +HETATM 36 F14 UNL 1 2.585 -6.711 4.852 1.00 0.00 F +HETATM 37 S5 UNL 1 3.246 -6.203 2.407 1.00 0.00 S +HETATM 38 O7 UNL 1 2.827 -6.311 0.988 1.00 0.00 O +HETATM 39 O8 UNL 1 3.541 -4.744 2.729 1.00 0.00 O +HETATM 40 N2 UNL 1 4.742 -7.095 2.575 1.00 0.00 N +HETATM 41 S6 UNL 1 6.109 -6.159 2.145 1.00 0.00 S +HETATM 42 O9 UNL 1 5.764 -4.808 1.589 1.00 0.00 O +HETATM 43 O10 UNL 1 6.993 -5.926 3.353 1.00 0.00 O +HETATM 44 C12 UNL 1 7.020 -7.036 0.868 1.00 0.00 C +HETATM 45 F15 UNL 1 7.428 -8.272 1.343 1.00 0.00 F +HETATM 46 F16 UNL 1 6.210 -7.130 -0.232 1.00 0.00 F +HETATM 47 F17 UNL 1 8.091 -6.226 0.549 1.00 0.00 F +HETATM 48 C13 UNL 1 0.540 -0.155 -0.059 1.00 0.00 C +HETATM 49 S7 UNL 1 0.276 0.187 -1.755 1.00 0.00 S +HETATM 50 C14 UNL 1 0.704 1.807 -2.360 1.00 0.00 C +HETATM 51 F18 UNL 1 0.069 2.882 -1.868 1.00 0.00 F +HETATM 52 F19 UNL 1 0.154 1.794 -3.742 1.00 0.00 F +HETATM 53 C15 UNL 1 2.129 2.046 -2.635 1.00 0.00 C +HETATM 54 F20 UNL 1 2.292 3.404 -2.986 1.00 0.00 F +HETATM 55 O11 UNL 1 3.097 1.706 -1.721 1.00 0.00 O +HETATM 56 C16 UNL 1 4.104 1.062 -2.488 1.00 0.00 C +HETATM 57 F21 UNL 1 3.471 -0.029 -3.156 1.00 0.00 F +HETATM 58 F22 UNL 1 4.570 1.874 -3.498 1.00 0.00 F +HETATM 59 C17 UNL 1 5.237 0.473 -1.757 1.00 0.00 C +HETATM 60 F23 UNL 1 6.102 -0.018 -2.802 1.00 0.00 F +HETATM 61 F24 UNL 1 5.941 1.347 -1.015 1.00 0.00 F +HETATM 62 S8 UNL 1 4.852 -1.061 -0.907 1.00 0.00 S +HETATM 63 O12 UNL 1 3.966 -0.912 0.244 1.00 0.00 O +HETATM 64 O13 UNL 1 6.205 -1.559 -0.396 1.00 0.00 O +HETATM 65 N3 UNL 1 4.351 -2.188 -2.099 1.00 0.00 N +HETATM 66 S9 UNL 1 3.095 -3.235 -1.627 1.00 0.00 S +HETATM 67 O14 UNL 1 2.921 -3.384 -0.156 1.00 0.00 O +HETATM 68 O15 UNL 1 1.805 -2.680 -2.185 1.00 0.00 O +HETATM 69 C18 UNL 1 3.270 -4.854 -2.364 1.00 0.00 C +HETATM 70 F25 UNL 1 4.472 -5.372 -1.950 1.00 0.00 F +HETATM 71 F26 UNL 1 3.223 -4.729 -3.754 1.00 0.00 F +HETATM 72 F27 UNL 1 2.253 -5.662 -1.903 1.00 0.00 F +HETATM 73 C19 UNL 1 -0.775 1.738 0.914 1.00 0.00 C +HETATM 74 S10 UNL 1 0.484 2.882 1.169 1.00 0.00 S +HETATM 75 C20 UNL 1 1.136 3.317 2.726 1.00 0.00 C +HETATM 76 F28 UNL 1 1.899 2.372 3.329 1.00 0.00 F +HETATM 77 F29 UNL 1 0.037 3.575 3.586 1.00 0.00 F +HETATM 78 C21 UNL 1 1.998 4.589 2.686 1.00 0.00 C +HETATM 79 F30 UNL 1 3.078 4.334 1.784 1.00 0.00 F +HETATM 80 O16 UNL 1 2.576 4.768 3.887 1.00 0.00 O +HETATM 81 C22 UNL 1 2.564 5.957 4.527 1.00 0.00 C +HETATM 82 F31 UNL 1 3.317 5.776 5.722 1.00 0.00 F +HETATM 83 F32 UNL 1 3.162 6.963 3.816 1.00 0.00 F +HETATM 84 C23 UNL 1 1.173 6.411 4.918 1.00 0.00 C +HETATM 85 F33 UNL 1 0.586 5.489 5.776 1.00 0.00 F +HETATM 86 F34 UNL 1 0.443 6.607 3.768 1.00 0.00 F +HETATM 87 S11 UNL 1 1.278 8.014 5.738 1.00 0.00 S +HETATM 88 O17 UNL 1 -0.111 8.447 6.039 1.00 0.00 O +HETATM 89 O18 UNL 1 2.117 7.904 6.982 1.00 0.00 O +HETATM 90 N4 UNL 1 1.986 9.095 4.596 1.00 0.00 N +HETATM 91 S12 UNL 1 0.752 9.861 3.681 1.00 0.00 S +HETATM 92 O19 UNL 1 0.973 9.604 2.203 1.00 0.00 O +HETATM 93 O20 UNL 1 -0.578 9.346 4.125 1.00 0.00 O +HETATM 94 C24 UNL 1 0.892 11.624 3.950 1.00 0.00 C +HETATM 95 F35 UNL 1 -0.095 12.253 3.233 1.00 0.00 F +HETATM 96 F36 UNL 1 2.164 11.992 3.526 1.00 0.00 F +HETATM 97 F37 UNL 1 0.804 11.948 5.280 1.00 0.00 F +HETATM 98 C25 UNL 1 -3.323 -5.876 -7.719 1.00 0.00 C +HETATM 99 F38 UNL 1 -2.537 -6.887 -8.210 1.00 0.00 F +HETATM 100 F39 UNL 1 -4.634 -6.248 -7.914 1.00 0.00 F +HETATM 101 F40 UNL 1 -3.011 -5.710 -6.379 1.00 0.00 F +HETATM 102 H1 UNL 1 -1.988 0.454 -3.316 1.00 0.00 H +HETATM 103 H2 UNL 1 -2.370 -0.161 1.779 1.00 0.00 H +HETATM 104 H3 UNL 1 -1.556 -1.547 1.122 1.00 0.00 H +HETATM 105 H4 UNL 1 -0.481 0.544 3.054 1.00 0.00 H +HETATM 106 H5 UNL 1 1.118 0.416 2.334 1.00 0.00 H +HETATM 107 H6 UNL 1 -1.078 -4.805 4.084 1.00 0.00 H +HETATM 108 H7 UNL 1 0.613 -1.297 0.061 1.00 0.00 H +HETATM 109 H8 UNL 1 1.584 0.201 0.262 1.00 0.00 H +HETATM 110 H9 UNL 1 2.396 1.540 -3.655 1.00 0.00 H +HETATM 111 H10 UNL 1 -1.452 1.956 0.028 1.00 0.00 H +HETATM 112 H11 UNL 1 -1.529 1.843 1.817 1.00 0.00 H +HETATM 113 H12 UNL 1 1.464 5.402 2.208 1.00 0.00 H +CONECT 22 48 +CONECT 48 22 +CONECT 23 22 +CONECT 22 23 +CONECT 24 23 +CONECT 23 24 +CONECT 25 24 +CONECT 24 25 +CONECT 26 25 +CONECT 25 26 +CONECT 27 25 +CONECT 25 27 +CONECT 28 25 +CONECT 25 28 +CONECT 29 28 +CONECT 28 29 +CONECT 30 28 +CONECT 28 30 +CONECT 31 30 +CONECT 30 31 +CONECT 32 31 +CONECT 31 32 +CONECT 33 31 +CONECT 31 33 +CONECT 34 31 +CONECT 31 34 +CONECT 35 34 +CONECT 34 35 +CONECT 36 34 +CONECT 34 36 +CONECT 37 34 +CONECT 34 37 +CONECT 38 37 +CONECT 37 38 +CONECT 39 37 +CONECT 37 39 +CONECT 40 37 +CONECT 37 40 +CONECT 41 40 +CONECT 40 41 +CONECT 42 41 +CONECT 41 42 +CONECT 43 41 +CONECT 41 43 +CONECT 44 41 +CONECT 41 44 +CONECT 45 44 +CONECT 44 45 +CONECT 46 44 +CONECT 44 46 +CONECT 47 44 +CONECT 44 47 +CONECT 49 48 +CONECT 48 49 +CONECT 50 49 +CONECT 49 50 +CONECT 51 50 +CONECT 50 51 +CONECT 52 50 +CONECT 50 52 +CONECT 53 50 +CONECT 50 53 +CONECT 54 53 +CONECT 53 54 +CONECT 55 53 +CONECT 53 55 +CONECT 56 55 +CONECT 55 56 +CONECT 57 56 +CONECT 56 57 +CONECT 58 56 +CONECT 56 58 +CONECT 59 56 +CONECT 56 59 +CONECT 60 59 +CONECT 59 60 +CONECT 61 59 +CONECT 59 61 +CONECT 62 59 +CONECT 59 62 +CONECT 63 62 +CONECT 62 63 +CONECT 64 62 +CONECT 62 64 +CONECT 65 62 +CONECT 62 65 +CONECT 66 65 +CONECT 65 66 +CONECT 67 66 +CONECT 66 67 +CONECT 68 66 +CONECT 66 68 +CONECT 69 66 +CONECT 66 69 +CONECT 70 69 +CONECT 69 70 +CONECT 71 69 +CONECT 69 71 +CONECT 72 69 +CONECT 69 72 +CONECT 73 22 +CONECT 22 73 +CONECT 74 73 +CONECT 73 74 +CONECT 75 74 +CONECT 74 75 +CONECT 76 75 +CONECT 75 76 +CONECT 77 75 +CONECT 75 77 +CONECT 78 75 +CONECT 75 78 +CONECT 79 78 +CONECT 78 79 +CONECT 80 78 +CONECT 78 80 +CONECT 81 80 +CONECT 80 81 +CONECT 82 81 +CONECT 81 82 +CONECT 83 81 +CONECT 81 83 +CONECT 84 81 +CONECT 81 84 +CONECT 85 84 +CONECT 84 85 +CONECT 86 84 +CONECT 84 86 +CONECT 87 84 +CONECT 84 87 +CONECT 88 87 +CONECT 87 88 +CONECT 89 87 +CONECT 87 89 +CONECT 90 87 +CONECT 87 90 +CONECT 91 90 +CONECT 90 91 +CONECT 92 91 +CONECT 91 92 +CONECT 93 91 +CONECT 91 93 +CONECT 94 91 +CONECT 91 94 +CONECT 95 94 +CONECT 94 95 +CONECT 96 94 +CONECT 94 96 +CONECT 97 94 +CONECT 94 97 +CONECT 21 22 +CONECT 22 21 +CONECT 20 21 +CONECT 21 20 +CONECT 17 20 +CONECT 20 17 +CONECT 18 17 +CONECT 17 18 +CONECT 19 17 +CONECT 17 19 +CONECT 15 17 +CONECT 17 15 +CONECT 16 15 +CONECT 15 16 +CONECT 14 15 +CONECT 15 14 +CONECT 11 14 +CONECT 14 11 +CONECT 12 11 +CONECT 11 12 +CONECT 13 11 +CONECT 11 13 +CONECT 8 11 +CONECT 11 8 +CONECT 9 8 +CONECT 8 9 +CONECT 10 8 +CONECT 8 10 +CONECT 5 8 +CONECT 8 5 +CONECT 6 5 +CONECT 5 6 +CONECT 7 5 +CONECT 5 7 +CONECT 4 5 +CONECT 5 4 +CONECT 2 4 +CONECT 4 2 +CONECT 3 2 +CONECT 2 3 +CONECT 98 2 +CONECT 2 98 +CONECT 99 98 +CONECT 98 99 +CONECT 100 98 +CONECT 98 100 +CONECT 101 98 +CONECT 98 101 +CONECT 1 2 +CONECT 2 1 +CONECT 102 15 +CONECT 15 102 +CONECT 103 21 +CONECT 21 103 +CONECT 104 21 +CONECT 21 104 +CONECT 105 23 +CONECT 23 105 +CONECT 106 23 +CONECT 23 106 +CONECT 107 28 +CONECT 28 107 +CONECT 108 48 +CONECT 48 108 +CONECT 109 48 +CONECT 48 109 +CONECT 110 53 +CONECT 53 110 +CONECT 111 73 +CONECT 73 111 +CONECT 112 73 +CONECT 73 112 +CONECT 113 78 +CONECT 78 113 +END diff --git a/hitpoly/simulations/openmm_scripts.py b/hitpoly/simulations/openmm_scripts.py index 0aaf1e1..b2dee3d 100644 --- a/hitpoly/simulations/openmm_scripts.py +++ b/hitpoly/simulations/openmm_scripts.py @@ -1,5 +1,7 @@ from sys import stdout import os +from openmm.unit import kelvin +import numpy as np import time from rdkit import Chem from openmm.app import ( diff --git a/hitpoly/utils/building_utils.py b/hitpoly/utils/building_utils.py index c607eb7..a74cac0 100644 --- a/hitpoly/utils/building_utils.py +++ b/hitpoly/utils/building_utils.py @@ -79,7 +79,11 @@ def salt_string_to_values(hitpoly_path, salt_string, concentration): salt_data_paths = [ f"{hitpoly_path}/data/forcefield_files/lammps_Na_q100.data", ] - concentration = [concentration, concentration] + if anion == "TETRAORION": + anion_count = int(concentration/4) + concentration = [4*anion_count, anion_count] + else: + concentration = [concentration, concentration] elif cation == "Li": salt_smiles = ["[Li+]"] salt_paths = [ @@ -88,7 +92,11 @@ def salt_string_to_values(hitpoly_path, salt_string, concentration): salt_data_paths = [ f"{hitpoly_path}/data/forcefield_files/lammps_Li_q100.data", ] - concentration = [concentration, concentration] + if anion == "TETRAORION": + anion_count = int(concentration/4) + concentration = [anion_count*4, anion_count] + else: + concentration = [concentration, concentration] elif cation == "Zn": salt_smiles = ["[Zn++]"] salt_paths = [ @@ -97,7 +105,11 @@ def salt_string_to_values(hitpoly_path, salt_string, concentration): salt_data_paths = [ f"{hitpoly_path}/data/forcefield_files/lammps_Zn_q100.data", ] - concentration = [concentration, concentration*2] + if anion == "TETRAORION": + anion_count = int(concentration/2) + concentration = [2*anion_count, anion_count] + else: + concentration = [concentration, concentration*2] else: raise ValueError(f"Cation {cation} not supported") @@ -116,6 +128,11 @@ def salt_string_to_values(hitpoly_path, salt_string, concentration): salt_paths.append(f"{salt_path}/geometry_file_FSI.pdb") salt_data_paths.append(f"{hitpoly_path}/data/forcefield_files/lammps_FSI_q100.data") ani_name_rdf = "N,O" + elif anion == "TETRAORION": + salt_smiles.append("O=S(=O)([N-]S(=O)(=O)C(F)(F)C(F)(F)OC(F)C(F)(F)SCC(CSC(F)(F)C(F)OC(F)(F)C(F)(F)S(=O)(=O)[N-]S(=O)(=O)C(F)(F)F)(CSC(F)(F)C(F)OC(F)(F)C(F)(F)S(=O)(=O)[N-]S(=O)(=O)C(F)(F)F)CSC(F)(F)C(F)OC(F)(F)C(F)(F)S(=O)(=O)[N-]S(=O)(=O)C(F)(F)F)C(F)(F)F") + salt_paths.append(f"{salt_path}/geometry_file_TETRAORION.pdb") + salt_data_paths.append(f"{hitpoly_path}/data/forcefield_files/lammps_TETRAORION_q100.data") + ani_name_rdf = "O,N" elif anion == "BF4": salt_smiles.append("F[B-](F)(F)F") salt_paths.append(f"{salt_path}/geometry_file_BF4.pdb") diff --git a/hitpoly/writers/box_builder.py b/hitpoly/writers/box_builder.py index 2aebeb1..62d8260 100644 --- a/hitpoly/writers/box_builder.py +++ b/hitpoly/writers/box_builder.py @@ -283,33 +283,37 @@ def perlmutter_ligpargen(ligpargen_path, mol_filename, output_prefix): else: time.sleep(10) -def supercloud_ligpargen(ligpargen_path, resid_name): - with open(f"{ligpargen_path}/run.sh", "w") as f: - f.write("#!/bin/bash" + "\n") - f.write("#SBATCH --job-name=ligpargen" + "\n") - f.write("#SBATCH --partition=xeon-p8" + "\n") - f.write("#SBATCH --nodes=1" + "\n") - f.write("#SBATCH --ntasks-per-node=1" + "\n") - f.write("#SBATCH --cpus-per-task=1" + "\n") - f.write("#SBATCH --time=2:00:00" + "\n") - f.write("\n") - f.write("cwd=$(pwd)" + "\n") - f.write(f"cd {ligpargen_path}" + "\n") - f.write(f"export XDG_DATA_HOME=/state/partition1/user/$(id -un)" + "\n") - f.write(f"podman load -i $HOME/containers/ligpargen.tar" + "\n") - f.write(f"podman run --rm -w /app/RUN -v .:/app/RUN:Z -v .:/app/RUN:Z ligpargen:latest python ../LigParGen/Converter.py -m poly.mol -o 0 -c 0 -r {resid_name} -d . -l" + "\n") - f.write("cd $cwd" + "\n") - command = f"sbatch {ligpargen_path}/run.sh" - subprocess.run(command, shell=True) - t0 = time.time() - while True: - if os.path.exists("PLY.xml"): - time.sleep(2) - break - elif time.time() - t0 > 300: - break - else: - time.sleep(10) +def supercloud_ligpargen(ligpargen_path, resid_name, ligpargen_version="2.0"): + if ligpargen_version == "2.0": + with open(f"{ligpargen_path}/run.sh", "w") as f: + f.write("#!/bin/bash" + "\n") + f.write("#SBATCH --job-name=ligpargen" + "\n") + f.write("#SBATCH --partition=xeon-p8" + "\n") + f.write("#SBATCH --nodes=1" + "\n") + f.write("#SBATCH --ntasks-per-node=1" + "\n") + f.write("#SBATCH --cpus-per-task=1" + "\n") + f.write("#SBATCH --time=2:00:00" + "\n") + f.write("\n") + f.write("cwd=$(pwd)" + "\n") + f.write(f"cd {ligpargen_path}" + "\n") + f.write(f"export XDG_DATA_HOME=/state/partition1/user/$(id -un)" + "\n") + f.write(f"podman load -i $HOME/containers/ligpargen.tar" + "\n") + f.write(f"podman run --rm -w /app/RUN -v .:/app/RUN:Z -v .:/app/RUN:Z ligpargen:latest python ../LigParGen/Converter.py -m poly.mol -o 0 -c 0 -r {resid_name} -d . -l" + "\n") + f.write("cd $cwd" + "\n") + command = f"sbatch {ligpargen_path}/run.sh" + subprocess.run(command, shell=True) + t0 = time.time() + while True: + if os.path.exists("PLY.xml"): + time.sleep(2) + break + elif time.time() - t0 > 120: + break + else: + time.sleep(10) + elif ligpargen_version == "2.1": + raise NotImplementedError("LigParGen 2.1 is not implemented yet.") + def create_ligpargen_smiles( @@ -880,6 +884,7 @@ def assign_lpg_params( train_dataset, param_dict, lit_charges_save_path, + polynames, charges, ): for ind_dataset in range(len(param_dict)): @@ -910,7 +915,7 @@ def assign_lpg_params( charges_dict[key] = np.array(val).mean() elif charges == "LIT": charges_list = [] - with open(f"{lit_charges_save_path}/LIT_charges/PEO.csv", "r") as f: + with open(f"{lit_charges_save_path}/LIT_charges/{polynames[ind_dataset]}.csv", "r") as f: lines = f.readlines() try: for i, a in zip(lines, atoms_short[ind_dataset]): @@ -918,9 +923,12 @@ def assign_lpg_params( charges_list.append(float(i.split(",")[0])) except: # If the charges file starts with a description + print(lines[1:]) + print(atoms_short[ind_dataset]) for i, a in zip(lines[1:], atoms_short[ind_dataset]): if i.split(",")[1] == a: charges_list.append(float(i.split(",")[0])) + print(len(charges_list), len(atoms_short[ind_dataset])) assert len(charges_list) == len(atoms_short[ind_dataset]) df = pd.DataFrame({"charge": charges_list, "names": atom_names_short[ind_dataset]}) @@ -1313,10 +1321,10 @@ def creating_ff_and_resid_files(mol_dict, atom_types_list): for key in mol_dict.keys(): minuses = key.count("-") pluses = key.count("+") - if pluses - minuses == -1: + if pluses - minuses <= -1: name_iterables.append(f"AN{ani_ind}") ani_ind += 1 - elif pluses - minuses == 1: + elif pluses - minuses >= 1: name_iterables.append(f"CA{cat_ind}") cat_ind += 1 else: @@ -1933,6 +1941,7 @@ def create_box_and_ff_files_openmm( atom_names_long, param_dict, lit_charges_save_path, + polynames, charges, charge_scale, salt_smiles, @@ -1979,6 +1988,7 @@ def create_box_and_ff_files_openmm( train_dataset=train_dataset, param_dict=param_dict, lit_charges_save_path=lit_charges_save_path, + polynames=polynames, charges=charges, )