Skip to content

Proteinstrukturen: Residuen in 3Dmol.js oder Mol* markieren

mmCIF-, BinaryCIF- oder PDB-Strukturen in Potato mit pLDDT-Färbung und einer Residuentabelle anzeigen und Bindestellen, Epitope oder Grenzflächenresiduen erfassen.

Neu in v2.12.0

Die Anzeige protein_structure zeigt eine makromolekulare Struktur im Browser, und Annotatoren wählen Residuen aus, indem sie sie in der 3D-Ansicht oder in einer Residuentabelle darunter anklicken. Ein Schema vom Typ viewer_selection speichert die Auswahl, etwa eine Bindestelle, ein Epitop, eine als ungeordnet beurteilte Region, Residuen an einer Grenzfläche oder Residuen, an denen ein vorhergesagtes Modell falsch aussieht. Andere Fragen zum Item, etwa eine Bewertung oder eine Notiz, kommen in gewöhnliche Schemata daneben.

Die Anzeige zeichnet eine Cartoon-Darstellung, zeigt Liganden als Sticks (einatomige Ionen als Kugeln) und zeichnet jedes ausgewählte Residuum als Sticks in der Farbe seines Labels. Sie kann den Cartoon nach der Modellkonfidenz (pLDDT) färben und neben der Struktur ein PAE-Bild anzeigen.

  • Formate: mmCIF (.cif, .mmcif), BinaryCIF (.bcif) und PDB (.pdb, .ent), jeweils optional mit gzip komprimiert. Planen Sie neue Projekte mit mmCIF: Ab dem 21.07.2027 erhalten neue Einträge der PDB zwölfstellige IDs und werden nur noch als mmCIF verteilt. Der Server liest BinaryCIF nur, wenn das Paket msgpack installiert ist; ohne es ist die Residuentabelle nicht verfügbar, während die 3D-Ansicht weiterhin funktioniert.
  • Engines: 3dmol (der Standard) verwendet 3Dmol.js 2.5.5, das mit Potato ausgeliefert wird. molstar verwendet Mol* 5.12.0, das etwa 5 MB groß ist und mit potato vendor fetch molstar installiert wird. Beide brauchen WebGL.
  • Ohne WebGL zeigt die 3D-Ansicht eine Meldung, und die Residuentabelle funktioniert weiterhin.
  • Standardmäßig offline: Eine Struktur wird aus dem Medienverzeichnis gelesen. Eine URL, etwa eine Datei aus der AlphaFold DB oder von RCSB, wird nur geladen, wenn die Anzeige allow_remote: true setzt, und dann ruft der Browser des Annotators sie ab, nicht der Potato-Server.

Konfiguration

yaml
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"]

Jedes Item nennt seine Strukturdatei relativ zu media_directory:

json
{"id": "model_1", "note": "...", "structure": "structures/model_1.cif", "pae": "structures/model_1_pae.png"}
AnzeigeoptionStandardBedeutung
engine3dmol3dmol oder molstar
height420Höhe der 3D-Ansicht in Pixeln oder als CSS-Länge
formataus der Dateiendungcif, bcif oder pdb, für eine Datei, deren Name es nicht verrät
color_bychainchain, spectrum (N- bis C-Terminus) oder secondary. Wird ignoriert, wenn plddt aktiv ist
plddtfalseFärbt den Cartoon nach der B-Faktor-Spalte, gelesen als pLDDT, in den vier AlphaFold-Bändern. Als 0-1 geschriebene Werte werden skaliert
pae_fieldkeinerEin Item-Feld mit einem Bild, etwa einem PAE-Plot, das neben der Struktur angezeigt wird
show_ligandstrueZeichnet HETATM-Gruppen außer Wasser
residue_tabletrueZeigt die Residuentabelle an
residue_table_limit3000Oberhalb dieser Zahl von Residuen wird die Tabelle durch einen Hinweis ersetzt, und Residuen werden in der 3D-Ansicht ausgewählt
allow_remotefalseLässt den Browser eine im Item genannte http(s)-URL laden
Option von viewer_selectionStandardBedeutung
viewer_fielderforderlichDer Feldschlüssel des Viewers in instance_display
labelskeinerNamen für Auswahlen, als Strings oder {name, color}. Neue Auswahlen erhalten das aktuelle Label, und jede lässt sich umbenennen
min_selectionskeinerDas Item ist unvollständig, bis so viele Residuen ausgewählt sind, wenn das Schema erforderlich ist
max_selectionskeinerWeitere Auswahlen werden mit einer Meldung abgewiesen

