Rosetta
Version 24 (Anton Vasetenkov, 27.02.2015 19:53)
| 1 | 1 | Andrey Golovin | h1. Rosetta-Tips |
|---|---|---|---|
| 2 | 1 | Andrey Golovin | |
| 3 | 2 | Andrey Golovin | {{toc}} |
| 4 | 2 | Andrey Golovin | |
| 5 | 3 | Andrey Golovin | h3. Installation |
| 6 | 3 | Andrey Golovin | |
| 7 | 9 | Anton Vasetenkov | При компиляции в Ubuntu 14.10 c OpenMpi возникает ошибка: |
| 8 | 3 | Andrey Golovin | <pre> |
| 9 | 3 | Andrey Golovin | src/protocols/wum2/EndPoint.cc:21:42: error: a function call cannot appear in a constant-expression |
| 10 | 3 | Andrey Golovin | src/protocols/wum2/EndPoint.cc:21:44: error: template argument 1 is invalid |
| 11 | 3 | Andrey Golovin | </pre> |
| 12 | 4 | Anton Vasetenkov | Антон Васетенков предлагает: |
| 13 | 15 | Anton Vasetenkov | <pre> |
| 14 | 5 | Anton Vasetenkov | // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*- |
| 15 | 5 | Anton Vasetenkov | // vi: set ts=2 noet: |
| 16 | 5 | Anton Vasetenkov | // |
| 17 | 5 | Anton Vasetenkov | // (c) Copyright Rosetta Commons Member Institutions. |
| 18 | 5 | Anton Vasetenkov | // (c) This file is part of the Rosetta software suite and is made available under license. |
| 19 | 5 | Anton Vasetenkov | // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons. |
| 20 | 5 | Anton Vasetenkov | // (c) For more information, see http://www.rosettacommons.org. Questions about this can be |
| 21 | 5 | Anton Vasetenkov | // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu. |
| 22 | 5 | Anton Vasetenkov | |
| 23 | 5 | Anton Vasetenkov | /// @file protocols/wum2/EndPoint.cc |
| 24 | 5 | Anton Vasetenkov | /// @brief Non MPI version of EndPoint |
| 25 | 5 | Anton Vasetenkov | /// @details This class is required because SingleNode role needs to use an EndPoint that is not MPI dependent (ie just a wrapper for 2 queues) |
| 26 | 5 | Anton Vasetenkov | /// @author Ken Jung |
| 27 | 5 | Anton Vasetenkov | |
| 28 | 5 | Anton Vasetenkov | //anton added this |
| 29 | 5 | Anton Vasetenkov | #include <boost/cstdint.hpp> |
| 30 | 5 | Anton Vasetenkov | |
| 31 | 5 | Anton Vasetenkov | #include <protocols/wum2/EndPoint.hh> |
| 32 | 5 | Anton Vasetenkov | #include <protocols/wum2/WorkUnit.hh> |
| 33 | 5 | Anton Vasetenkov | |
| 34 | 5 | Anton Vasetenkov | namespace protocols { |
| 35 | 5 | Anton Vasetenkov | namespace wum2 { |
| 36 | 5 | Anton Vasetenkov | |
| 37 | 3 | Andrey Golovin | //anton commented this |
| 38 | 3 | Andrey Golovin | //EndPoint::EndPoint( boost::function < uint64_t () > role_available_mem ) : role_available_mem_( role_available_mem) {} |
| 39 | 3 | Andrey Golovin | |
| 40 | 3 | Andrey Golovin | //anton added this |
| 41 | 1 | Andrey Golovin | EndPoint::EndPoint( boost::function < boost::uint64_t () > role_available_mem ) : role_available_mem_( role_available_mem) {} |
| 42 | 5 | Anton Vasetenkov | |
| 43 | 5 | Anton Vasetenkov | } // wum2 |
| 44 | 5 | Anton Vasetenkov | } // protocols |
| 45 | 5 | Anton Vasetenkov | |
| 46 | 15 | Anton Vasetenkov | </pre> |
| 47 | 3 | Andrey Golovin | |
| 48 | 1 | Andrey Golovin | |
| 49 | 6 | Andrey Golovin | |
| 50 | 6 | Andrey Golovin | h3. Fragments |
| 51 | 6 | Andrey Golovin | |
| 52 | 1 | Andrey Golovin | Генерация |
| 53 | 1 | Andrey Golovin | |
| 54 | 1 | Andrey Golovin | <pre> |
| 55 | 1 | Andrey Golovin | /home/domain/anur/progs/rosseta/main/source/bin/fragment_picker.default.linuxgccrelease -in:file:fasta 1.fasta -in:file:vall /home/domain/anur/progs/rosseta/tools/fragment_tools/vall.apr24.2008.extended.gz -out::file::frag_prefix pep-1 -frags::frag_sizes 9 5 3 |
| 56 | 1 | Andrey Golovin | </pre> |
| 57 | 1 | Andrey Golovin | |
| 58 | 1 | Andrey Golovin | Если последовательность вашего белка идёт не первой цепью, то надо сдвинуть остатки в файле фрагментов: |
| 59 | 1 | Andrey Golovin | <pre> |
| 60 | 1 | Andrey Golovin | cp ~/progs/rosseta/demos/protocol_capture/2010/FlexPepDock_AbInitio/scripts/frags/shift.sh . |
| 61 | 1 | Andrey Golovin | ./shift.sh pep-1.200.3mers 276 > pep-1.200.shift.3mers |
| 62 | 1 | Andrey Golovin | </pre> |
| 63 | 6 | Andrey Golovin | |
| 64 | 6 | Andrey Golovin | h3. Запуск MPI версии на Lomonosv |
| 65 | 7 | Andrey Golovin | |
| 66 | 7 | Andrey Golovin | Тут используется 48 ядер и module openmpi |
| 67 | 7 | Andrey Golovin | <pre> |
| 68 | 7 | Andrey Golovin | sbatch -n 48 -o log.abinitio.n48 -t 3000 ompi /home/users/golovin/progs/rosetta_2013wk40_bundle/main/source/bin/FlexPepDocking.mpi.linuxgccrelease @flags.abinitiore |
| 69 | 7 | Andrey Golovin | </pre> |
| 70 | 8 | Anton Vasetenkov | |
| 71 | 8 | Anton Vasetenkov | h3. Опции запуска |
| 72 | 8 | Anton Vasetenkov | |
| 73 | 8 | Anton Vasetenkov | https://www.rosettacommons.org/docs/latest/full-options-list.html |
| 74 | 16 | Anton Vasetenkov | |
| 75 | 16 | Anton Vasetenkov | |
| 76 | 16 | Anton Vasetenkov | |
| 77 | 16 | Anton Vasetenkov | |
| 78 | 16 | Anton Vasetenkov | h3. Создание программы на C++ с использованием функций Rosetta |
| 79 | 16 | Anton Vasetenkov | |
| 80 | 16 | Anton Vasetenkov | # Скачать rosetta-3.5. |
| 81 | 16 | Anton Vasetenkov | # Попробовать скомпилировать: |
| 82 | 16 | Anton Vasetenkov | Из папки rosetta-3.5/rosetta_source: |
| 83 | 16 | Anton Vasetenkov | <pre> |
| 84 | 16 | Anton Vasetenkov | ./scons.py -j8 bin |
| 85 | 16 | Anton Vasetenkov | </pre> |
| 86 | 16 | Anton Vasetenkov | Вариант release: |
| 87 | 16 | Anton Vasetenkov | <pre> |
| 88 | 16 | Anton Vasetenkov | ./scons.py -j8 bin mode=release |
| 89 | 16 | Anton Vasetenkov | </pre> |
| 90 | 16 | Anton Vasetenkov | Вариант с MPI: |
| 91 | 16 | Anton Vasetenkov | <pre> |
| 92 | 16 | Anton Vasetenkov | ./scons.py -j8 bin extras=mpi |
| 93 | 16 | Anton Vasetenkov | </pre> |
| 94 | 23 | Anton Vasetenkov | # Пишем программу с названием <название программы>, автор <автор>: |
| 95 | 23 | Anton Vasetenkov | Создать файл rosetta-3.5/rosetta_source/src/apps/pilot/<автор>/<название программы>.cc: |
| 96 | 16 | Anton Vasetenkov | <pre> |
| 97 | 16 | Anton Vasetenkov | // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*- |
| 98 | 16 | Anton Vasetenkov | // vi: set ts=2 noet: |
| 99 | 16 | Anton Vasetenkov | // |
| 100 | 16 | Anton Vasetenkov | |
| 101 | 16 | Anton Vasetenkov | #include <iostream> |
| 102 | 16 | Anton Vasetenkov | #include <devel/init.hh> |
| 103 | 16 | Anton Vasetenkov | #include <basic/Tracer.hh> |
| 104 | 16 | Anton Vasetenkov | |
| 105 | 16 | Anton Vasetenkov | |
| 106 | 16 | Anton Vasetenkov | |
| 107 | 16 | Anton Vasetenkov | int main(int argc, char *argv []) { |
| 108 | 16 | Anton Vasetenkov | devel::init( argc, argv ); |
| 109 | 16 | Anton Vasetenkov | std::cout << "Hello World!" << std::endl; |
| 110 | 1 | Andrey Golovin | return 0; |
| 111 | 17 | Anton Vasetenkov | } |
| 112 | 17 | Anton Vasetenkov | </pre> |
| 113 | 18 | Anton Vasetenkov | В файле rosetta-3.5/rosetta-source/src/pilot_apps.src.settings.all вместо |
| 114 | 18 | Anton Vasetenkov | <pre> |
| 115 | 18 | Anton Vasetenkov | sources = { |
| 116 | 18 | Anton Vasetenkov | } |
| 117 | 18 | Anton Vasetenkov | </pre> |
| 118 | 18 | Anton Vasetenkov | вписать: |
| 119 | 17 | Anton Vasetenkov | <pre> |
| 120 | 17 | Anton Vasetenkov | sources = { |
| 121 | 17 | Anton Vasetenkov | "pilot/<автор>" : [ |
| 122 | 23 | Anton Vasetenkov | "<название программы>", |
| 123 | 17 | Anton Vasetenkov | ], |
| 124 | 16 | Anton Vasetenkov | } |
| 125 | 16 | Anton Vasetenkov | </pre> |
| 126 | 19 | Anton Vasetenkov | # Компилируем |
| 127 | 19 | Anton Vasetenkov | Из папки rosetta-3.5/rosetta_source |
| 128 | 19 | Anton Vasetenkov | <pre> |
| 129 | 23 | Anton Vasetenkov | ./scons.py <название программы> -j8 |
| 130 | 19 | Anton Vasetenkov | </pre> |
| 131 | 21 | Anton Vasetenkov | |
| 132 | 21 | Anton Vasetenkov | |
| 133 | 21 | Anton Vasetenkov | |
| 134 | 21 | Anton Vasetenkov | |
| 135 | 21 | Anton Vasetenkov | |
| 136 | 21 | Anton Vasetenkov | h3. Некоторые муверы |
| 137 | 21 | Anton Vasetenkov | |
| 138 | 21 | Anton Vasetenkov | |
| 139 | 22 | Anton Vasetenkov | h4. MonteCarlo |
| 140 | 22 | Anton Vasetenkov | |
| 141 | 1 | Andrey Golovin | Конструируем: |
| 142 | 1 | Andrey Golovin | <pre> |
| 143 | 1 | Andrey Golovin | protocols::moves::MonteCarloOP mc = new protocols::moves::MonteCarlo(<поза>, <скоринг-функция>, 1.0); |
| 144 | 1 | Andrey Golovin | </pre> |
| 145 | 22 | Anton Vasetenkov | |
| 146 | 23 | Anton Vasetenkov | |
| 147 | 24 | Anton Vasetenkov | При конструировании в новом Монте-Карло-объекте сохраняется в качестве "текущей" и в качестве "позы с наименьшим скором" КОПИИ <позы>. |
| 148 | 23 | Anton Vasetenkov | |
| 149 | 23 | Anton Vasetenkov | Теперь при вызове |
| 150 | 23 | Anton Vasetenkov | <pre> |
| 151 | 23 | Anton Vasetenkov | mc->boltzmann(<поза>); |
| 152 | 1 | Andrey Golovin | </pre> |
| 153 | 24 | Anton Vasetenkov | если <поза> принимается, в "текущую" позу в объекте записывается КОПИЯ <позы> (и если нужно обновляется "поза с наименьшим скором"), если не принимается --- ничего не происходит. |
| 154 | 24 | Anton Vasetenkov | |
| 155 | 24 | Anton Vasetenkov | Чтобы записать в <позу> "позу с наименьшим скором": |
| 156 | 24 | Anton Vasetenkov | <pre> |
| 157 | 24 | Anton Vasetenkov | mc->recover_low(<поза>); |
| 158 | 24 | Anton Vasetenkov | </pre> |
| 159 | 24 | Anton Vasetenkov | |
| 160 | 24 | Anton Vasetenkov | Итог: |
| 161 | 24 | Anton Vasetenkov | <pre> |
| 162 | 24 | Anton Vasetenkov | protocols::moves::MonteCarloOP mc = new protocols::moves::MonteCarlo(pose, sfxn, 1.0); |
| 163 | 24 | Anton Vasetenkov | for (...) { |
| 164 | 24 | Anton Vasetenkov | Применяем муверы к pose; |
| 165 | 24 | Anton Vasetenkov | mc->boltzmann(pose); |
| 166 | 24 | Anton Vasetenkov | } |
| 167 | 24 | Anton Vasetenkov | mc->recover_low(pose); |
| 168 | 24 | Anton Vasetenkov | </pre> |