Estructuras de proteínas: marcar residuos en 3Dmol.js o Mol*
Muestra estructuras mmCIF, BinaryCIF o PDB en Potato con coloración por pLDDT y una tabla de residuos, y registra sitios de unión, epítopos o residuos de interfaz.
Nuevo en v2.12.0
La visualización protein_structure muestra una estructura macromolecular en el navegador, y los anotadores seleccionan residuos haciendo clic en ellos en la vista 3D o en una tabla de residuos que hay debajo. Un esquema viewer_selection guarda la selección, como un sitio de unión, un epítopo, una región que se considera desordenada, residuos de una interfaz o residuos donde un modelo predicho parece incorrecto. Las demás preguntas sobre el ítem, como una valoración o una nota, van en esquemas normales a su lado.
La visualización dibuja una representación en cartoon, muestra los ligandos como varillas (los iones de un solo átomo como esferas) y dibuja cada residuo seleccionado como varillas en el color de su etiqueta. Puede colorear el cartoon según la confianza del modelo (pLDDT) y mostrar una imagen de PAE junto a la estructura.
- Formatos: mmCIF (
.cif,.mmcif), BinaryCIF (.bcif) y PDB (.pdb,.ent), cada uno opcionalmente comprimido con gzip. Planifica los proyectos nuevos en torno a mmCIF: a partir del 2027-07-21, las entradas nuevas del PDB reciben ID de 12 caracteres y se distribuyen solo como mmCIF. El servidor lee BinaryCIF solo cuando está instalado el paquetemsgpack, y sin él la tabla de residuos no está disponible, aunque la vista 3D sigue funcionando. - Motores:
3dmol(el valor por defecto) usa 3Dmol.js 2.5.5, que viene con Potato.molstarusa Mol* 5.12.0, que ocupa unos 5 MB y se instala conpotato vendor fetch molstar. Ambos necesitan WebGL. - Sin WebGL, la vista 3D muestra un mensaje y la tabla de residuos sigue funcionando.
- Sin conexión por defecto: una estructura se lee del directorio de multimedia. Una URL, como un archivo de AlphaFold DB o de RCSB, solo se carga cuando la visualización fija
allow_remote: true, y en ese caso la descarga el navegador del anotador, no el servidor de Potato.
Configuración
media_directory: media
data_files: [data/structures.json]
item_properties: {id_key: id, text_key: note}
instance_display:
fields:
- key: note
type: text
- key: structure # item field holding the file path
type: protein_structure
label: "Structure"
display_options:
engine: 3dmol
height: 440
plddt: true # colour by B-factor read as pLDDT
pae_field: pae # item field holding a PAE image
annotation_schemes:
- annotation_type: viewer_selection
name: binding_site
description: "Select the residues that form the binding site"
viewer_field: structure
labels: ["ligand contact", "interface"]
min_selections: 1
max_selections: 12
label_requirement:
required: true
- annotation_type: radio
name: site_confidence
description: "How clear is the site in this model?"
labels: ["Clear", "Plausible", "Unsupported"]Cada ítem nombra su archivo de estructura en relación con media_directory:
{"id": "model_1", "note": "...", "structure": "structures/model_1.cif", "pae": "structures/model_1_pae.png"}| Opción de visualización | Valor por defecto | Significado |
|---|---|---|
engine | 3dmol | 3dmol o molstar |
height | 420 | Altura de la vista 3D, en píxeles o como longitud CSS |
format | según la extensión | cif, bcif o pdb, para un archivo cuyo nombre no lo indica |
color_by | chain | chain, spectrum (del extremo N al C) o secondary. Se ignora cuando plddt está activado |
plddt | false | Colorea el cartoon según la columna del factor B leída como pLDDT, en las cuatro bandas de AlphaFold. Los valores escritos en el intervalo 0-1 se escalan |
pae_field | ninguno | Un campo del ítem que contiene una imagen, como un gráfico de PAE, que se muestra junto a la estructura |
show_ligands | true | Dibuja los grupos HETATM distintos del agua |
residue_table | true | Muestra la tabla de residuos |
residue_table_limit | 3000 | Por encima de este número de residuos, la tabla se sustituye por una nota, y los residuos se seleccionan en la vista 3D |
allow_remote | false | Permite que el navegador cargue una URL http(s) nombrada en el ítem |
Opción de viewer_selection | Valor por defecto | Significado |
|---|---|---|
viewer_field | obligatorio | La clave del campo de instance_display del visor |
labels | ninguno | Nombres para las selecciones, como cadenas o {name, color}. Las selecciones nuevas toman la etiqueta actual, y cada una puede reetiquetarse |
min_selections | ninguno | El ítem está incompleto hasta que se selecciona este número de residuos, cuando el esquema es obligatorio |
max_selections | ninguno | Seleccionar más se rechaza con un mensaje |
Preparar las estructuras
- Un modelo por archivo. Solo se lee el primer modelo de un archivo con varios modelos, así que divide los conjuntos de RMN o los lotes de predicciones en un archivo por ítem.
- Modelos predichos. AlphaFold, ColabFold y herramientas similares escriben el pLDDT en la columna del factor B, así que define
plddt: truepara colorear según él. Conengine: molstar, la coloración por pLDDT lee la tablama_qa_metric_localque llevan los archivos mmCIF de AlphaFold DB. - Cadenas y números. La selección guardada usa los campos de autor del archivo (
auth_asym_id,auth_seq_id), que es la numeración que muestran 3Dmol.js y Mol*. Si tu análisis usa la numeraciónlabel_seq_id, haz la correspondencia después de exportar. - Atribución. Las predicciones de AlphaFold DB tienen licencia CC-BY-4.0, así que un estudio que las redistribuya, o que publique figuras hechas a partir de ellas, tiene que citar la fuente.
Las bandas de pLDDT son muy alta (por encima de 90, azul oscuro), segura (de 70 a 90, azul claro), baja (de 50 a 70, amarillo) y muy baja (50 o menos, naranja). Bajo la vista se muestra una leyenda, y cada botón de residuo de la tabla lleva su banda como una barra de color.
Seleccionar residuos
Los anotadores eligen una etiqueta y después hacen clic en residuos de la vista 3D o de la tabla de residuos, y un segundo clic quita el residuo. Al pasar el cursor por la vista 3D se muestran el residuo y su pLDDT. La tabla de residuos es la vía para el teclado: Tab pasa a una cadena, las flechas se mueven entre residuos, Home y End saltan a los extremos, y Space o Enter activa o desactiva el residuo. La lista bajo la pregunta muestra cada selección, con un menú para cambiar su etiqueta y un botón Remove. Las selecciones se restauran cuando el anotador vuelve a un ítem.
Respuesta guardada
{"viewer": "protein_structure",
"items": [{"chain": "A", "resi": 8, "resn": "HIS", "label": "ligand contact"},
{"chain": "B", "resi": 3, "resn": "LYS", "label": "interface"}]}Un residuo con código de inserción añade "icode": "A". No hay un formato de exportación específico para viewer_selection, así que este JSON es el valor del esquema en las exportaciones jsonl, csv y tsv. Las métricas de concordancia de Potato comparan nombres de etiquetas, no listas de residuos, así que compara a los anotadores calculando tú el solapamiento de conjuntos por ítem, por ejemplo Jaccard sobre los pares (chain, resi).
Elegir un motor
3Dmol.js (engine: 3dmol) | Mol* (engine: molstar) | |
|---|---|---|
| Instalación | Viene con Potato | potato vendor fetch molstar |
| Licencia | BSD-3-Clause | MIT |
| Residuos seleccionados | Varillas en el color de la etiqueta | El resaltado de selección de Mol* |
| Coloración por pLDDT | A partir de la columna del factor B | A partir de ma_qa_metric_local |
| Tabla de residuos para una URL remota | Construida a partir del modelo cargado | No disponible |
potato vendor fetch molstar descarga Mol* 5.12.0 y lo comprueba con hashes SHA-256 registrados antes de instalarlo, y no se descarga nada a menos que lo ejecutes. Una configuración con engine: molstar no supera potato validate ni el arranque del servidor hasta que el paquete está instalado, y el error nombra el comando.
Ejemplo
python potato/flask_server.py start examples/advanced/protein-binding-site/config.yaml -p 8000El ejemplo tiene dos modelos sintéticos y una tarea de sitios de unión.
Lecturas adicionales
- Loci genómicos - Loci de igv.js para revisar variantes
- Visualización de instancias - Cómo se configuran los campos de visualización
- Anotación sin conexión a la red - Ejecutar Potato sin conexión
Para detalles de implementación, consulta la documentación fuente sobre las estructuras de proteínas y la biología estructural.