66 Международная конференция ТРУДЫ МФТИ. 2015. Том 7, № 4 УДК 519.65 А. С. Подкопаев1 , М. Е. Карасиков1,2 , Ю. В. Максимов1,3 1 Московский физико-технический институт (государственный университет) 2 Сколковский институт науки и технологий 3 Институт проблем передачи информации РАН Прогнозирование структур белков методами полуопределенного программирования Задача заключается в предсказании упаковки белковых молекул в мультимерный комплекс в приближении жестких тел. Для решения поставленной задачи предлагается использовать методы выпуклой оптимизации, например, полуопределенные релаксации. Недостатком большинства существующих алгоритмов (жадных алгоритмов и других) является их вычислительная сложность. В данной работе предлагаются алгоритмы меньшей вычислительной сложности. Основным результатом является оценка их качества, сравнение с алгоритмами, использовавшимися ранее. Ключевые слова: структуры белков, выпуклая релаксация, вычислительная сложность, хордальные графы, максимальные клики, точность прогнозирования. A. S. Podkopaev1 , M. E. Karasikov1,2 , Y. V. Maximov1,3 1 Moscow Institute of Physics and Technology (State University) 2 Skolkovo Institute of Science and Technology 3 Institute of Infomation Transmission Problems RAS Protein packing by semidefinite programming The problem is to predict protein packing into the multidimensional complex in the approximation of rigid bodies. This problem can be solved using methods for convex optimization, for example, semidefinite relaxation. The disadvantage of the majority of existing algorithms (greedy algorithms, etc.) is their computational complexity. This study offers the algorithms with lesser computational complexity for specific input data. The main result is the assessment of their properties and performance in comparison with the algorithms used before. Key words: protein structures, convex relaxation, computational complexity, chordal graphs, maximal cliques, forecast accuracy. 1. Введение В основе каждого белка лежит полипептидная цепь, которая организована в трехмерную структуру. Различают четыре уровня пространственной организации белка: первичная, вторичная, третичная и четвертичная структуры белковых молекул. Под четвертичной структурой понимают макромолекулярное образование из нескольких полипептидных цепей в составе единого мультимерного белкового комплекса. В работе решается задача предсказания упаковки боковых цепей белковой структуры при помощи выпуклой оптимизации в предположении известного положения основной цепи. В работах по прогнозированию структур белков [1, 2] основное внимание уделяется взаимодействиям между парами белков. В качестве результата используемые методы выделяют наиболее правдоподобных кандитатов, которые впоследствии при помощи целевой функции ранжироваются. На данный момент среди наиболее популярных подходов к решению данной задачи следует отметить метод прогнозирования структуры в приближении жестких тел с последующим применением алгоритма полярной корреляции Фурье, описанный в статье [1], а также предложенный в работе [2] подход, основанный на методе Монте-Карло. ТРУДЫ МФТИ. 2015. Том 7, № 4 А. С. Подкопаев, М. Е. Карасиков и др. 67 Особое внимание в литературе уделяется решению задачи предсказания упаковки боковых цепей. В статьях [3,4] описаны одни из лучших по качеству и скорости методов решения задачи упаковки боковых цепей. В ранних работах М.Е. Карасикова и Ю.В. Максимова также рассмотрена задача предсказания упаковки боковых цепей белковой структуры при помощи выпуклой оптимизации в предположении известного положения основной цепи. Важно отметить, что задача прогнозирования структур является 𝑁 𝑃 -трудной задачей квадратичной оптимизации. Проблема упаковки белковых молекул в комплекс связана с исследованием большого числа всевозможных вариантов структур белка (большой размер базового пространства поиска). Перейдем к формальной постановке задачи: предположим, что в цепи имеется 𝑛 белков, причем каждый 𝑖-й белок может располагаться в одной из 𝑝 позиций: 𝑥𝑖 = [𝑥𝑖1 , 𝑥𝑖2 , ..., 𝑥𝑖𝑝 ], где 𝑥𝑖𝑘 ∈ {0, 1}. Для типичных макроструктур предполагается 𝑛 ∼ 10, 𝑝 ∼ 100. Тогда одному комплексу будет соответствовать вектор 𝑥 = [𝑥1 , . . . , 𝑥𝑛 ]⊤ . Любой паре позиций 𝑥𝑖𝑝 и 𝑥𝑗𝑚 можно приписать функцию энергии 𝑞, которая обусловлена силовым взаимодействием. Каждой позиции белка также соответствует собственное значение энергии 𝑏0 (эти значения получены из экспериментальных данных). Обозначим через 𝑁 число всевозможных позиций белков, составляющих один комплекс. Тогда задача оптимальной упаковки может быть записана в виде задачи минимизации: 𝑥⊤ 𝑄0 𝑥 + 𝑏⊤ 0𝑥→ min 𝑥∈{0,1}𝑁 (1) при условии, что 𝐴𝑥 = 1𝑛 , где бинарная матрица 𝐴 размера 𝑁 ×𝑛 имеет единичное значение 𝑖 𝑖−1 ∑︀ ∑︀ 𝑝𝑡 . А матрица 𝑄0 имеет вид 𝑝𝑡 < 𝑗 6 элемента 𝐴𝑖𝑗 , если и только если 𝑗 : 𝑡=1 𝑡=1 ⎡ ⎤ [𝑞12 (𝑝1 , 𝑝2 )] · · · [𝑞1𝑛 (𝑝1 , 𝑝𝑛 )] [0] · · · [𝑞2𝑛 (𝑝2 , 𝑝𝑛 )]⎥ ⎥ ⎥. .. .. .. ⎦ . . . [𝑞𝑛1 (𝑝𝑛 , 𝑝1 )] [𝑞𝑛2 (𝑝𝑛 , 𝑝2 )] · · · [0] [0] ⎢ [𝑞21 (𝑝2 , 𝑝1 )] ⎢ 𝑄0 = ⎢ .. ⎣ . В общем случае, матрица 𝑄0 не является положительно полуопределенной. Одна из формулировок задачи записывается как невыпуклая оптимизация. Изначально задача задана на булевом кубе: 𝐵𝑁 = {𝑥 : 𝑥𝑖 ∈ {0, 1}, 1 6 𝑖 6 𝑛}. Замечая, что 𝑥𝑇 𝑄0 𝑥 = ⟨𝑄0 , 𝑥𝑥𝑇 ⟩𝑁,𝑁 , переходим к задаче выпуклой оптимизации. С использованием различных методов релаксации можно попытаться получить приближенное решение исходной задачи с высокой точностью за полиномиальное время. Решение задачи определяется размерностями и свойствами матрицы 𝑄0 : в случае малых размерностей достаточно воспользоваться жадными алгоритмами, а в случае больших размерностей предлагается воспользоваться методами выпуклой оптимизации: например, полуопределенной релаксацией, релаксацией Лагранжа. Целью данной статьи является построение алгоритма меньшей вычислительной сложности с использованием предложенных методов [5–8]. 2. Постановка задачи В силу введенных в формальной постановке задачи предположений получаем, что вектор 𝑥 имеет блочную структуру, то есть он может быть поделен на малое количество блоков 𝑛 ∼ 10, а на каждый блок размера 𝑝 ∼ 100 накладывается ограничение вида ‖𝑥𝑖 ‖∞ = 1. Вектор 𝑥 представляет собой набор вероятностей того, что составные белки занимают определенное положение в пространстве, а матрицы 𝑄𝑖 и векторы 𝑏𝑖 предоставляют данные о ранее известных белковых структурах. Пусть задана выборка из 𝑁 матриц энергий: {𝑄1 , . . . , 𝑄𝑁 }. Квадратные матрицы энергий 𝑄 = {𝑞𝑖𝑗 }𝑖,𝑗=1,...,𝑚 имеют размеры порядка 68 Международная конференция ТРУДЫ МФТИ. 2015. Том 7, № 4 𝑚 = 𝑛𝑝 ∼ 1000 и являются сильно разреженными (доля нулевых элементов составляет порядка 99%). Целью работы является исследование задачи квадратичной оптимизации, возникающей при решении проблемы оптимальной упаковки белков, и повышение эффективности методов выпуклой оптимизации за счет ее структуры. 3. Используемые алгоритмы Для снижения вычислительной сложности исходной невыпуклой задачи квадратичной булевой оптимизации, являющейся 𝑁 𝑃 -трудной, осуществляется переход к графовой структуре данных (построение описано ниже), а затем задача декомпозируется древесным образом. В процессе используются различные эвристические методы – например, работа с хордальным расширением полученного графа. В результате это приводит к решению задачи за меньшее время в сравнении с обычной полуопределенной релаксацией. Перейдем непосредственно к описанию используемых методов. 3.1. Полуопределенная релаксация При использовании методов выпуклой оптимизации для решения задачи 1 невыпуклые ограничения заменяются на более слабые, но выпуклые ограничения. Тогда мы переходим к выпуклой задаче, методы решения которой хорошо известны. В результате удается получить хорошую оценку в задачах поиска минимума значения целевой функции. Основным методом выпуклой релаксации, рассматриваемым в этой работе, является полуопределенная релаксация. Полуопределенную релаксацию можно представить в виде ∑︁ 𝑄𝑖𝑗 𝑋𝑖𝑗 → min , 𝑖,𝑗 𝑁 ,𝑥≥0 𝑋∈𝒮+ 𝑁 ⊤ ⊤ 𝑁 = {𝑋 где 𝒮+ 𝑁,𝑁 : 𝑋 = 𝑋 ⪰ 0} и, кроме того, 𝑋 ⪰ 𝑥𝑥 , 𝑋𝑖𝑖 = 𝑥𝑖 , 𝑖 = 1, ..., 𝑁 и 𝐴𝑥 = 1𝑛 . Используя лемму Шура, перепишем задачу в виде эквивалентной: ∑︁ 𝑄𝑖𝑗 𝑋𝑖𝑗 → min 𝑖,𝑗 𝑋∈R𝑁 ×𝑁 ,𝑥≥0𝑁 𝑁 +1 при дополнительных условиях [𝑋 𝑥; 𝑥⊤ 1] ∈ 𝒮+ , 𝑋𝑖𝑖 = 𝑥𝑖 , 𝑖 = 1, . . . , 𝑁 , 𝐴𝑥 = 1𝑛 . Метод реализуется на MatLab при использовании пакета 𝑐𝑣𝑥. 3.2. Хордальная структура данных Для снижения вычислительной сложности алгоритма воспользуемся результатами из теории графов. Заметим, что каждой квадратной матрице 𝑄0 порядка 𝑛 в соответствие можно поставить некоторый граф 𝐺 с 𝑛 вершинами, ребра которого строятся по следующим правилам: наличию ненулевого элемента {𝑖, 𝑗} в матрице 𝑄0 соответствует ребро, соединяющее вершины 𝑖 и 𝑗. Если же элемент {𝑖, 𝑗} в матрице 𝑄0 равен 0, ребро между элементами 𝑖 и 𝑗 не проводится. Определение 1. Граф называется хордальным, если каждый из его циклов, имеющий четыре и более дуг, имеет хорду, которая является ребром, соединяющим две вершины, не смежные в цикле. Поставим задачу поиска максимальных клик в графе 𝐺. Поскольку про структуру таблицы смежности исходного графа ничего не известно, то можно считать, что граф 𝐺 является произвольным. В общем случае задача поиска максимальных клик является 𝑁 𝑃 – полной. Однако для исходных графов можно построить хордовое расширение и, воспользовавшись свойствами этих графов, получить решение этой задачи за полиномиальное время. В нашей работе для построения расширения использовался элиминационный алгоритм [12], состоящий из трех основных шагов: ТРУДЫ МФТИ. 2015. Том 7, № 4 А. С. Подкопаев, М. Е. Карасиков и др. 69 1) в графе 𝐺 = (𝑉, 𝐸) на 𝑛 вершинах фиксируем некоторый порядок просмотра вершин 𝜎. Пусть 𝐺1 = 𝐺, 𝐸 ′ = ∅; 2) добавим ребра к 𝐺𝑖 так, чтобы все соседи вершины 𝑖 стали попарно смежными. Добавленные ребра включим во множество 𝐸 ′ и удалим из графа 𝐺𝑖 вершину 𝑖 получив граф 𝐺𝑖+1 ; 3) вычислим хордовое расширение 𝐺′ = (𝑉 ; 𝐸 ∪ 𝐸 ′ ) графа 𝐺. Для полученного хордового расширения воспользуемся теоремой [9]. Теорема 1. Пусть матрице 𝑋 соответствует граф 𝐺, 𝐾1 , ..., 𝐾𝑑 – максимальные клики графа 𝐺. Тогда следующие условия эквивалентны: 1) Можно дополнить 𝑋 до положительно полуопределенной матрицы; 2) 𝑋𝐾𝑖 ,𝐾𝑖 ⪰ 0, 𝑖 = 1, ..., 𝑑, – подматрица 𝑋 с номерами строк и стобцов, принадлежащими 𝐾𝑖 . Тогда при решении задачи 1 для тех матриц энергий, для которых размер максимальной клики у соответствующего ей графа существенно меньше размера этого графа, заменим исходную полуопределенную релаксацию на ее модификацию: поиск минимума не по всем 𝑋, удовлетворяющим необходимым условиям, а по отдельным подматрицам существенно меньших размеров, соответствующих вершинам, входящим в состав максимальных клик. Приведем теоретические факты и алгоритмы, используемые для вычисления максимальных клик в хордальных графах за полиномиальное время [11, 12]. Следующий алгоритм (MSC, maximum cardinality search) вычисляет совершенный порядок исключения вершин графа 𝐺 = (𝑉, 𝐸) на 𝑛 вершинах: 1) для всех вершин 𝑣 ∈ 𝑉 положим ℓ[𝑣] = 0; 2) для всех 𝑖, 1 6 𝑖 6 𝑛, выберем непронумерованную вершину 𝑣 с наибольшим значением ℓ[𝑣] и положим 𝜎(𝑣) = 𝑖. Для всех смежных с 𝑣 вершин 𝜔 в графе 𝐺 увеличим ℓ[𝜔] на единицу. Порядок 𝜎 на графе 𝐺, полученный в результате работы указанного алгоритма, есть совершенный порядок исключения вершин графа 𝐺, если граф хордальный. Теорема 2. Неориентированный граф является хордальным тогда и только тогда, когда алгоритм MSC вычисляет (𝐺, 𝜎), где 𝜎 является совершенным порядком исключения для графа 𝐺. Теорема 3. Каждая максимальная клика хордального графа 𝐺 = (𝑉, 𝐸) имеет вид {𝑣} ∪ 𝑋(𝑣), где 𝑋(𝑣) = {𝑤 ∈ 𝑎𝑑𝑗(𝑣)|𝜎(𝑣) < 𝜎(𝑤)}, 𝑎𝑑𝑗(𝑣) – множество вершин, смежных с 𝑣 в графе 𝐺. Теорема 4. Хордальный граф имеет не более, чем 𝑛 максимальных клик. Алгоритм вычисления максимальных клик для хордального графа 𝐺 = (𝑉, 𝐸) на 𝑛 вершинах и совершенного порядка исключения 𝜎 имеет вид: 1) для всех вершин 𝑣 ∈ 𝑉 инициализируем параметр размера 𝑠[𝑣] = 0; 2) для всех 𝑖, 1 6 𝑖 6 𝑛, положим 𝑣 = 𝜎 −1 (𝑖) и • если степень вершины 𝑑(𝑣) = 0, то возвращаем максимальную клику {𝑣}, • вычисляем множество 𝑋 = {𝑤 : (𝑣, 𝑤) ∈ 𝐸 и 𝜎(𝑣) < 𝜎(𝑤)}, • если множество 𝑋 непусто и 𝑠[𝑣] < |𝑋|, то возвращаем максимальную клику {𝑣} ∪ 𝑋. Иначе обновим оценку расстояния 𝑠[𝑚[𝑣]] = max{𝑠[𝑚[𝑣]], |𝑋| − 1} для вершины 𝑚[𝑣] = 𝜎 −1 (min{𝜎(𝑤)|𝑤 ∈ 𝑋}); 70 ТРУДЫ МФТИ. 2015. Том 7, № 4 Международная конференция 3) в качестве ответа алгоритм возвращает набор всех максимальных клик. В результате от 𝑁 𝑃 -полной задачи нахождения максимальных клик переходим к задаче для хордальных графов, решаемой за полиномиальное время. 4. Вычислительный эксперимент Матрицы энергий (379 штук) из PDB (Protein Database Bank) были разбиты на группы по количеству вершин в соответствующих графах: до 500 (малых размеров), 500–1000 (средних размеров), больше 1000 (больших размеров). Для графов из каждой категории (73 – в первой категории, 145 – во второй и 161 – в третьей соответственно) были построены хордальные расширения и вычислены размеры максимальных клик. Приведем результаты в табл. 1. Таблица1 Соотношение размеров графов и их максимальных клик в исследуемой выборке размер клики менее 500 вершин 500–1000 вершин более 1000 вершин <12 4 1 0 12–16 29 41 16 16–20 32 87 120 >20 8 16 25 Для исходной матрицы энергий из выборки приведем графики зависимости, на которых по оси абсцисс откладываются фиксированные размеры, а по оси ординат отложим число графов, размер максимальных клик которых не превосходит это фиксированное число. Рис. 1. Размеры максимальных клик Учитывая приведенные выше обоснования, делаем вывод, что на исходной выборке следует попробовать применить модификацию исходной полуопределенной релаксации. На исходной выборке из PDB можно сравнить скорость и точность работы полуопределенной релаксации с/без использования хордовой структуры данных, и сопоставить их методу Монте-Карло. Вычислив максимальные клики для графов, соответствующих матрицам энергий, можно перейти к работе с методами релаксации. Была изучена зависимость времени работы SDP, SDP с учетом хордальной структуры данных и Монте-Карло от размеров исходных матриц. Сравнивались средние времена работы исходного SDP и модифицированной задачи на всей выборке из 379 матриц. Было получено, что в среднем на любой матрице из выборки модифицированная задача решается в 3.24 раза быстрее. ТРУДЫ МФТИ. 2015. Том 7, № 4 71 А. С. Подкопаев, М. Е. Карасиков и др. Рис. 2. Вычислительная сложность для матриц Рис. 3. Вычислительная сложность для матриц всех размерностей малых размерностей Также можно посмотреть, в скольких случаях модифицированный SDP дает значения целевой функции быстрее метода Монте-Карло. На нашей выборке первый метод давал результаты быстрее на 11% исходной выборки. В среднем метод работал быстрее на квадратных матрицах размера 200–300. Если задать допустимую точность вычисления значения целевой функции 𝛿 = 5%, то расчет показывает, что в сравнении со стохастическим методом Монте-Карло модифицированный SDP дает более точное значение целевой функции на 2.84% матриц, на которых он работает быстрее. Таблица2 Задачи с наибольшим выигрышем в скорости модифицированного SDP алгоритма id 1ado 1b9w 1cei 1f94 1gvp 1oai 1uln 1ulr 1wm3 2g30 2gqv 1yu5 1yzm SDP Значение Время 13452 4.91 15995 11.51 15830 10.16 13937 5.69 16686 9.22 12595 6.62 14269 7.44 16295 7.42 14278 7.22 11522 6.96 11427 4.39 12412 6.19 8757.2 4.54 Модифицированный SDP Значение Время 13624 0.85 16201 2.48 15088 2.06 14006 1.31 15184 1.91 11859 1.28 14079 1.61 14294 1.66 13305 1.57 11578 1.36 11609 0.68 11704 1.31 8197.3 0.73 Монте-Карло Значение Время 12439 1.9 15416 3.36 14717 3.66 13131 2.51 15696 2.65 11599 2.56 13699 2.56 15004 2.64 12751 2.5 11508 2.33 10371 1.76 12255 2.32 7995.7 1.7 Размер 227 336 335 244 322 258 281 294 292 275 190 258 190 Приведена таблица с указанием времени работы трех методов на части выборки, для которой соответствующие квадратные матрицы энергий имеют размеры до 500 строк (столбцов), и полученным значением минимизируемого функционала. Под id понимается метка данной белковой структуры, а под размером – размер соответствующей матрицы энергий 𝑄0 . В табл. 2 приводятся результаты, в которых хордальная модификация показала наиболее высокие результаты по сравнению с другими методами. Вместе с тем следует отметить, что в ряде случаев качество методов полуопределенной релаксации существенно выше, чем качество методов Монте-Карло. Пять задач с наи- 72 Международная конференция ТРУДЫ МФТИ. 2015. Том 7, № 4 большим выигрышем в качестве решения методами полуопределенного программирования приведены в табл. 3. Таблица3 Задачи с наибольшим выигрышем в качестве полуопределенной релаксации id 2hpl 2o0q 2i49 2fl4 1ulr 5. SDP Значение Время 18169 13.52 20229 14.06 16099 10.83 18492 11.91 16295 7.42 Модифицированный SDP Значение Время 17641 3.62 17866 3.35 14929 2.73 17055 2.97 14294 1.66 Монте-Карло Значение Время 19199 3.95 18621 3.41 15683 3.23 18310 3.41 15004 2.64 Размер 398 390 350 368 294 Заключение В данной работе рассмотрены алгоритмы прогнозирования четвертичных структур белков, построенных на основе предположения о минимизации суммарной энергии. Для невыпуклой задачи оптимизации были рассмотрены методы выпуклой релаксации как без учета хордальной структуры данных, так и с учетом этой структуры. Был проведен вычислительный эксперимент на основе данных из PDB. Проведено сравнение результатов работы этих двух алгоритмов и метода Монте-Карло. Показано, что в задачах малой размерности использованние выпуклой релаксации с хордальной структурой позволяет повысить скорость решения. В целом точность решения методами полуопределенной релаксации и методом Монте-Карло примерно равна, что по всей видимости связано с особенностями порождения данных задачи. Использованная в работе идея из [10] заключалась в разбиении исходной задачи полуопределенной релаксации на подзадачи определенным способом и последующим решением подзадач также методами полуопределенной релаксации. Дальшейшее повышение точности результатов возможно за счет явного представления оптимума в небольших кликах в виде последовательности максимумов, решаемой явно и встраивании данной конструкции в двойственную задачу. В работе было показано, что в ряде задач структурной биологии данные обладают необходимыми свойствами для проведения эффективной декомпозиции исходной задачи на задачи меньшей вычислительной сложности (например, использованная в статье хордальная структура данных). В ряде случаев удается получить существенный выигрыш в скорости и качестве решения поставленной задачи. Авторы выражают благодарность С. В. Грудинину за постановку задачи и предоставление данных. Работа выполнена при финансовой поддержке грантов РФФИ 14-07-31241 мол_а (Ю. В. Максимов) и 15-07-09121_а (М. Е. Карасиков и А. С. Подкопаев). Литература 1. Moughon G., Wang, Schueler-Furman, Kuhlman B. Protein-protein docking with simultaneous optimization of rigid-body displacement and side-chain conformations // Journal of Molecular Biology. 2003. P. 281–299. 2. Topf M., Lasker K., Webb B., Wolfson H., Chiu W., Sali A. Protein structure fitting and refinement guided by cryo-EM density // Structure. 2008. V. 16, N. 2. P. 295–307. 3. Krivov G., Shapovalov M., Dunbrack R. Improved prediction of protein side-chain conformations with SCWRL4 // Proteins. 2009. P. 778–795. 4. Zhichao Miao, Yang Cao, Taijiao Jiang RASP: rapid modeling of protein side chain conformations // Bioinformatics. 2011. P. 3117–3122. ТРУДЫ МФТИ. 2015. Том 7, № 4 А. С. Подкопаев, М. Е. Карасиков и др. 73 5. Freund R. Introduction to Semidefinite Programming. 2009. P. 1–49. 6. Boyd S., Vandenberghe L. Convex Optimization // Cambridge University Press. 2004. P. 1– 716. 7. Nesterov Y. Introductory lectures on convex optimization // Springer Science & Business Media. 2004. V. 87. 8. Nesterov Y. Quality of semidefinite relaxation for nonconvex quadratic optimization // Universite catholique de Louvain, Center for Operations Research and Econometrics (CORE). 1997. N 1997019. 9. Grone R., Charles R., Eduardo M.,Wolkowicz H. Positive definite completions of partial Hermitian matrices // Linear algebra and its applications. 1984. V. 58. P. 109–124. 10. De Klerk E. Exploiting special structurein semidefinite programming: A survey of theory and applications // European Journal of Operational Research. 2010. V. 201, N 1. P. 1–10. 11. Rose D., Lueker G., Tarjan R. Algorithmic aspects of vertex elimination on graphs // SIAM Journal on Computing. 1976. V. 5. P. 266–283. 12. Tarjan R. and Yannakakis M. Simple Linear-time Algorithms to Test Chordality of Graphs, Test Acyclicity of Hypergraphs, and Selectively Reduce Acyclic Hypergraphs // SIAM Journal on Computing. 1984. — V. 13, N 3. P. 566–579. References 1. Moughon G., Wang, Schueler-Furman, Kuhlman B. Protein-protein docking with simultaneous optimization of rigid-body displacement and side-chain conformations. Journal of Molecular Biology. 2003. P. 281–299. 2. Topf M., Lasker K., Webb B., Wolfson H., Chiu W., Sali A. Protein structure fitting and refinement guided by cryo-EM density. Structure. 2008. V. 16, N 2. P. 295–307. 3. Krivov G., Shapovalov M., Dunbrack R. Improved prediction of protein side-chain conformations with SCWRL4. Proteins. 2009. P. 778–795. 4. Zhichao Miao, Yang Cao, Taijiao Jiang RASP: rapid modeling of protein side chain conformations. Bioinformatics. 2011. P. 3117–3122. 5. Freund R. Introduction to Semidefinite Programming. 2009. P. 1–49. 6. Boyd S., Vandenberghe L. Convex Optimization. Cambridge University Press. 2004. P. 1– 716. 7. Nesterov Y. Introductory lectures on convex optimization. Springer Science & Business Media. 2004. V. 87. 8. Nesterov Y. Quality of semidefinite relaxation for nonconvex quadratic optimization. Universite catholique de Louvain, Center for Operations Research and Econometrics (CORE). 1997. N 1997019. 9. Grone R., Charles R., Eduardo M.,Wolkowicz H. Positive definite completions of partial Hermitian matrices. Linear algebra and its applications. 1984. V. 58. P. 109–124. 10. De Klerk E. Exploiting special structure in semidefinite programming: A survey of theory and applications. European Journal of Operational Research. 2010. V. 201, N 1. P. 1–10. 11. Rose D., Lueker G., Tarjan R. Algorithmic aspects of vertex elimination on graphs. SIAM Journal on Computing. 1976. V. 5. P. 266–283. 12. Tarjan R. and Yannakakis M. Simple Linear-time Algorithms to Test Chordality of Graphs, Test Acyclicity of Hypergraphs, and Selectively Reduce Acyclic Hypergraphs. SIAM Journal on Computing. 1984. V. 13, N 3. P. 566–579. Поступила в редакцию 12.11.2015.