raw_mol = Chem.MolFromXYZFile('acetate.xyz')
mol = Chem.Mol(raw_mol)
rdDetermineBonds.DetermineBonds(mol,charge=-1)
بالنظر إلى الإحداثيات الديكارتية في شكل ملف .xyz
، يقوم الكود بإنشاء قائمة تضم واحدًا أو أكثر من الرسوم البيانية الجزيئية. في الحالات التي يكون فيها هناك العديد من أشكال الرنين المحتملة، يُرجع xyz2mol قائمة بجميع أشكال الرنين، وإلا فسيقوم فقط بإرجاع قائمة واحدة منها.
يعتمد هذا الرمز على عمل DOI: 10.1002/bkcs.10334
Yeonjoon Kim and Woo Youn Kim
"Universal Structure Conversion Method for Organic Molecules:
From Atomic Connectivity to Three-Dimensional Geometry"
Bull. Korean Chem. Soc.
2015, Vol. 36, 1769-1777
يعتمد على rdkit
و numpy
و networkx
. الأسهل في الإعداد عبر اناكوندا/كوندا:
conda install -c conda-forge xyz2mol
يتوفر الإعداد لبيئة مستقلة عبر Makefile
. للإعداد والاختبار، ما عليك سوى استنساخ المشروع وإنشاءه.
git clone https://github.com/jensengroup/xyz2mol
ثم قم بتشغيل المجلد xyz2mol
التالي
make
make test
لاحظ أنه من الممكن أيضًا تشغيل التعليمات البرمجية بدون تبعيات networkx
، ولكنها أبطأ.
اقرأ ملف xyz واطبع SMILES، ولكن لا تقم بترميز اللامركزية.
xyz2mol.py examples/chiral_stereo_test.xyz --ignore-chiral
اقرأ ملف xyz واطبع تنسيق SDF واحفظه في ملف
xyz2mol.py examples/chiral_stereo_test.xyz -o sdf > save_file.sdf
اقرأ ملف xyz مقابل رسوم واطبع SMILES
xyz2mol.py examples/acetate.xyz --charge -1
rdkit # (version 2019.9.1 or later needed for huckel option)
networkx