05
Силовые поля и внешние зависимости
Если OpenMM импортируется, но проект не стартует, причиной часто оказывается не библиотека, а научные входные данные. PDB- или mmCIF-файл может содержать неподдерживаемые записи, отсутствующие атомы, несогласованные имена остатков или топологию, которую выбранное силовое поле не умеет обработать.
Проверяйте компоненты по отдельности:
- входной PDB- или mmCIF-файл открывается и проходит подготовку;
- используемое силовое поле присутствует в ожидаемом каталоге;
- пути к файлам не зависят от текущей директории терминала;
- внешние программы, плагины и конвертеры вызываются из активной среды;
- версии NumPy и других библиотек не конфликтуют с кодом проекта;
- скрипт не использует локальный модуль с тем же именем, что и установленный пакет.
Сделайте минимальный репродуцируемый пример: один небольшой входной файл, один файл параметров, один скрипт запуска и один ожидаемый выходной файл. Не включайте в него весь лабораторный pipeline. Такой пример позволяет понять, где именно находится сбой — в OpenMM, Python-среде, модели или внешнем инструменте.
Руководство OpenMM о запуске симуляций используйте для сверки общей последовательности запуска, а не как доказательство совместимости каждого стороннего силового поля. Для отчётности сохраните:
python --version
python -c "import openmm; print(openmm.__version__)"
conda env export --no-builds > environment.yml
shasum -a 256 input.pdb script.py
Хэш входного файла не заменяет архивирование данных, но помогает заметить незаметную замену модели. Тот же принцип применяйте к параметрам, скриптам и файлам результата.
Как проверять воспроизводимость среды OpenMM на Mac?
Повторите одну и ту же минимальную задачу после нового запуска терминала, затем в чистом окружении, восстановленном из environment.yml. Сравнивайте не только факт завершения, но и структуру выходного файла, энергию, число шагов и диагностический журнал. Незначительные различия из-за вычислительной платформы не следует автоматически считать ошибкой, но они должны быть зафиксированы и объяснены до перехода к научным выводам.