Mam listę białek z ich wartościami funkcji. Przykładowa tabela wygląda następująco:
...............Feature1...Feature2...Feature3...Feature4
Protein1
Protein2
Protein3
Protein4
Rzędy to białka, a kolumny to cechy.
Mam również listę białek, które również wchodzą w interakcje; na przykład
Protein3, Protein4
Protein1, Protein2
Protein4, Protein1
Problem : W celu wstępnej analizy chcę wiedzieć, które cechy najbardziej przyczyniają się do interakcji białek.
Rozumiem, że zwykle drzewa decyzyjne można wykorzystać do uzyskania najważniejszej cechy opartej na entropii, ale nie jestem pewien, jak rozszerzyć ją na pary białek (tj. Interakcje). Czy istnieje metoda do takiego celu?
Odpowiedzi:
Rzeczywisty przepis na rozwiązanie przedstawionego problemu (jedno możliwe rozwiązanie)
Rozwiązanie tego problemu jest proste przy użyciu mojego ulubionego narzędzia do uczenia maszynowego, ślubnego wabbit, który obsługuje funkcje kwadratowe (krzyżowe) za pomocą opcji -q .
tło ślubny wabbit
Zanim przejdziemy do szczegółów użytkowania. samogłoska wabbit to szybkie i skalowalne oprogramowanie do uczenia maszynowego online do klasyfikacji i regresji. Na moim komputerze uzyskuję szybkość uczenia się wynoszącą około 5 milionów funkcji na sekundę bez ograniczeń wielkości danych (liczba przykładów), ponieważ jako narzędzie do nauki online nie wymaga ładowania pełnych danych do pamięci. Ma wiele innych atrakcyjnych funkcji: obsługę różnych algorytmów uczenia się, funkcje wielu strat, funkcje rzadkie, typy mieszane i wiele innych, które są poza zakresem tego pytania.
Oto 3 kroki do rozwiązania problemu z komentarzem:
Krok 0: Pobierz i zbuduj Wabpal Wpalbit z github (patrz uwaga na dole na temat obsługiwanych środowisk)
Krok 1: Przygotuj zestaw treningowy, w którym każda linia wygląda następująco:
objaśnienie formatu zestawu treningowego:
Lewa liczba, 1,0 , jest znacznikiem (siła interakcji, która może być dowolną wartością liczbową), drugi ciąg „ białko1 / białko2 ” jest znacznikiem, który nadaje linii identyczność, IOW: „ta linia reprezentuje interakcję między białkiem 1 a białko 2 ”; Jest to opcjonalne i możesz traktować to jako komentarz. Ten ciąg tagów jest również powtarzany w prognozach z modeli, aby określić, która prognoza należy do którego przykładu, ale nie przewidujemy tutaj, po prostu modelujemy i badamy nasz model. Następnie jest przestrzeń nazw funkcji wejściowej dla białka1
|A
(musimy zdefiniować przestrzeń nazw, abyśmy mogli przechodzić między różnymi przestrzeniami nazw, nie musi to byćA
, może być dowolnym słowem, ale pierwsza litera musi się różnić między przestrzeniami nazw, abyśmy mogli je przekreślić w wywołaniu polecenia), a następnie lista funkcji wprowadzania dla białka1p1_...
. Na końcu pojawia się przestrzeń nazw dla białka2:|B
następnie nazwy funkcji białka2p2_...
.Jedną z zalet ślubnego wabbita jest to, że możesz używać dowolnych ciągów znaków dla nazw funkcji (będzie je haszować wewnętrznie, ale nie obchodzi cię to). Jedynymi znakami specjalnymi w zestawie treningowym są:
|
, aby poprzedzić funkcje wprowadzania i przestrzenie nazw oraz:
aby oddzielić nazwy funkcji od ich wartościNie
:
jest tu używane, ponieważ zakładamy, że każda nazwa funkcji białka reprezentuje wartość logiczną (istnienie), więc ich wartości są domyślnie ustawione1
i nie potrzebują wartości jawnych.Teraz możesz uruchomić wedpal_wabbit (nazwa wykonywalna to
vw
),-q AB
aby automatycznie utworzyć funkcje krzyżowe (aka warunki interakcji) między wszystkimi możliwymi parami funkcji, w których jedna funkcja jest wybrana z białka1 (przestrzeń nazw zaczynająca się odA
), a druga z białka2 ( przestrzeń nazw zaczynająca się odB
). samogłoska_wabbit odczyta dane, nauczy się i utworzy model z wagami dla każdej kombinacji funkcji, która powoduje pewne interakcje między parą białek. Tutaj zamiast uruchamiaćvw
bezpośrednio, uruchomimy go za pomocąvw-varinfo
narzędzia do pakowania, które jest dostarczane wraz z wabbitem ślubnym, jako naszym ostatnim krokiem.vw-varinfo
uruchamia się,vw
aby utworzyć model, i zrzuca model w formie czytelnej dla człowieka.Krok 3: Zadzwoń do vw-varinfo w następujący sposób:
vw-varinfo przekaże wszystkie opcje (
-q ... -c --passes ...
) tak jak jestvw
.-q AB
Niezbędne jest tylko przejście przez dwie przestrzenie nazw funkcji. Dodałem jeszcze jedną opcję powyżej (uruchom wiele przejść), która moim zdaniem dałaby lepsze wyniki.Polecenie to wywołuje metodę ślubu wabbit (
vw
) w celu trenowania na zestawie danych i wypisuje dane wyjściowe, które, jak sądzę, szukasz: wszystkie interakcje cech w kolejności siły i ich względnych wag.Przykładowe wejście i wyjście
Załóżmy, że Twój wkład
prot.dat
obejmuje trójstronną interakcję między 3 białkami:Jest to celowo bardzo minimalistyczny przykład.
vw
nie powinienem mieć problemu z dużo większymi zestawami danych (np. milionami wierszy, setkami funkcji), a także zmieniłem etykiety siły interakcji w przykładach. Jeśli w twoim przypadku interakcja jest logicznym „tak” lub „nie”, po prostu użyj0
(brak interakcji) lub1
(interakcja istnieje) jako pierwsze pole w każdej linii.Bieganie:
Dałoby wszystkie możliwe interakcje (zignoruj przestrzenie nazw
A
iB
dane wyjściowe) i ich wagi:Pokazując, że w tych danych najsilniejszymi czynnikami przyczyniającymi się do jakichkolwiek interakcji są w ogólności 1) sama obecność
k
cechy, 2)k
cecha oddziałująca ze sobą (zakładając, że oba białka ją mają) i 3)k
oddziałującam
. podczas gdy najsłabsze (negatywny wkład w interakcję z białkami) tob
cecha sparowana zm
cechą.Oto strona HOWTO na vw-varinfo
Narzędzie Ślub Walbit buduje ze źródła (patrz link powyżej) i działa w systemie Linux (i ewentualnie w innych systemach uniksowych), Mac OS-X i Windows.
HTH
źródło
Sieci interakcji białek mogą być reprezentowane przez niekierowane wykresy, z białkami tworzącymi węzły, a ich interakcje krawędziami. Jeśli interakcja białek jest zjawiskiem binarnym, krawędzie są również binarne (zero lub jeden), w przeciwnym razie możesz użyć liczby rzeczywistej. Możesz liczbowo przedstawić ten wykres jako macierz kwadratową, a zwłaszcza symetryczną. Aby znaleźć najważniejsze cechy, możesz zachować te, które mają największą projekcję wzdłuż wektorów własnych macierzy interakcji.
źródło