Fandom

Foldit

Cookbook

263Seiten in
diesem Wiki
Seite hinzufügen
Diskussion0 Teilen

Mit Cookbook (Kochbuch) wird ein neues Werkzeug in Foldit bezeichnet, dass man am linken Rand auf und zu klappen kann.

Das Kochbuch ist eine editierbare Ansammlung von sogenannten Rezepten (engl. recipes), die helfen sollen, regelmäßig wiederkehrende Tätigkeiten der Folder zu vereinfachen. Gegenwärtig ist es noch recht rudimentär, kann aber schon einige langweilige Dinge automatisieren.

Mittlerweile hat das Foldit-Team [1] zusätzlich zur grafischen Benutzeroberfläche eine textuelle eingeführt.

Dies geschah zusammen mit der Implementation der Lua-Scriptsprache

BenutzungBearbeiten

Die Bedienung ist recht selbsterklärend. Nach dem ausklappen des Kochbuchs kann man unten links den Editor öffnen, in dem Rezepte bearbeitet werden können. Fährt man mit der Maus über ein Rezept, kann man es löschen (Kreuz links vom Namen), editieren (Notiz-Symbol), oder ausführen (Pfeil).
Beim Start von Foldit sind vier erklärende Beispielrezepte bereits im Kochbuch, die mit Hilfstexten und Kommentaren versehen sind.

RezepteBearbeiten

Ein Rezept (oder script) besteht aus mehreren Einträgen (Zutaten), die jeweils eine bestimmte Funktion erfüllen. Diese Möglichkeiten werden derzeitig noch ausgebaut.
Eine neue Zutat wird hinzugefügt, indem auf den blau umrandeten Bereich geklickt wird. Meist muss dann innerhalb der Zutaten noch eine Auswahl getroffen werden, zum Beispiel über die Anzahl der betroffenen Rückgradteile. Hier die häufigsten Auswahloptionen am Beispiel von Freeze:

  • all: Alle: Jeder einzelne Teil einschließlich der Seitenketten wird eingefroren.
  • by stride: eine regelmäßige Auswahl wird getroffen
    • add integer: füge eine Zahl hinzu, z.B. every 2nd: jeder zweite Teil wird eingefroren
    • add a residue: Füge einen Rest, also einen Teil des Rückgrads, hinzu
      • by index: beginnend bei der Zahl X
      • user pick: vom Benutzer ausgewählt - hier wird per Mausklick ausgewählt, welche Teile Ziel der Veränderung sind. Es erfolgt zur Laufzeit des Rezeptes eine Aufforderung, diese Teile anzuklicken.

Ein Eintrag "Freeze Residues by strides every 5th residue starting at index 50" heißt also, dass jeder fünfte Teil beginnend ab der Indexnummer 50 im Protein eingefroren wird.

Transfer von RezeptenBearbeiten

Über die Seite http://fold.it/portal/recipes ist es seit dem 9.6.2009 möglich, Rezepte anzusehen, zu bewerten, beschränkt zu kommentieren und man kann sie natürlich herunter laden und ausprobieren. Dazu muss die Foldit-Anwendung laufen.

Das Hochladen auf die Seite funktioniert über das Kochbuch. Man muss ein Rezept öffnen und kann dann durch den Klick auf "Share" das Rezept auf die Fold.it-Seite heraufladen, wahlweise für alle, für die eigene Gruppe oder nur für sich selbst.

manuelle Transfermethode (alter Text)Bearbeiten

Momentan gibt es keine eingebaute Möglichkeit, Rezepte zwischen zwei Benutzern auszutauschen. Manuell ist dies jedoch möglich. Neben der einfachen Möglichkeit, Rezepte per Hand im Kochbuch zu kopieren, kann man sie auch austauschen, indem Zeilen in einer Datei kopiert werden. Hinweis: Die folgende Prozedur basiert allein auf Ausprobieren. Es gab keinerlei Aussage des Foldit-Teams dazu. Verändern der Foldit-Dateien auf eigene Gefahr.

Alle Rezepte eines Benutzers werden im Foldit-Verzeichnis (WinXP: C:/Dokumente und Einstellungen/All Users/Anwendungsdaten/foldit) in der Datei all.macros gespeichert. (Hinweis: Anwendungsdaten ist ein versteckter Ordner und kann mit dem Windows-Explorer nur eingesehen werden, wenn unter Extras-> Optionen-> Ordneroptionen -> Ansicht der Eintrag "versteckte Dateien und Ordner" auf "Alle Dateien und Ordner anzeigen" eingestellt ist.)
Diese Datei kann mit einem beliebigen Texteditor geöffnet werden.

Der Aufbau ist wie folgt:

