Code Monkey home page Code Monkey logo

chemnext-trainee-test-case's Introduction

Тестовое задание для стажера в группу вычислительной химии

В рамках этой стажировки вам предстоит работа над автоматизацией инструментов, рутинно использующихся вычислительными химиками. Основной язык разработки в группе – Python, поэтому в этом тестовом задании мы хотим узнать как вы умеете работать с документацией и пишете код. При выполнении задания не нужно писать промышленную программу с учетом всех граничных случаев, покрытием тестами и пр., достаточно рабочего примера и комментария о том, как его запустить. Из приведенных заданий достаточно выполнить только одно, на ваш выбор.

Не стесняйтесь задавать вопросы и уточнять требования:

Задание 1. Параметризация малой молекулы полем OpenFF

Молекулярная динамика – один из основных методов исследования комплексов малой молекулы с белком. В наших исследованиях довольно часто нужно запускать МД-вычисления для серии малых молекул, при этом подготовка входных файлов для Gromacs в ручную – достато трудоемкий процесс. Поэтому имеет смысл автоматизировать конвертацию лигандов из структурных файлов в входной формат Gromacs, чтобы упростить процедуру спорки системы и последующего запуска.

Задача

Написать набор функций в виде Python-скрипта или Jupyter-ноутбука для параметризации большого количества малых молекул полем OpenFF для использования в Gromacs.

Входные данные

  • SDF-файл с координатами лигандов. Координаты не должны измениться в процессе подготовки. Пример файла с малыми молекулами находится в папке openff_data

Выходные данные

В отдельной папке для каждого лиганда из SDF (желательно, чтобы имя папки соответствовало имени молекулы, если оно есть в файле):

  • Файл со структурой лиганда, в читаемом Gromacs формате (PDB или GRO)
  • Файл с топологией Gromacs (topol.top)

Для чтения SDF-файлов можно использовать библиотеку RDKit, для параметризации и записи файлов для Gromacs – openff-toolkit (showcase, конвертация в Gromacs).

Задание 2. Подготовка лигандов для докинга в Autodock Vina

Молекулярный докинг – «рабочая лошадка» медхимика, эта процедура выполняется довольно часто на довольно большом объеме низкомолекулярных соединений. Одна из популярных программ для докинга – Autodock Vina, она умеет работать только с соединениями в формате PDBQT, с которым не удобно работать во всех остальных случаях. Поэтому для автоматизации докинга нужен инструмент для конвертации более распространенных структурных файлов (SMI и SDF) в формат PDBQT.

Задача

Написать набор функций в виде Python-скрипта или Jupyter-ноутбука для конвертации большого количества малых молекул в формат PDBQT из SDF и SMILES. SDF может содержать молекулы в 2D и без атомов водорода.

Входные данные

Примеры входных данных находятся в папке vina_data

Выходные данные

  • Набор PDBQT-файлов, по одному на каждый лиганд, имя файла берется из его названия в соответствующем исходном файле.

Для чтения SDF-файлов можно использовать библиотеку RDKit, для конвертации файлов лучше всего использовать библиотеку Meeko. Дополнительное задание – сделать алифатические циклы с числом атомов больше 5 «гибкими» (нужные параметры для подготовки лиганда можно подсмотреть здесь).

chemnext-trainee-test-case's People

Contributors

moleculadesigner avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.