def solvate(molecule, file_format, residues_added, solvent, box_x, box_y, box_z): user = getuser() # FILE MUST BE A PDB if file_format.lower() != "pdb": mol = FileReader.ReadFile(f"{molecule}.{file_format}") mol.writePDBFile(f"{molecule}.pdb") with open('packmol.inp', 'w') as f: f.write(f"""tolerance 1.5 filetype pdb output packmol.pdb structure {molecule}.pdb number 1 fixed 0. 0. 0. 0. 0. 0. centerofmass end structure structure /home/{user}/zTeamVPScripts/solvents/{solvent}.pdb number {residues_added} inside box {round(box_x / -2.0)}. {round(box_y / -2.0)}. {round(box_z / -2.0)}. {round(box_x / 2.0)}. {round(box_y / 2.0)}. {round(box_z / 2.0)}. radius 1.5 end structure """) run() convertToMol2(molecule)
def run(substrates, carbon_locations_file="carbon_locations.txt", ATOM_NAME='C', use_old=False, run_multiple=False): if run_multiple: atom1, atom2, atom3 = getAtoms(carbon_locations_file) if use_old: atom1, atom2, atom3 = getContactAtom(atom1, ATOM_NAME, atom2, ATOM_NAME, atom3, ATOM_NAME) complex_file = FileReader.ReadFile('complex.mol2') catalyst_contact_list, substrate1_contact_list, substrate2_contact_list = getAtomIndex( complex_file, atom1, atom2, substrates) else: with open(carbon_locations_file, 'r') as f: catalyst_contact_list = [f.readline().strip().replace('\n', '')] substrate_contact_list = [f.readline().strip().replace('\n', '')] return catalyst_contact_list, substrate_contact_list, [] return catalyst_contact_list, substrate1_contact_list, substrate2_contact_list
if arg in ['-h', '--help']: usage() sys.exit() elif arg in ['-f', '--file']: carbon_locations_file = ARGS[i + 1] elif arg in ['-s', '--substrates']: substrates = int(ARGS[i + 1]) elif arg in ['-d']: ADD_ATOM_NAME = False atom1, atom2, atom3 = getAtoms(carbon_locations_file) if ADD_ATOM_NAME: atom1, atom2, atom3 = getContactAtom(atom1, ATOM_NAME, atom2, ATOM_NAME, atom3, ATOM_NAME) complex_file = FileReader.ReadFile('complex.mol2') catalyst_contact_list, substrate1_contact_list, substrate2_contact_list = getAtomIndex( complex_file, atom1, atom2, substrates) print() print(f"Catalyst Contact Points: {', '.join(catalyst_contact_list)}") print() print(f"Substrate 1 Contact Points: {', '.join(substrate1_contact_list)}") print() print(f"Substrate 2 Contact Points: {', '.join(substrate2_contact_list)}") print()
def convertToMol2(molecule): call(["obabel", "packmol.pdb", "pdb", "-o", "mol2", "-O", f'{molecule}_solvated.mol2']) mol = FileReader.ReadFile(f'{molecule}_solvated.mol2') mol.writeMol2File(f'{molecule}_solvated.mol2')