1| version: 1
2| {
3| "all loop" : "{\n \"action-0\" : \"{\\n \\\"name\\\" : \\\"set_secondary_structure\\\"\\n \\\"residues\\\" ...
4| "band try" : "{\n \"action-0\" : \"{\\n \\\"name\\\" : \\\"add_bands\\\"\\n \\\"residues1\\\" : ...
5| }

Zeile 1: Versionsangabe
Zeile 2: Öffnen der Scriptinformationen
Zeile 3: Rezept "all loop"
Zeile 4: Rezept "band try"
Zeile 5: Schließen der Scriptinformationen; Ende der Datei

Wie man leicht erkennt, interessieren nur die Zeilen zwischen "{" und "}". Dort stehen die Rezepte.
Ein Rezeptzeile wird immer begonnen mit dem Rezeptnamen in Anführungszeichen. Dieser Name ist derselbe, der im Kochbuch steht. Danach folgen die Angaben, die im Rezept stehen. Die Reihenfolge ist dabei die selbe wie im Kochbuch und kann hier auch verändert werden.
Wenn man ein Rezept kopieren möchte, muss also die entsprechende Zeile, erkennbar am Rezeptnamen, komplett aus der all.macro des Rezepterstellers kopiert werden, und in der der all.macro des Empfängers in einer eigenen Zeile eingefügt werden.
Danach muss man die Datei nur noch speichern und ist schon fertig.

Es gibt im foldit-Verzeichnis auch noch eine single.macro. Diese Datei enthält das zuletzt im Kochbuch veränderte Rezept und kann nach bisherigen Erfahrungen getrost ignoriert werden.


Eine Sammlung von Rezepten kann man hier finden: Rezeptsammlung

Eine Beschreibung für den Export und Import von Scripten gibt es hier: Export und Import von Scripten

Lua-Befehlsübersicht: EinleitungBearbeiten

Generell git für die Ausführung von Funktionen:

Funktionen greifen teilweise auf die GUI zurück, das heißt, Änderungen, die über Scripte ausgeführt werden und auf die GUI zugreifen, können genausogut (oder eben nicht) rückgängig gemacht werden wie dieselbe Benutzeingabe über die GUI (Beispielweise das Überschreiben von Puzzle-Zuständen oder das Verändern von Gummibändern).


Erklärung der Funktions-Präfixe:

Void - gibt keinen Wert zurück, sondern führt nur die genannte Funktion aus.

Number - gibt einen Wert zurück

Integer - gibt einen ganzzahligen Wert zurück

String - gibt eine Zeichenkette zurück


Index:

Mit Index ist immer die Segment-Nummer gemeint. Diese kann im Spiel durch drücken von TAB angezeigt werden. (siehe "Informationen anzeigen" bei Werkzeuge)


Der Index-Zugriff funktioniert bei Gummibändern ähnlich.

Lua-BefehlsübersichtBearbeiten

void set_behavior_clash_importance(number importance)

Setzt den Wert der clashing importance (zwischen 0 und 1). Siehe auch Clashing importance bei Werkzeuge


number get_score()

Gibt die Puzzle-Gesamtpunktzahl zurück, die auch für das Spiel zählt.


number get_segment_score(integer segment_index_1[,..., integer segment_index_n])

Gibt den Punktwert der angegebenen Segmentnummer (Index) zurück. Getrennt durch Kommas können auch mehrere Segmente ausgewählt werden.


string get_ss(integer segment_index_1[,..., integer segment_index_n])

Wie darüber, gibt aber nicht die Punkte, sondern den Namen der Sekundärstruktur (Siehe auch Strukturmodus) zurück


number get_segment_distance(integer segment_index_1, integer segment_index_2)

Gibt die Entfernung zwischen integer segment_index_1 und integer segment_index_2 zurück.


integer get_band_count()

Gibt die Anzahl der angebrachten Gummibänder zurück.


integer get_segment_count()

Gibt die Anzahl der Segmente im Puzzle zurück. Dieser Wert ist gleichzeitg der höchste Segment-Index.


void reset_recent_best()

Setzt das aktuelle Ergebnis als 'recent best'.


void band_add_segment_segment(integer segment_index_1, integer segment_index_2)

Erstellt ein Gummiband zwischen 'segment_index_1' und 'segment_index_2'.


void restore_abs_best()

Setzt das Puzzle auf das bisher beste Ergebnis zurück.


void restore_recent_best()

Setzt das Puzzle auf den Zustand zurück, der als vorher 'recent best' gespeichert wurde.


void reset_puzzle()

Setzt das Puzzle ganz zurück.


void band_disable(integer band_index_1[, ..., integer band_index_n])

Deaktiviert alle Gummibänder mit entsprechendem Index.


