Af2cv
Version 10 (Andrey Golovin, 09.12.2025 17:13)
| 1 | 1 | Andrey Golovin | h1. Метадинамика |
|---|---|---|---|
| 2 | 1 | Andrey Golovin | |
| 3 | 1 | Andrey Golovin | |
| 4 | 1 | Andrey Golovin | *Создайте рабочую директорию.* |
| 5 | 1 | Andrey Golovin | |
| 6 | 1 | Andrey Golovin | |
| 7 | 1 | Andrey Golovin | * Координаты белка возьмите из записи PDB:1L2Y . |
| 8 | 1 | Andrey Golovin | * файл настроек для минимизации энергии "em.mdp":https://gitlab.sirius-web.org/golovin/protein-design/-/raw/master/pracs/p5/em.mdp |
| 9 | 2 | Andrey Golovin | * файл настроек для "утряски" воды "pr.mdp":https://gitlab.sirius-web.org/golovin/protein-design/-/raw/master/pracs/p5/pr.mdp |
| 10 | 2 | Andrey Golovin | * файл настроек для молекулярной динамики "md.mdp":https://gitlab.sirius-web.org/golovin/protein-design/-/raw/master/pracs/p5/md.mdp |
| 11 | 1 | Andrey Golovin | |
| 12 | 1 | Andrey Golovin | * Теперь построим файл топологии системы в силовом поле amber99sb и файл с координатами в формате Gromacs. |
| 13 | 1 | Andrey Golovin | <pre><code class="bash"> |
| 14 | 3 | Andrey Golovin | gmx pdb2gmx -f p.pdb -o p -p -ff amber99sb -water tip3p |
| 15 | 1 | Andrey Golovin | </code></pre> |
| 16 | 1 | Andrey Golovin | |
| 17 | 1 | Andrey Golovin | * Делаем небольшой отступ в ячейке от белка. |
| 18 | 1 | Andrey Golovin | <pre><code class="bash"> |
| 19 | 3 | Andrey Golovin | gmx editconf -f p.gro -o p_ec -d 1.5 |
| 20 | 1 | Andrey Golovin | </code></pre> |
| 21 | 1 | Andrey Golovin | * Проведём оптимизацию геометрии системы, что бы удалить "плохие" контакты в молекуле. |
| 22 | 1 | Andrey Golovin | <pre><code class="bash"> |
| 23 | 3 | Andrey Golovin | gmx grompp -f em -c p_ec -p -o p_em -maxwarn 1 |
| 24 | 3 | Andrey Golovin | gmx mdrun -deffnm dna_p -v |
| 25 | 1 | Andrey Golovin | </code></pre> |
| 26 | 1 | Andrey Golovin | *Отметье в отчёте изменение максимальной силы в ходе оптимизации геометрии. Знаесите начальное и конечное значение максимальной силы. |
| 27 | 1 | Andrey Golovin | |
| 28 | 1 | Andrey Golovin | * Добавим в ячейку молекулы воды |
| 29 | 5 | Andrey Golovin | <pre><code class="bash"> |
| 30 | 3 | Andrey Golovin | gmx genbox -cp p_em -p -cs -o p_s |
| 31 | 1 | Andrey Golovin | </code></pre> |
| 32 | 1 | Andrey Golovin | * Нейтрализуем заряд системы. Это делаем в два шага: строим tpr и запускаем genion. В выводе grompp обратите внимание на информацию о заряде системы. |
| 33 | 5 | Andrey Golovin | <pre><code class="bash"> |
| 34 | 3 | Andrey Golovin | gmx grompp -f em -p -c p_s -o p_s |
| 35 | 3 | Andrey Golovin | gmx genion -s p_s -o p_si -p -neutral -conc 0.15 |
| 36 | 1 | Andrey Golovin | </code></pre> |
| 37 | 1 | Andrey Golovin | * Проведём "утряску" воды: |
| 38 | 1 | Andrey Golovin | <pre><code class="bash"> |
| 39 | 3 | Andrey Golovin | gmx grompp -f pr -c p_si -p -o p_pr -maxwarn 1 |
| 40 | 3 | Andrey Golovin | gmx mdrun -deffnm p_pr -v |
| 41 | 1 | Andrey Golovin | </code></pre> |
| 42 | 5 | Andrey Golovin | * Cравните визуально изменения в системах p_pr.gro и p_si.gro . Занесите наблюдения в отчёт. |
| 43 | 1 | Andrey Golovin | * Запускаем тестовое моделирование молекулярной динамики. |
| 44 | 1 | Andrey Golovin | <pre><code class="bash"> |
| 45 | 3 | Andrey Golovin | gmx grompp -f md -c p_pr -p -o p_md -maxwarn 1 |
| 46 | 3 | Andrey Golovin | gmx mdrun -deffnm p_md -v -nsteps 1000000 -ntomp 4 |
| 47 | 1 | Andrey Golovin | </code></pre> |
| 48 | 1 | Andrey Golovin | Просмотреть ход счёта можно в файле p_md.log |
| 49 | 1 | Andrey Golovin | |
| 50 | 6 | Andrey Golovin | h3. Метадинамика |
| 51 | 1 | Andrey Golovin | |
| 52 | 1 | Andrey Golovin | * Попробуем странную штуку https://github.com/spiwokv/af2cv/tree/main |
| 53 | 8 | Andrey Golovin | * Pickle для белка можно сделать в "ColabFold":https://github.com/sokrypton/ColabFold?tab=readme-ov-file с выбором AlphaFold2_mmseqs2 и обязательно поставить галочку Save All. Pickle будет в архиве. |
| 54 | 1 | Andrey Golovin | * Вероятно, что при утряске воды система будет взрываться, надо в em.mdp поменять integrator на steep. И потом: |
| 55 | 1 | Andrey Golovin | |
| 56 | 4 | Andrey Golovin | <pre><code class="bash"> |
| 57 | 3 | Andrey Golovin | gmx grompp -f em -c p_si -p -o p_em2 -maxwarn 1 |
| 58 | 3 | Andrey Golovin | gmx mdrun -deffnm p_em2 -v |
| 59 | 3 | Andrey Golovin | gmx grompp -f pr -c p_em2 -p -o p_pr -maxwarn 1 |
| 60 | 3 | Andrey Golovin | gmx mdrun -deffnm p_pr -v |
| 61 | 1 | Andrey Golovin | </code></pre> |
| 62 | 1 | Andrey Golovin | |
| 63 | 1 | Andrey Golovin | * Скопируйте себе библиотеку для этой "CV":https://gitlab.sirius-web.org/golovin/protein-design/-/raw/master/pracs/p5/AFDistProb.cpp?inline=false и файл "plumed.dat":https://gitlab.sirius-web.org/golovin/protein-design/-/raw/master/pracs/p5/plumed.dat |
| 64 | 1 | Andrey Golovin | |
| 65 | 3 | Andrey Golovin | * В начале файла надо внести изменения в путь к библиотеке с CV |
| 66 | 9 | Andrey Golovin | > Для варианта дизайна этого пептида надо догадаться как поменять номера атомов в двух местах: WHOLEMOLECULES и ATOMS= |
| 67 | 1 | Andrey Golovin | * Запускаем |
| 68 | 4 | Andrey Golovin | |
| 69 | 1 | Andrey Golovin | <pre><code class="bash"> |
| 70 | 3 | Andrey Golovin | gmx mdrun -deffnm p_md -ntomp 4 -v -plumed plumed.dat |
| 71 | 1 | Andrey Golovin | </code></pre> |
| 72 | 1 | Andrey Golovin | |
| 73 | 10 | Andrey Golovin | |
| 74 | 10 | Andrey Golovin | h2. Анализ метадинамики |
| 75 | 10 | Andrey Golovin | |
| 76 | 10 | Andrey Golovin | * В ходе расчета у вас получились файлы со структурами : trr и xtc |
| 77 | 10 | Andrey Golovin | * Файл HILLS это информация об наложенных потенциалах, это тот самый "песок" |
| 78 | 10 | Andrey Golovin | * Файл COLVAR это файл в который сохраняли значения CV и сумарное наложенный bias. |
| 79 | 10 | Andrey Golovin | * Посомотрите на результат в PyMol |
| 80 | 10 | Andrey Golovin | |
| 81 | 10 | Andrey Golovin | <pre> |
| 82 | 10 | Andrey Golovin | gmx trjconv -f p_md -s p_md -o view1.pdb -skip 20 -pbc mol |
| 83 | 10 | Andrey Golovin | или |
| 84 | 10 | Andrey Golovin | trjconv -f p_md.xtc -s p_md.tpr -o view2.pdb -skip 20 -fit rot+trans |
| 85 | 10 | Andrey Golovin | </pre> |
| 86 | 10 | Andrey Golovin | |
| 87 | 10 | Andrey Golovin | |
| 88 | 10 | Andrey Golovin | |
| 89 | 10 | Andrey Golovin | * Воспользуйтесь plumed sum_hills для востановления поверхности свободной энергии |
| 90 | 10 | Andrey Golovin | * Используя matplotlib и подобное постройте график |
| 91 | 10 | Andrey Golovin | * Попробуйте придумать способ для оценки сходимости |
| 92 | 10 | Andrey Golovin | * Давайте попробуем построить график FES на основе перевзвешенных данных. |
| 93 | 10 | Andrey Golovin | |
| 94 | 10 | Andrey Golovin | <pre> |
| 95 | 10 | Andrey Golovin | plumed driver --plumed rew.dat --noatoms |
| 96 | 10 | Andrey Golovin | </pre> |
| 97 | 10 | Andrey Golovin | |
| 98 | 10 | Andrey Golovin | * Постройте график и сравните с sum_hills |
| 99 | 10 | Andrey Golovin | * Возможно это не самая лучшая переменная, давайте попробуем превзвесить на радиус инерции (предположительное распрямление белка) |
| 100 | 10 | Andrey Golovin | * Расчитаем RG c помошью этих директив в отдельном dat файле |
| 101 | 10 | Andrey Golovin | |
| 102 | 10 | Andrey Golovin | <pre> |
| 103 | 10 | Andrey Golovin | rg: GYRATION TYPE=RADIUS ATOMS=1-284 |
| 104 | 10 | Andrey Golovin | PRINT ARG=rg STRIDE=1 FILE=rg |
| 105 | 10 | Andrey Golovin | </pre> |
| 106 | 10 | Andrey Golovin | |
| 107 | 10 | Andrey Golovin | * Расчёт новой переменной будет сделан в новый файл |
| 108 | 10 | Andrey Golovin | |
| 109 | 10 | Andrey Golovin | <pre> |
| 110 | 10 | Andrey Golovin | plumed driver --plumed rg.dat --mf_trr p_md.trr |
| 111 | 10 | Andrey Golovin | </pre> |
| 112 | 10 | Andrey Golovin | |
| 113 | 10 | Andrey Golovin | * Теперь надо скомбинировать данные meta.rbias из COLVAR и значения радиуса гирации в один новый файл формата COLVAR , обратите внимание на разницу в шаге. Вот некоторые функции в помощь |
| 114 | 10 | Andrey Golovin | |
| 115 | 10 | Andrey Golovin | <pre> |
| 116 | 10 | Andrey Golovin | def GetPlumedColumns(f): |
| 117 | 10 | Andrey Golovin | with open(f,'r') as dat: |
| 118 | 10 | Andrey Golovin | arr = dat.readline().split() |
| 119 | 10 | Andrey Golovin | return arr[2:] |
| 120 | 10 | Andrey Golovin | |
| 121 | 10 | Andrey Golovin | def LoadNumpy(f,names): |
| 122 | 10 | Andrey Golovin | a = np.loadtxt(f) |
| 123 | 10 | Andrey Golovin | df = pd.DataFrame() |
| 124 | 10 | Andrey Golovin | for i,n in enumerate(names): |
| 125 | 10 | Andrey Golovin | df[n] = a[:,i] |
| 126 | 10 | Andrey Golovin | return copy.deepcopy(df) |
| 127 | 10 | Andrey Golovin | |
| 128 | 10 | Andrey Golovin | def combinevars(.......): |
| 129 | 10 | Andrey Golovin | c = LoadNumpy(file, cnames ) |
| 130 | 10 | Andrey Golovin | gr = LoadNumpy(file, danames ) |
| 131 | 10 | Andrey Golovin | out = pd.merge(crf, da, on='time') |
| 132 | 10 | Andrey Golovin | </pre> |
| 133 | 10 | Andrey Golovin | |
| 134 | 10 | Andrey Golovin | * Расчитайте график свободной энергии в завимисомти от радиуса инерции, надо сделать новый rev.dat |
| 135 | 10 | Andrey Golovin | * Попрбуйте сделать анализ от двух переменных RG и alfascore |
| 136 | 10 | Andrey Golovin | * Может есть силы поискать другие переменные которые могут лучше описывать процесс : https://www.plumed.org/doc-v2.9/user-doc/html/_colvar.html |
| 137 | 10 | Andrey Golovin | * Для выбранной переменной сделайте анализ мутантного белка и ранее стабилизированного белка, данные лежат выше |
| 138 | 10 | Andrey Golovin | * |
| 139 | 10 | Andrey Golovin | |
| 140 | 10 | Andrey Golovin | h2. Подсказка |
| 141 | 10 | Andrey Golovin | |
| 142 | 10 | Andrey Golovin | > Общий пайплан построения FES : Подготовить COLVAR (слить, фильтровать) - Адаптировать rew.dat - Запустить plumed driver --plumed rew.dat --noatoms |
| 143 | 10 | Andrey Golovin | |
| 144 | 10 | Andrey Golovin | * На hub запуск Plumed: |
| 145 | 10 | Andrey Golovin | |
| 146 | 10 | Andrey Golovin | <pre> |
| 147 | 10 | Andrey Golovin | /home/anur/miniconda3/envs/plumed/bin/plumed driver --plumed rew2d.dat --noatoms |
| 148 | 10 | Andrey Golovin | </pre> |
| 149 | 10 | Andrey Golovin | |
| 150 | 10 | Andrey Golovin | * Для работы дома надо подготовить все возможные COLVAR и положить их в свою директорию на hub |
| 151 | 10 | Andrey Golovin | |
| 152 | 10 | Andrey Golovin | |
| 153 | 1 | Andrey Golovin |