Script de Python para ejecutar en Pymol que cambia el color de cada cadena de un objeto.


color_chain_hex 7CZE, A, 1B9872, es decir, objeto, cadena, color hexacesimal

from pymol import cmd

def color_chain_hex(obj_name, chain_id, hex_code):
"""
color_chain_hex 7CZE, A, 1B9872
color_chain_hex 7CZE, B, 64A21E
color_chain_hex 7CZE, I, CE191A
color_chain_hex 7CZE, I, 67649E
color_chain_hex 7CZE, I, D45E04
color_chain_hex 7CZE, I, E22A87
color_chain_hex 7CZE, I, D9A204
color_chain_hex 7CZE, I, 7E5A17
                objeto, cadena, color hexacesimal
"""
    hex_code = hex_code.strip().lstrip('#').upper()
    if len(hex_code) != 6:
        print("Error: el código hexadecimal debe tener 6 dígitos.")
        return

    try:
        rgb = [int(hex_code[i:i+2], 16) / 255.0 for i in (0, 2, 4)]
    except ValueError:
        print("Error: código hexadecimal no válido.")
        return

    # Nombre único de color basado en objeto y cadena
    color_name = f"color_{obj_name}_{chain_id}"

    # Define el color y aplica a la cadena
    cmd.set_color(color_name, rgb)
    selection = f"{obj_name} and chain {chain_id}"
    cmd.color(color_name, selection)

# Registra como comando de PyMOL
cmd.extend("color_chain_hex", color_chain_hex)

color hexacesimal

color hexacesimal

Conversor RGB ⇄ Hexadecimal

RGB a Hex

Hex: #------

Hex a RGB

RGB: R, G, B