Strukturen vorbereiten

  • Ein Modell pro Datei. Nur das erste Modell einer Datei mit mehreren Modellen wird gelesen; teilen Sie NMR-Ensembles oder Vorhersage-Batches daher in eine Datei pro Item auf.
  • Vorhergesagte Modelle. AlphaFold, ColabFold und ähnliche Werkzeuge schreiben pLDDT in die B-Faktor-Spalte; setzen Sie daher plddt: true, um danach zu färben. Mit engine: molstar liest die pLDDT-Färbung die Tabelle ma_qa_metric_local, die mmCIF-Dateien der AlphaFold DB enthalten.
  • Ketten und Nummern. Die gespeicherte Auswahl verwendet die Autorenfelder der Datei (auth_asym_id, auth_seq_id), also die Nummerierung, die 3Dmol.js und Mol* anzeigen. Wenn Ihre Analyse die Nummerierung label_seq_id verwendet, bilden Sie sie nach dem Export ab.
  • Namensnennung. Vorhersagen der AlphaFold DB stehen unter CC-BY-4.0, daher muss eine Studie, die sie weitergibt oder daraus erstellte Abbildungen veröffentlicht, die Quelle nennen.

Die pLDDT-Bänder sind sehr hoch (über 90, dunkelblau), zuversichtlich (70 bis 90, hellblau), niedrig (50 bis 70, gelb) und sehr niedrig (50 oder darunter, orange). Unter der Ansicht wird eine Legende angezeigt, und jede Residuenschaltfläche in der Tabelle trägt ihr Band als farbigen Balken.

Residuen auswählen

Annotatoren wählen ein Label und klicken dann auf Residuen in der 3D-Ansicht oder in der Residuentabelle; ein erneuter Klick entfernt eines. Beim Überfahren mit der Maus in der 3D-Ansicht werden das Residuum und sein pLDDT angezeigt. Die Residuentabelle ist der Weg über die Tastatur: Tab wechselt zu einer Kette, die Pfeiltasten bewegen sich zwischen Residuen, Home und End springen an die Enden, und Space oder Enter schaltet das Residuum um. Die Liste unter der Frage zeigt jede Auswahl, mit einem Menü zum Ändern ihres Labels und einer Schaltfläche Remove. Auswahlen werden wiederhergestellt, wenn der Annotator zu einem Item zurückkehrt.

Gespeicherte Antwort

json
{"viewer": "protein_structure",
 "items": [{"chain": "A", "resi": 8, "resn": "HIS", "label": "ligand contact"},
           {"chain": "B", "resi": 3, "resn": "LYS", "label": "interface"}]}

Ein Residuum mit einem Insertion Code ergänzt "icode": "A". Es gibt kein eigenes Exportformat für viewer_selection, daher ist dieses JSON der Wert des Schemas in den Exporten jsonl, csv und tsv. Potatos Übereinstimmungsmetriken vergleichen Labelnamen, nicht Residuenlisten; vergleichen Sie Annotatoren daher, indem Sie die Mengenüberlappung pro Item selbst berechnen, zum Beispiel Jaccard über Paare (chain, resi).

Eine Engine wählen

3Dmol.js (engine: 3dmol)Mol* (engine: molstar)
InstalliertWird mit Potato ausgeliefertpotato vendor fetch molstar
LizenzBSD-3-ClauseMIT
Ausgewählte ResiduenSticks in der LabelfarbeDie Auswahlhervorhebung von Mol*
pLDDT-FärbungAus der B-Faktor-SpalteAus ma_qa_metric_local
Residuentabelle für eine entfernte URLAus dem geladenen Modell erstelltNicht verfügbar

potato vendor fetch molstar lädt Mol* 5.12.0 herunter und prüft es vor der Installation gegen hinterlegte SHA-256-Hashes, und es wird nichts heruntergeladen, solange Sie den Befehl nicht ausführen. Eine Konfiguration mit engine: molstar scheitert bei potato validate und beim Serverstart, bis das Bundle installiert ist, und die Fehlermeldung nennt den Befehl.

Beispiel

bash
python potato/flask_server.py start examples/advanced/protein-binding-site/config.yaml -p 8000

Das Beispiel enthält zwei synthetische Modelle und eine Bindestellen-Aufgabe.

Weiterführende Informationen

Implementierungsdetails finden Sie in der Quelldokumentation zu Proteinstrukturen und zur Strukturbiologie.