Thank you so much for your help. I managed to convert most of the molecules from 2D to 3D, but no matter which ETKDG version, which embedding parameter I try, I cannot convert these two molecules; ZINC000101210593, ZINC000196058327. Is there an alternative feature or method I can try? I would be grateful if you could help me. Thank you!
He, Amy <he.1...@buckeyemail.osu.edu>, 11 Oca 2024 Per, 01:58 tarihinde şunu yazdı: > Hi Emre! > > > > You can get more detailed info on failed conformer generations through > *rdDistGeom.EmbedFailureCauses*, see: > > > https://greglandrum.github.io/rdkit-blog/posts/2023-05-17-understanding-confgen-errors.html > > > > Bests, > > > > > > -- > > Amy He > > Hadad Lab @ OSU > > he.1...@osu.edu > > > > *From: *Emre Apaydın <emreapaydin1...@gmail.com> > *Date: *Wednesday, January 10, 2024 at 8:47 AM > *To: *rdkit-discuss@lists.sourceforge.net < > rdkit-discuss@lists.sourceforge.net> > *Subject: *[Rdkit-discuss] Ligand conversion problem from 2D to 3D > > Hello, I want to convert the 2D ligands I downloaded as sdf format from > the ZINC library to 3D, but almost half of them are not converted to 3D. > Some of them are; ZINC000008214373, ZINC000001530666, ZINC000085545180. 208 > ligands are not converted > > Hello, > > > > I want to convert the 2D ligands I downloaded as sdf format from the ZINC > library to 3D, but almost half of them are not converted to 3D. Some of > them are; ZINC000008214373, ZINC000001530666, ZINC000085545180. 208 ligands > are not converted to 3D in this way. When I run the script, I do not get > any warning or error in IDE. When I look at the output of my Try, Except > commands, I see "ZINC000008214373.sdf : rdDistGeom.EmbedMolecule(mol, > etkdgv3) = Failed > ZINC000008214373.sdf : rdForceFieldHelpers.UFFOptimizeMolecule(mol) = > Failed" It outputs like this for ligands that are not translated to 3D. > When I try different methods, the ligands are converted to 3D. I wonder if > there is something missing or wrong with my script. I would be grateful if > you can help me. > > > > Thank you! > > > ``` > from rdkit import Chem > from rdkit.Chem import rdDistGeom > from rdkit.Chem import rdForceFieldHelpers > from rdkit.Chem import rdPartialCharges > import os > > ligands_dir = "ligands" > output_dir = "new_ligands" > status_file = "process_status.txt" > > if not os.path.exists(output_dir): > os.makedirs(output_dir) > > sdf_files = [f for f in os.listdir(ligands_dir) if f.endswith(".sdf")] > > with open(status_file, 'w') as status: > for sdf_file in sdf_files: > input_path = os.path.join(ligands_dir, sdf_file) > output_path = os.path.join(output_dir, sdf_file) > mol = Chem.MolFromMolFile(input_path) > > # Add hydrogens > try: > mol = Chem.AddHs(mol, addCoords=True) > except: > status.write(f"{sdf_file} : Chem.AddHs(mol) = Failed\\n") > continue > > # 3D embedding > etkdgv3 = rdDistGeom.ETKDGv3() > embed_status = rdDistGeom.EmbedMolecule(mol, etkdgv3) > if embed_status == -1: > status.write(f"{sdf_file} : rdDistGeom.EmbedMolecule(mol, > etkdgv3) = Failed\\n") > > # Compute Gasteiger charges > try: > rdPartialCharges.ComputeGasteigerCharges(mol) > except: > status.write(f"{sdf_file} : > rdPartialCharges.ComputeGasteigerCharges(mol) = Failed\\n") > > # UFF energy minimization > try: > rdForceFieldHelpers.UFFOptimizeMolecule(mol) > except: > status.write(f"{sdf_file} : > rdForceFieldHelpers.UFFOptimizeMolecule(mol) = Failed\\n") > > Chem.MolToMolFile(mol, output_path) > ``` >
_______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss