Ich habe eine Liste von Proteinen mit ihren Merkmalswerten. Eine Beispieltabelle sieht folgendermaßen aus:
...............Feature1...Feature2...Feature3...Feature4
Protein1
Protein2
Protein3
Protein4
Zeilen sind Proteine und Spalten sind Merkmale.
Ich habe auch eine Liste von Proteinen, die ebenfalls interagieren. beispielsweise
Protein3, Protein4
Protein1, Protein2
Protein4, Protein1
Problem : Für eine vorläufige Analyse möchte ich wissen, welche Merkmale für Proteininteraktionen am meisten beitragen.
Ich verstehe, dass normalerweise Entscheidungsbäume verwendet werden könnten, um das wichtigste Merkmal basierend auf Entropie zu erhalten, aber ich bin nicht sicher, wie ich es auf Proteinpaare (dh Wechselwirkungen) ausdehnen soll. Gibt es eine Methode für diesen Zweck?
Antworten:
Tatsächliches Rezept zur Lösung des vorgestellten Problems (eine mögliche Lösung)
Es ist ganz einfach, dieses Problem mit meinem Lieblingswerkzeug für maschinelles Lernen, Vowpal Wabbit , zu lösen, das quadratische (Kreuz-) Funktionen über -q unterstützt Option .
Vowpal Wabbit Hintergrund
Bevor wir uns mit den Einzelheiten der Nutzung befassen. vowpal wabbit ist eine schnelle und skalierbare Online-Lernsoftware für Klassifizierung und Regression. Ich erhalte Lernraten von ungefähr 5 Millionen Funktionen pro Sekunde auf meinem Desktop, wobei die Datengröße (Anzahl der Beispiele) unbegrenzt ist, da es als Online-Lerntool nicht erforderlich ist, die vollständigen Daten in den Speicher zu laden. Es bietet viele weitere attraktive Funktionen: Unterstützung für verschiedene Lernalgorithmen, Mehrfachverlustfunktionen, spärliche Funktionen, gemischte Funktionstypen und mehr, die sich dem Rahmen dieser Frage entziehen.
Hier sind die 3 Schritte zur Lösung des Problems mit Kommentaren:
Schritt 0: Herunterladen und Erstellen von Vowpal Wabbit von Github (siehe Hinweis unten auf unterstützten Umgebungen)
Schritt 1: Bereiten Sie ein Trainingsset vor, in dem jede Zeile folgendermaßen aussieht:
Erklärung des Trainingsset-Formats:
Die am weitesten links stehende Zahl, 1.0 , ist die Bezeichnung (Interaktionsstärke, die ein beliebiger numerischer Wert sein kann), die zweite Zeichenfolge ' protein1 / protein2 ' ist ein Tag, um der Linie eine Identität zu verleihen. IOW: "Diese Linie repräsentiert die Interaktion zwischen protein1 und protein2 "; Es ist optional und kann als Kommentar betrachtet werden. Diese Tag-Zeichenfolge wird auch in Vorhersagen von Modellen wiederholt, um zu identifizieren, welche Vorhersage zu welchem Beispiel gehört. Wir sagen hier jedoch keine Vorhersage, sondern modellieren und studieren nur unser Modell. Als Nächstes folgt der Eingabefeature-Namensraum für protein1 (wir müssen einen Namensraum definieren, damit wir zwischen verschiedenen Namensräumen wechseln können, das muss nicht sein ' kann ein beliebiges Wort sein, der erste Buchstabe muss sich jedoch zwischen den Namensräumen unterscheiden, damit wir sie kreuzen können sie im Befehlsaufruf) gefolgt von der Liste der Eingabemerkmale für protein1 . Zuletzt folgt der Namensraum für protein2, gefolgt von den Merkmalnamen von protein2 .
|A
A
p1_...
|B
p2_...
Eine der Schönheiten von Vowpal Wabbit ist, dass Sie beliebige Zeichenfolgen für Feature-Namen verwenden können (sie werden intern gehasht, aber das ist Ihnen egal). Die einzigen Sonderzeichen im Trainingsset sind:
|
, um Eingabe-Features und Namensräume voranzustellen, und:
Feature-Namen von ihren Werten zu trennenDas
:
wird hier nicht verwendet, da angenommen wird, dass jeder Protein-Feature-Name einen Booleschen Wert (Existenz) darstellt, sodass dessen Werte standardmäßig verwendet werden1
und keine expliziten Werte erforderlich sind.Jetzt können Sie vowpal_wabbit ausführen (der Name der ausführbaren Datei lautet
vw
),-q AB
um automatisch Cross-Features (auch als Interaktionsbegriffe bezeichnet) zwischen allen möglichen Feature-Paaren zu erstellen, wobei ein Feature aus protein1 (Name beginnt mitA
) und das andere aus protein2 ( Name beginnt mit ) ausgewählt wird . Namensraum beginnend mitB
). vowpal_wabbit liest die Daten, lernt und erstellt ein Modell mit Gewichten für jede Merkmalskombination, die zu einer Interaktion zwischen dem Proteinpaar führt. Anstattvw
direkt ausgeführt zu werden, werden wir dasvw-varinfo
Wrapper-Dienstprogramm ausführen, das als letzten Schritt mit Vowpal Wabbit geliefert wird.vw-varinfo
wird ausgeführtvw
, um das Modell zu erstellen, und gibt das Modell in lesbarer Form aus.Schritt 3: Rufen Sie vw-varinfo folgendermaßen auf :
vw-varinfo übergibt alle Optionen (
-q ... -c --passes ...
) wie sie sindvw
. Lediglich die-q AB
für das Kreuzen der beiden Merkmale erforderlichen Namensräume sind von Bedeutung. Ich habe oben eine weitere Option hinzugefügt (mehrere Durchgänge ausführen), die meiner Meinung nach zu besseren Ergebnissen führen würde.Dieser Befehl ruft vowpal wabbit (
vw
) auf, um den Datensatz zu trainieren und die Ausgabe zu drucken, die Sie meiner Meinung nach suchen: alle Funktionswechselwirkungen in der Reihenfolge ihrer Stärke und ihrer relativen Gewichte.Beispiel für Ein- und Ausgabe
Angenommen, Ihre Eingabe
prot.dat
beinhaltet eine 3-Wege-Interaktion zwischen 3 Proteinen:Dies ist bewusst ein sehr minimalistisches Beispiel.
vw
Sollte es keine Probleme mit viel größeren Datensätzen geben (z. B. Millionen von Zeilen, Hunderte von Features), habe ich auch die Bezeichnungen für die Interaktionsstärke in den Beispielen geändert. Wenn in Ihrem Fall die Interaktion ein boolesches "Ja" oder "Nein" ist, verwenden Sie einfach0
(keine Interaktion) oder1
(Interaktion vorhanden) als erstes Feld in jeder Zeile.Laufen:
Ergibt alle möglichen Interaktionen (ignoriert die Namensräume
A
undB
in der Ausgabe) und deren Gewichtung:Dies zeigt, dass in diesen Daten die Interaktionen im Allgemeinen am stärksten von 1) dem Vorhandensein des
k
Merkmals, 2) derk
Interaktion des Merkmals mit sich selbst (vorausgesetzt, beide Proteine haben es) und 3) derk
Interaktion mit ihm abhängenm
. während das schwächsteb
Merkmal (negativer Beitrag zur Proteininteraktion) mit dem Merkmal gepaartm
ist.Hier ist eine HOWTO-Seite auf vw-varinfo
vowpal wabbit wird aus dem Quellcode erstellt (siehe Link oben) und läuft unter Linux (und möglicherweise anderen Unixen), Mac OS-X und Windows.
HTH
quelle
Proteininteraktionsnetzwerke können durch ungerichtete Graphen dargestellt werden, wobei Proteine die Knoten und deren Interaktionen die Kanten bilden. Wenn es sich bei der Proteininteraktion um ein binäres Phänomen handelt, sind die Kanten ebenfalls binär (null oder eins), andernfalls können Sie eine reelle Zahl verwenden. Sie können diesen Graphen numerisch als quadratische und insbesondere als symmetrische Matrix darstellen. Um die wichtigsten Merkmale zu finden, können Sie diejenigen beibehalten, die entlang der Eigenvektoren der Interaktionsmatrix die größte Projektion aufweisen.
quelle