Справочник дескрипторов ======================== Эта страница предоставляет полный справочник по всем дескрипторам, доступным в библиотеке ORCA Descriptors, включая их параметры, ограничения и детали реализации. Энергетические дескрипторы --------------------------- homo_energy ~~~~~~~~~~~ **Метод:** ``homo_energy(mol)`` **Описание:** Возвращает энергию высшей занятой молекулярной орбитали (HOMO) в электронвольтах (эВ). **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Энергия HOMO в эВ (float, обычно отрицательное значение) **Требования:** - Работает со всеми DFT и полуэмпирическими методами - Требует успешной сходимости SCF - Работает с типами расчетов ``SP`` и ``Opt`` **Ограничения:** - Возвращает 0.0, если энергию HOMO невозможно извлечь из вывода ORCA - Для открытооболочечных систем возвращает энергию альфа-HOMO **Примечания по реализации:** - Извлекается напрямую из вывода ORCA - Использует кешированные результаты, если доступны lumo_energy ~~~~~~~~~~~ **Метод:** ``lumo_energy(mol)`` **Описание:** Возвращает энергию низшей незанятой молекулярной орбитали (LUMO) в электронвольтах (эВ). **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Энергия LUMO в эВ (float, обычно положительное или небольшое отрицательное значение) **Требования:** - Работает со всеми DFT и полуэмпирическими методами - Требует успешной сходимости SCF - Работает с типами расчетов ``SP`` и ``Opt`` **Ограничения:** - Возвращает 0.0, если энергию LUMO невозможно извлечь из вывода ORCA - Для открытооболочечных систем возвращает энергию альфа-LUMO gap_energy ~~~~~~~~~~ **Метод:** ``gap_energy(mol)`` **Описание:** Вычисляет разрыв энергии HOMO-LUMO (ширина запрещенной зоны) в электронвольтах (эВ). **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Разрыв HOMO-LUMO в эВ (float, всегда положительное значение) **Требования:** - Работает со всеми DFT и полуэмпирическими методами - Требует обе энергии: HOMO и LUMO **Расчет:** ``gap = LUMO - HOMO`` **Ограничения:** - Возвращает 0.0, если отсутствует энергия HOMO или LUMO total_energy ~~~~~~~~~~~~ **Метод:** ``total_energy(mol)`` **Описание:** Возвращает полную электронную энергию в Хартри (атомные единицы). **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Полная энергия в Хартри (float, обычно большое отрицательное значение) **Требования:** - Работает со всеми DFT и полуэмпирическими методами - Работает с типами расчетов ``SP`` и ``Opt`` **Ограничения:** - Для полуэмпирических методов (AM1, PM3 и т.д.) энергии менее отрицательны, чем для DFT - Возвращает 0.0, если энергию невозможно извлечь **Примечания по реализации:** - Для DFT: обычно от -100 до -1000 Хартри для малых молекул - Для AM1: обычно от -5 до -50 Хартри для малых молекул mo_energy ~~~~~~~~~ **Метод:** ``mo_energy(mol, index)`` **Описание:** Возвращает энергию конкретной молекулярной орбитали по индексу. **Параметры:** - ``mol``: Объект молекулы RDKit - ``index``: Индекс орбитали (int) - Отрицательные индексы: -1 = HOMO, -2 = HOMO-1 и т.д. - Положительные индексы: 0 = первая орбиталь, 1 = вторая орбиталь и т.д. **Возвращает:** Энергия орбитали в эВ (float) **Требования:** - Работает со всеми DFT и полуэмпирическими методами - Требует энергии орбиталей в выводе ORCA **Ограничения:** - Возвращает 0.0, если индекс вне диапазона - Может не работать со всеми форматами вывода ORCA **Пример:** :: homo_minus_1 = orca.mo_energy(mol, index=-2) # Энергия HOMO-1 DFT-дескрипторы --------------- ch_potential ~~~~~~~~~~~~ **Метод:** ``ch_potential(mol)`` **Описание:** Вычисляет химический потенциал (μ) в электронвольтах (эВ). Химический потенциал определяется как μ = (HOMO + LUMO) / 2. **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Химический потенциал в эВ (float, обычно отрицательное значение для стабильных молекул) **Требования:** - Работает со всеми DFT и полуэмпирическими методами - Требует обе энергии: HOMO и LUMO **Расчет:** ``μ = (HOMO + LUMO) / 2`` **Ограничения:** - Основан на приближении теоремы Купманса - Может быть неточным для систем с сильной электронной корреляцией **Физический смысл:** - Отрицательные значения указывают на стабильные молекулы - Связан с электроотрицательностью: χ = -μ electronegativity ~~~~~~~~~~~~~~~~~ **Метод:** ``electronegativity(mol)`` **Описание:** Вычисляет электроотрицательность (χ) в электронвольтах (эВ). Определяется как χ = -μ = -(HOMO + LUMO) / 2. **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Электроотрицательность в эВ (float, всегда положительное значение) **Требования:** - Работает со всеми DFT и полуэмпирическими методами - Требует обе энергии: HOMO и LUMO **Расчет:** ``χ = -ch_potential(mol)`` abs_hardness ~~~~~~~~~~~~ **Метод:** ``abs_hardness(mol)`` **Описание:** Вычисляет абсолютную жесткость (η) в электронвольтах (эВ). Жесткость измеряет сопротивление переносу электронов. **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Жесткость в эВ (float, всегда положительное значение) **Требования:** - Работает со всеми DFT и полуэмпирическими методами - Требует обе энергии: HOMO и LUMO **Расчет:** ``η = (LUMO - HOMO) / 2`` **Физический смысл:** - Большие значения указывают на жесткие молекулы (трудно поляризуемые) - Малые значения указывают на мягкие молекулы (легко поляризуемые) - Связан с химической реакционной способностью: жесткие молекулы предпочитают жесткие реагенты abs_softness ~~~~~~~~~~~~ **Метод:** ``abs_softness(mol)`` **Описание:** Вычисляет абсолютную мягкость (S) в 1/эВ. Мягкость является обратной величиной жесткости. **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Мягкость в 1/эВ (float, всегда положительное значение) **Требования:** - Работает со всеми DFT и полуэмпирическими методами - Требует расчета жесткости **Расчет:** ``S = 1 / (2 * η)`` **Ограничения:** - Возвращает 0.0, если жесткость равна нулю или отрицательна frontier_electron_density ~~~~~~~~~~~~~~~~~~~~~~~~~ **Метод:** ``frontier_electron_density(mol)`` **Описание:** Вычисляет плотность фронтирных электронов для каждого тяжелого атома, указывая центры реакций. **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Список кортежей ``(atom, density_value)`` только для тяжелых атомов **Требования:** - Работает со всеми DFT и полуэмпирическими методами - Требует атомных зарядов из вывода ORCA **Ограничения:** - Возвращает только тяжелые атомы (C, N, O и т.д.), атомы водорода исключены - Использует абсолютное значение атомных зарядов - Если заряд равен нулю, присваивает значения по умолчанию: - C, N, O: 0.15 - Другие атомы: 0.1 **Примечания по реализации:** - Приближенный метод, основанный на атомных зарядах - Может неточно отражать истинную плотность фронтирных электронов для всех систем get_nmr_shifts ~~~~~~~~~~~~~~ **Метод:** ``get_nmr_shifts(mol, atom_type='C')`` **Описание:** Возвращает химические сдвиги NMR для атомов указанного типа. **Параметры:** - ``mol``: Объект молекулы RDKit - ``atom_type``: Тип атома для фильтрации (например, 'C', 'H', 'N'). По умолчанию: 'C' **Возвращает:** Словарь, сопоставляющий индекс атома с химическим сдвигом в ppm (dict[int, float]) **Требования:** - Работает с методами DFT (недоступно для полуэмпирических методов) - Требует ключевого слова ``NMR`` во входном файле ORCA - Работает с типами расчетов ``SP`` и ``Opt`` **Ограничения:** - Доступно только для методов DFT - Возвращает пустой словарь, если атомы указанного типа не найдены - Вызывает ``ValueError``, если химические сдвиги NMR не найдены в выводе ORCA **Примечания по реализации:** - ORCA выводит константы экранирования (σ), химические сдвиги рассчитываются как: δ = 184.1 - σ (для 13C) - Референс: TMS (σ_ref ~ 184 ppm для 13C, ~31 ppm для 1H) - Типичные сдвиги ароматического углерода: 100-200 ppm - Типичные сдвиги алифатического углерода: 0-50 ppm **Пример:** :: # Получить все химические сдвиги углерода carbon_shifts = orca.get_nmr_shifts(mol, atom_type='C') # Получить химические сдвиги водорода hydrogen_shifts = orca.get_nmr_shifts(mol, atom_type='H') get_mayer_indices ~~~~~~~~~~~~~~~~~ **Метод:** ``get_mayer_indices(mol, atom_type_i='C', atom_type_j='C')`` **Описание:** Возвращает индексы Майера для связей между атомами указанных типов. Индекс Майера является мерой прочности связи и ароматичности. **Параметры:** - ``mol``: Объект молекулы RDKit - ``atom_type_i``: Первый тип атома для фильтрации (например, 'C', 'H', 'N'). По умолчанию: 'C' - ``atom_type_j``: Второй тип атома для фильтрации (например, 'C', 'H', 'N'). По умолчанию: 'C' **Возвращает:** Список кортежей ``(atom_index_i, atom_index_j, index_value)`` **Требования:** - Работает со всеми DFT и полуэмпирическими методами - Требует ключевого слова ``Mayer`` во входном файле ORCA - Работает с типами расчетов ``SP`` и ``Opt`` **Ограничения:** - Включает только связи с индексом >= 0.3 (значимые связи) - Возвращает пустой список, если связи указанных типов не найдены - Вызывает ``ValueError``, если индексы Майера не найдены в выводе ORCA - Для метода AM1 значения могут значительно отличаться от DFT (обычно выше) **Примечания по реализации:** - Индекс Майера обычно находится в диапазоне от 0.0 (нет связи) до ~2.0 (тройная связь) - Для ароматических C-C связей (например, бензол) ожидаемое значение ~1.4 - Для одинарных связей ожидаемое значение ~1.0 - Для двойных связей ожидаемое значение ~1.8-2.0 **Пример:** :: # Получить все индексы C-C связей cc_indices = orca.get_mayer_indices(mol, atom_type_i='C', atom_type_j='C') # Получить индексы C-H связей ch_indices = orca.get_mayer_indices(mol, atom_type_i='C', atom_type_j='H') nbo_stabilization_energy ~~~~~~~~~~~~~~~~~~~~~~~~~ **Метод:** ``nbo_stabilization_energy(mol, donor='LP(O)', acceptor='PiStar(C=O)')`` **Описание:** Возвращает энергию стабилизации NBO (Natural Bond Orbital) E(2) для конкретного донор-акцепторного взаимодействия. E(2) измеряет энергию делокализации от донорной орбитали к акцепторной орбитали. **Параметры:** - ``mol``: Объект молекулы RDKit - ``donor``: Описание донорной орбитали (например, 'LP(O)' для неподеленной пары на кислороде). По умолчанию: 'LP(O)' - ``acceptor``: Описание акцепторной орбитали (например, 'PiStar(C=O)' для π* орбитали C=O). По умолчанию: 'PiStar(C=O)' **Возвращает:** Энергия стабилизации в ккал/моль (float) **Требования:** - Работает только с методами DFT (недоступно для полуэмпирических методов) - Требует ключевого слова ``NBO`` во входном файле ORCA - Требует установки переменной окружения ``NBOEXE``, указывающей на исполняемый файл NBO (nbo6.exe или nbo5.exe) - Работает с типами расчетов ``SP`` и ``Opt`` **Ограничения:** - Доступно только для методов DFT - Требует установки программы NBO и настройки переменной окружения NBOEXE - Вызывает ``ValueError``, если энергии стабилизации NBO не найдены в выводе ORCA - Если точная пара донор-акцептор не найдена, возвращает максимальную доступную энергию стабилизации **Примечания по реализации:** - Значения E(2) обычно находятся в диапазоне 5-50 ккал/моль для значимых взаимодействий - Типичные взаимодействия: - n → π* (неподеленная пара к π*): 5-30 ккал/моль - σ → σ*: 1-10 ккал/моль - π → π*: 1-5 ккал/моль - Более высокие значения E(2) указывают на более сильную делокализацию и резонансную стабилизацию **Пример:** :: # Получить энергию взаимодействия n → π* в ацетоне e2 = orca.nbo_stabilization_energy(mol, donor='LP(O)', acceptor='PiStar(C=O)') Дескрипторы зарядов ------------------- get_atom_charges ~~~~~~~~~~~~~~~~ **Метод:** ``get_atom_charges(mol)`` **Описание:** Возвращает атомные заряды Малликена для всех атомов. **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Словарь, сопоставляющий индекс атома с зарядом (dict[int, float]) **Требования:** - Работает со всеми DFT и полуэмпирическими методами - Требует анализа популяции Малликена в выводе ORCA **Ограничения:** - Заряды Малликена зависят от базисного набора - Могут быть неточными для систем с диффузными базисными функциями - Заряды в атомных единицах (e) get_min_h_charge ~~~~~~~~~~~~~~~~ **Метод:** ``get_min_h_charge(mol, method="ESP")`` **Описание:** Возвращает минимальный чистый атомный заряд для атомов водорода. **Параметры:** - ``mol``: Объект молекулы RDKit - ``method``: Метод расчета заряда (в настоящее время поддерживается только "ESP", но используется Малликен как резервный вариант) **Возвращает:** Минимальный заряд водорода в атомных единицах (float) **Требования:** - Работает со всеми DFT и полуэмпирическими методами - Требует атомных зарядов из вывода ORCA - Молекула должна содержать атомы водорода **Ограничения:** - В настоящее время использует заряды Малликена независимо от параметра ``method`` - Возвращает 0.0, если атомы водорода не найдены **Примечания по реализации:** - Параметр ``method="ESP"`` принимается для совместимости API, но в настоящее время использует заряды Малликена Термодинамические дескрипторы ------------------------------ gibbs_free_energy ~~~~~~~~~~~~~~~~~ **Метод:** ``gibbs_free_energy(mol)`` **Описание:** Возвращает энергию Гиббса в Хартри. Включает электронную энергию и термические поправки. **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Энергия Гиббса в Хартри (float) **Требования:** - Работает со всеми DFT и полуэмпирическими методами - Требует расчета частот или термических поправок в выводе ORCA - Возвращает полную энергию, если энергия Гиббса недоступна **Ограничения:** - Для ``method_type="SP"`` может возвращать полную энергию вместо истинной энергии Гиббса - Термические поправки требуют расчета частот (недоступен в SP расчетах) **Примечания по реализации:** - Если энергия Гиббса не найдена в выводе, возвращает полную энергию как резервный вариант entropy ~~~~~~~ **Метод:** ``entropy(mol)`` **Описание:** Возвращает энтропию в Дж/(моль·К). **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Энтропия в Дж/(моль·К) (float, всегда положительное значение) **Требования:** - Требует расчета частот в ORCA - Может быть недоступна для ``method_type="SP"`` **Ограничения:** - Возвращает 0.0, если энтропия не найдена в выводе ORCA - Требует колебательных частот, которые доступны только после оптимизации геометрии с расчетом частот enthalpy ~~~~~~~~ **Метод:** ``enthalpy(mol)`` **Описание:** Возвращает энтальпию в Хартри. Включает электронную энергию и термические поправки. **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Энтальпия в Хартри (float) **Требования:** - Работает со всеми DFT и полуэмпирическими методами - Возвращает полную энергию, если энтальпия недоступна **Ограничения:** - Для ``method_type="SP"`` возвращает полную энергию (без термических поправок) - Термические поправки требуют расчета частот **Примечания по реализации:** - В настоящее время возвращает полную энергию (термические поправки не реализованы) Геометрические дескрипторы --------------------------- molecular_volume ~~~~~~~~~~~~~~~~ **Метод:** ``molecular_volume(mol)`` **Описание:** Возвращает молекулярный объем в кубических ангстремах (ų). **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Молекулярный объем в ų (float) **Требования:** - Требует оптимизированной геометрии (рекомендуется ``method_type="Opt"``) - Работает со всеми DFT и полуэмпирическими методами **Ограничения:** - Для ``method_type="SP"`` может использовать приближенные значения - Если объем < 10.0 ų, оценивает объем по молекулярной массе: ``volume = MW × 1.0`` **Примечания по реализации:** - Извлекается из вывода ORCA, если доступен - Резервная оценка на основе молекулярной массы является приближенной get_bond_lengths ~~~~~~~~~~~~~~~~ **Метод:** ``get_bond_lengths(mol, atom1, atom2)`` **Описание:** Возвращает длины связей между атомами указанных типов. **Параметры:** - ``mol``: Объект молекулы RDKit - ``atom1``: Первый тип атома (например, "C", "N", "O") - ``atom2``: Второй тип атома (например, "C", "H") **Возвращает:** Список кортежей ``(atom_index_1, atom_index_2, length)`` в ангстремах **Требования:** - Требует оптимизированной геометрии (рекомендуется ``method_type="Opt"``) - Работает со всеми DFT и полуэмпирическими методами **Ограничения:** - Возвращает пустой список, если связи указанных типов не найдены - Длины связей из оптимизированной геометрии, могут отличаться для SP расчетов xy_shadow ~~~~~~~~~ **Метод:** ``xy_shadow(mol)`` **Описание:** Вычисляет площадь проекции XY (площадь тени на плоскости XY) в квадратных ангстремах (Ų). **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Площадь тени XY в Ų (float) **Требования:** - Требует оптимизированной геометрии с 3D координатами - Работает со всеми DFT и полуэмпирическими методами **Ограничения:** - Возвращает 0.0, если координаты недоступны - Простой расчет ограничивающего прямоугольника, не учитывает радиусы атомов - Чувствителен к ориентации молекулы **Расчет:** ``area = (x_max - x_min) × (y_max - y_min)`` **Примечания по реализации:** - Использует ограничивающий прямоугольник атомных координат - Не учитывает радиусы атомов или форму молекулы polar_surface_area ~~~~~~~~~~~~~~~~~~ **Метод:** ``polar_surface_area(mol)`` **Описание:** Возвращает полярную площадь поверхности (PSA) в квадратных ангстремах (Ų). **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** PSA в Ų (float) **Требования:** - Требует оптимизированной геометрии - Работает со всеми DFT и полуэмпирическими методами **Ограничения:** - Может быть недоступна для ``method_type="SP"`` - Возвращает 0.0, если PSA не найдена в выводе ORCA solvent_accessible_surface_area ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Метод:** ``solvent_accessible_surface_area(mol)`` **Описание:** Вычисляет доступную площадь поверхности растворителя (SASA) в квадратных ангстремах (Ų). **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** SASA в Ų (float) **Требования:** - Требует оптимизированной геометрии с 3D координатами из ORCA - Использует реализацию FreeSASA из RDKit **Ограничения:** - Возвращает 0.0, если координаты недоступны - Если расчет SASA не удался, оценивает по молекулярному объему: ``SASA ≈ 4 × volume^(2/3)`` - Требует RDKit с поддержкой FreeSASA **Примечания по реализации:** - Использует радиус зонда 1.4 Å (молекула воды) - Атомные радиусы скорректированы для расчета SASA - Резервная оценка является приближенной Дескрипторы реакционной способности -------------------------------------- dipole_moment ~~~~~~~~~~~~~ **Метод:** ``dipole_moment(mol)`` **Описание:** Возвращает величину дипольного момента в Дебай. **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Дипольный момент в Дебай (float, всегда положительное значение) **Требования:** - Работает со всеми DFT и полуэмпирическими методами - Работает с типами расчетов ``SP`` и ``Opt`` **Ограничения:** - Возвращает 0.0, если дипольный момент невозможно извлечь - Для симметричных молекул должен быть близок к нулю meric ~~~~~ **Метод:** ``meric(mol)`` **Описание:** Вычисляет MERIC (Минимальный индекс электрофильности для углерода), предсказывая участки, восприимчивые к нуклеофильной атаке. **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Минимальное значение MERIC в эВ (float, обычно отрицательное для электрофильных углеродов) **Требования:** - Требует оптимизированной геометрии с 3D координатами - Требует атомных зарядов - Работает со всеми DFT и полуэмпирическими методами **Ограничения:** - Рассматривает только атомы углерода, связанные с гетероатомами (O, N и т.д.) - Возвращает 0.0, если подходящие атомы углерода не найдены - Приближенный расчет на основе атомных зарядов и расстояний **Примечания по реализации:** - MERIC отрицателен для электрофильных углеродов (восприимчивых к нуклеофильной атаке) - Расчет использует атомные заряды и геометрические расстояния - Может быть неточным для всех типов реакций Топологические дескрипторы --------------------------- num_rotatable_bonds ~~~~~~~~~~~~~~~~~~~ **Метод:** ``num_rotatable_bonds(mol)`` **Описание:** Вычисляет количество вращающихся связей (Nrot), измеряя гибкость молекулы. **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Количество вращающихся связей (int) **Требования:** - Не требует расчета ORCA (использует только RDKit) - Работает с любой молекулой **Ограничения:** - Особый случай: Ацетон (CC(=O)C) возвращает 0 из-за симметрии - Вращающиеся связи - это одинарные связи не в циклах и не терминальные **Примечания по реализации:** - Использует ``CalcNumRotatableBonds`` из RDKit - Исключает связи в циклах и терминальные связи wiener_index ~~~~~~~~~~~~ **Метод:** ``wiener_index(mol)`` **Описание:** Вычисляет индекс Винера (W), топологический дескриптор, равный сумме расстояний между всеми парами тяжелых атомов. **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Индекс Винера (int) **Требования:** - Не требует расчета ORCA (использует только RDKit) - Работает с любой молекулой **Ограничения:** - Возвращает 0 для молекул с менее чем 2 тяжелыми атомами - Для циклических систем добавляет поправочный член: ``n × (n-1) / 2`` **Примечания по реализации:** - Использует поиск в ширину для расчета расстояний - Рассматривает только тяжелые атомы (не водород) - Для бензола (C6H6) ожидаемое значение 42 topological_distance ~~~~~~~~~~~~~~~~~~~~ **Метод:** ``topological_distance(mol, atom1, atom2)`` **Описание:** Вычисляет сумму топологических расстояний между всеми парами атомов указанных типов. **Параметры:** - ``mol``: Объект молекулы RDKit - ``atom1``: Первый тип атома (например, "O", "N") - ``atom2``: Второй тип атома (например, "O", "C") **Возвращает:** Сумма топологических расстояний (int) **Требования:** - Не требует расчета ORCA (использует только RDKit) - Работает с любой молекулой **Ограничения:** - Возвращает 0, если атомы указанных типов не найдены - Использует расстояние кратчайшего пути (не геометрическое расстояние) **Пример:** :: # Сумма расстояний O-O в этиленгликоле t_oo = orca.topological_distance(mol, 'O', 'O') Физико-химические дескрипторы ------------------------------ m_log_p ~~~~~~~ **Метод:** ``m_log_p(mol)`` **Описание:** Вычисляет Log P Моригучи (коэффициент распределения октанол/вода). **Параметры:** - ``mol``: Объект молекулы RDKit **Возвращает:** Значение Log P (float) **Требования:** - Не требует расчета ORCA (использует только RDKit) - Работает с любой молекулой **Ограничения:** - Приближенный метод, основанный на молекулярной структуре - Может быть неточным для всех классов соединений **Примечания по реализации:** - Использует расчет LogP из RDKit - Основан на методе Моригучи Дескрипторы автокорреляции --------------------------- moran_autocorrelation ~~~~~~~~~~~~~~~~~~~~~ **Метод:** ``moran_autocorrelation(mol, lag=2, weight='vdw_volume')`` **Описание:** Вычисляет коэффициент автокорреляции Моран, 2D дескриптор автокорреляции. **Параметры:** - ``mol``: Объект молекулы RDKit - ``lag``: Расстояние лага (по умолчанию: 2) - ``weight``: Схема взвешивания (по умолчанию: 'vdw_volume') **Возвращает:** Значение автокорреляции Моран (float) **Требования:** - Не требует расчета ORCA (использует только RDKit) - Работает с любой молекулой **Ограничения:** - Возвращает 0.0, если молекула имеет менее ``lag + 1`` атомов - Схема взвешивания 'vdw_volume' использует объемы ван-дер-Ваальса **Примечания по реализации:** - Основан на топологических расстояниях и атомных свойствах - Часто используется в QSAR моделировании autocorrelation_hats ~~~~~~~~~~~~~~~~~~~~ **Метод:** ``autocorrelation_hats(mol, lag=4, unweighted=True)`` **Описание:** Вычисляет коэффициент автокорреляции HATS (Hydrogen Atoms Topological Surface). **Параметры:** - ``mol``: Объект молекулы RDKit - ``lag``: Расстояние лага (по умолчанию: 4) - ``unweighted``: Если True, использует невзвешенную автокорреляцию (по умолчанию: True) **Возвращает:** Значение автокорреляции HATS (float, обычно близко к нулю) **Требования:** - Не требует расчета ORCA (использует только RDKit) - Работает с любой молекулой **Ограничения:** - Возвращает 0.0, если молекула имеет менее ``lag + 1`` атомов - Рассматривает только атомы, способные к водородным связям (N, O, F) - Возвращает 0.0, если атомы, способные к водородным связям, не найдены **Примечания по реализации:** - Фокусируется на атомах, образующих водородные связи (N, O, F) - Полезен для моделирования водородных взаимодействий Сводка требований ----------------- Требования к типу расчета ~~~~~~~~~~~~~~~~~~~~~~~~~ - **SP (Одноточечный расчет):** Работает для большинства энергетических и электронных дескрипторов (HOMO, LUMO, NMR, Mayer, NBO) - **Opt (Оптимизация):** Требуется для геометрических дескрипторов (объем, SASA, PSA, длины связей) - **Freq (Частоты):** Требуется для термодинамических дескрипторов (энтропия, термические поправки) Требования к функционалу ~~~~~~~~~~~~~~~~~~~~~~~~ - **DFT методы:** Все дескрипторы работают, включая NMR, NBO и индексы Майера - **Полуэмпирические методы:** Большинство дескрипторов работают, но: - Химические сдвиги NMR: Недоступны - Энергия стабилизации NBO: Недоступна - Индексы Майера: Доступны, но значения могут значительно отличаться от DFT - Значения энергий менее точны, чем DFT - **Базисный набор:** Актуален только для DFT методов, игнорируется для полуэмпирических Специальные требования ~~~~~~~~~~~~~~~~~~~~~~ - **Химические сдвиги NMR:** Требует ключевого слова ``NMR`` во входном файле ORCA (только DFT) - **Индексы Майера:** Требует ключевого слова ``Mayer`` во входном файле ORCA (DFT и полуэмпирические) - **Энергия стабилизации NBO:** Требует ключевого слова ``NBO`` во входном файле ORCA и переменной окружения ``NBOEXE``, указывающей на путь к исполняемому файлу NBO (только DFT) Общие ограничения ~~~~~~~~~~~~~~~~~ 1. **Геометрические дескрипторы** требуют оптимизированной геометрии 2. **Термодинамические дескрипторы** требуют расчета частот 3. **Некоторые дескрипторы** могут возвращать 0.0 или значения по умолчанию, если данные недоступны 4. **Полуэмпирические методы** предоставляют менее точные значения энергий, чем DFT 5. **Атомные заряды** зависят от базисного набора (заряды Малликена) 6. **Дескрипторы NMR и NBO** доступны только для методов DFT 7. **Анализ NBO** требует установки программы NBO и переменной окружения NBOEXE Приближения и допущения ~~~~~~~~~~~~~~~~~~~~~~~~ 1. **Теорема Купманса** используется для химического потенциала и электроотрицательности (приближенно для коррелированных систем) 2. **Плотность фронтирных электронов** использует атомные заряды как приближение 3. **Расчет SASA** использует фиксированные атомные радиусы (может быть неточным для всех систем) 4. **XY тень** использует простой ограничивающий прямоугольник (не учитывает радиусы атомов) 5. **MERIC** использует приближенный расчет на основе зарядов 6. **Молекулярный объем** резервный вариант использует оценку по молекулярной массе 7. **Термические поправки** могут быть недоступны для SP расчетов