void band_enable(integer band_index_1[, ..., integer band_index_n])

Aktiviert alle Gummibänder mit entsprechendem Index.


void band_delete(integer band_index_1[, ..., integer band_index_n])

Löscht alle Gummibänder mit entsprechendem Index.


void do_mutate([integer iterations])

Führt Mutate aus. läuft 'iterations'  lang.

Falls kein Wert angegeben wurd, läuft es solange, bis es vom Benutzer gestoppt wird (Leerzeile oder Klick auf Stop)


void do_local_rebuild([integer iterations])

Führt Rebuild aus. läuft 'iterations'  lang.

Falls kein Wert angegeben wurd, läuft es solange, bis es vom Benutzer gestoppt wird.


void deselect_all()

Löscht die Markierung aller Segmente.


void select_all()

Markiert alle Segmente.


void do_shake([integer iterations])

Führt Shake der Seitenketten aus. Läuft 'iterations'  lang.

Falls kein Wert angegeben wurd, läuft es solange, bis es vom Benutzer gestoppt wird.


void do_global_wiggle_sidechains([integer iterations])

Führt Wiggle für alle markierten Seitenketten gleichzeitig aus. Läuft 'iterations'  lang.


Falls kein Wert angegeben wurd, läuft es solange, bis es vom Benutzer gestoppt wird.


void do_global_wiggle_backbone([integer iterations])

Führt Wiggle für alle markierten Rückgrate gleichzeitig aus. Läuft 'iterations'  lang.


Falls kein Wert angegeben wurd, läuft es solange, bis es vom Benutzer gestoppt wird.


void do_global_wiggle_all([integer iterations])

Führt "wiggle" für alle markierten Rückgrate UND Seitenketten gleichzeitig aus. Läuft 'iterations'  lang.


Falls kein Wert angegeben wurd, läuft es solange, bis es vom Benutzer gestoppt wird.


number get_segment_score_part(string score_part, integer segment_index_1[, ..., integer segment_index_n])

Gibt nicht den Gesamtpunktewert, sondern nur den Punktwert des Segment-Attributs 'score_part' der angegebenen Segmentnummer (Index) zurück. Getrennt durch Kommas könen mehrere Segmente ausgewählt werden.


void replace_ss(string ss)

Ersetzt die Rückgrat-Formen der Sekundärstruktur (Loop, Helix, Sheet) durch eine andere, festgelegt durch die Zeichenkette 'ss'.


void replace_aa(string aa)

Ersetzt die Aminosäuren der Sekundärstruktur durch eine andere, festgelegt durch die Zeichenkette 'aa'.


void deselect_index(integer segment_index_1[, ..., integer segment_index_n])

Hebt die Markierung (Auswahl) der angegebenen Segmentnummer auf.

Getrennt durch Kommas können mehrere angegeben werden.


void select_index_range(integer segment_index_1, integer segment_index_2)

Markiert (Auswahl) alle Segmente von 'segment_index_1' bis 'segment_index_2' (einschließlich)


void select_index(integer segment_index_1[, ..., integer segment_index_n])

Markiert (Auswahl) die angegebene Segmentnummer.

Getrennt durch Kommas können mehrere angegeben werden.


void help(void)

Gibt eine unkommentierete Liste (ohne Erklärung) aller Befehle zurück.


string get_aa(integer segment_index_1[, ..., integer segment_index_n])

Zeigt die Aminosäure des gewählten Index als Buchstabe.

Getrennt durch Kommas können mehrere angegeben werden.

Lua-Scripting-TutorialeBearbeiten

Die folgenden Informationen sind noch in Übersetzung bzw werden sie noch verfasst, als Platzhalter dienen die englischsprachigen Originale, die am Ende des jeweiligen Artikels auch verlinkt sind.


Lua Scripting: generelle Tipps

Lua Scripting: Tutorial (Anfänger 1) (wird noch übersetzt)

Lua Scripting: Tutorial (Anfänger 2) (wird noch übersetzt)

Lua Scripting: Tutorial (Anfänger 3) (wird noch verfasst)

Lua Scripting: Tutorial (Zwischenstufe) (wird noch übersetzt)

Lua Scripting: Tutorial (Fortgeschritten) (wird noch verfasst)

Störung durch Adblocker erkannt!


Wikia ist eine gebührenfreie Seite, die sich durch Werbung finanziert. Benutzer, die Adblocker einsetzen, haben eine modifizierte Ansicht der Seite.

Wikia ist nicht verfügbar, wenn du weitere Modifikationen in dem Adblocker-Programm gemacht hast. Wenn du sie entfernst, dann wird die Seite ohne Probleme geladen.

Auch bei Fandom

Zufälliges Wiki