Решила выписывать полезные комбинации команд и скрипты чтобы не искать и не разбираться снова.
Оказывается можно покрасить своими значениями белок, для этого можно заменить колонку B-фактора (можно ли не делать этого?). У подхода есть свои подводные камни: покрасятся только атомы остова. В общем были у меня скоры выравнивания, я при помощи следующего скрипта покрасила сначала С альфа атомы:
from pymol import cmd, stored
def assign_val():
if stored.i < len(stored.scores):
val = stored.scores[stored.i]
stored.i += 1
return val
return 0.0
def load_scores(filename, selection="all"):
"""
Загружает числа из файла и присваивает их в качестве B-фактора
C-альфа атомам выбранной структуры.
"""
# 1. Читаем числа из файла в список
stored.scores = []
try:
with open(filename, 'r') as f:
# Читает числа, разделенные пробелами или переносами строк
for line in f:
for token in line.split():
stored.scores.append(float(token))
except IOError:
print(f"Error: Не удалось открыть файл {filename}")
return
print(f"Загружено {len(stored.scores)} значений.")
# 2. Сбрасываем B-факторы в 0
cmd.alter(selection, "b=0")
# 3. Присваиваем значения CA (C-альфа) атомам последовательно
# Внимание: Порядок атомов в PDB должен совпадать с порядком чисел!
stored.i = 0
# Применяем только к C-альфа атомам ('n. CA')
cmd.alter(f"({selection}) and n. CA", "b=assign_val()")
# 4. Обновляем внутреннюю базу данных PyMOL
cmd.sort()
print("Значения консервативности загружены в B-фактор.")
show surface
set transparency, 0.5
select site, byres all within 5 of ligand
show sticks, site
set cartoon_side_chain_helper, 1
set ray_trace_mode, 1
angle my_angle_name, o, h, n