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
. Проще всего настроить через anaconda/conda:
conda install -c conda-forge xyz2mol
Настройка автономной среды доступна через Makefile
. Для настройки и тестирования просто клонируйте проект и создайте его.
git clone https://github.com/jensengroup/xyz2mol
а затем запустите следующую папку xyz2mol
make
make test
Обратите внимание: код также можно запустить без зависимостей networkx
, но это медленнее.
Считайте файл xyz и распечатайте УЛЫБКИ, но не кодируйте хиральность.
xyz2mol.py examples/chiral_stereo_test.xyz --ignore-chiral
Считайте файл xyz и распечатайте формат SDF, сохраните его в файле.
xyz2mol.py examples/chiral_stereo_test.xyz -o sdf > save_file.sdf
Считайте файл xyz с зарядом и распечатайте УЛЫБКИ.
xyz2mol.py examples/acetate.xyz --charge -1
rdkit # (version 2019.9.1 or later needed for huckel option)
networkx