相互作用モデルで最適な機能を見つける


13

タンパク質のリストとその特徴値があります。サンプル表は次のようになります。

...............Feature1...Feature2...Feature3...Feature4  
Protein1  
Protein2  
Protein3  
Protein4  

行はタンパク質であり、列は機能です。

また、相互作用するタンパク質のリストもあります。例えば

Protein3, Protein4  
Protein1, Protein2  
Protein4, Protein1  

問題:予備的な分析のために、どの機能がタンパク質相互作用に最も寄与するかを知りたい。

私の理解では、通常、決定木はエントロピーに基づいて最も重要な機能を取得するために使用できますが、タンパク質ペア(つまり、相互作用)に拡張する方法はわかりません。そのような目的のための方法はありますか?


正しく理解できたら教えてください:タンパク質のペアの相互作用強度があり(たとえば、タンパク質が相互作用しない場合はゼロです)、値の相関が高い特徴のベクトルが必要です相互作用の強さは?または、言い換えると、タンパク質間の相互作用の強さを予測できるのはどれですか?
12

回答:


25

提示された問題を解決するための実際のレシピ(1つの可能な解決策)

私のお気に入りの機械学習ツールであるvowpal wabbitを使用して、この問題を簡単に解決できます。vowpalwabbitは、-qオプションで2次(クロス)機能をサポートします。

vowpalウサギの背景

使用方法の詳細に進む前に。vowpal wabbitは、分類と回帰の両方に対応した、高速でスケーラブルなオンライン機械学習ソフトウェアです。オンライン学習ツールとして完全なデータをメモリにロードする必要がないため、データサイズ(例の数)に制限なく、デスクトップで毎秒約500万の機能の学習(トレーニング)速度が得られます。他の多くの魅力的な機能があります。異なる学習アルゴリズム、複数の損失関数、スパース機能、混合機能タイプのサポートなど、この質問の範囲を超えています。

解説付きで問題を解決するための3つの手順を次に示します。

ステップ0:githubからvowpal wabbitを ダウンロードしてビルドします (サポートされている環境の下部にある注意を参照)

ステップ1: 各行が次のようなトレーニングセットを準備します。

1.0 protein1/protein2|A p1_feature1 p1_feature2 ... |B p2_feature1 ...
...

トレーニングセット形式の説明:

左端の数値1.0はラベル(相互作用の強さ、任意の数値)、2番目の文字列 ' protein1 / protein2 'は行にアイデンティティを与えるタグ、IOW: "この行はprotein1とprotein2 "; これはオプションであり、コメントと考えることができます。このタグ文字列は、どの予測がどの例に属するのかを識別するために、モデルからの予測にも反映されますが、ここでは予測していません。モデルをモデル化して調査しているだけです。次に、protein1の入力フィーチャの名前空間があります|A(名前空間を定義する必要があるため、異なる名前空間間を移動できます。A、実際には任意の単語を使用できますが、最初の文字は名前空間間で異なる必要があるため、コマンド呼び出しで名前空間と交差させることができます)、その後にprotein1の入力フィーチャのリストが続きp1_...ます。最後にprotein2の名前空間があります。|Bその後にprotein2 の機能名が続きp2_...ます。

vowpal wabbitの美しさの1つは、機能名に任意の文字列を使用できることです(内部的にハッシュしますが、気にしません)。トレーニングセットに含まれる特殊な文字は次のとおりです。

  • スペース(明らかに)
  • |、入力機能と名前空間の接頭辞、および
  • : 値から機能名を分離する

:我々は、すべてのタンパク質の機能名は、ブール値(存在)にそれらの値のデフォルトはそれほどを表し想定しているため、ここでは使用されていない1と、彼らは明示的な値を必要としません。

これでvowpal_wabbit(実行可能ファイル名vw)を実行し-q ABて、1つの機能がprotein1(名前空間で始まるA)とprotein2B)で始まる名前空間。vowpal_wabbitは、データを読み取り、学習して、タンパク質のペア間で何らかの相互作用をもたらすすべての機能の組み合わせの重みを持つモデルを作成します。ここでは、vw直接実行する代わりにvw-varinfo、最後のステップとしてvowpal wabbitに付属するラッパーユーティリティを使用して実行します。モデルを作成するためにvw-varinfo実行vwされ、人間が読める形式でモデルをダンプします。

ステップ3:次のようにvw-varinfoを呼び出します。

vw-varinfo -q AB -c --passes 20 your_data_set_file

vw-varinfoは、すべてのオプション(-q ... -c --passes ...)をそのまま渡しますvw-q AB2つの機能の名前空間を横断するためにのみ必要です。上記にもう1つのオプションを追加し(複数パスを実行)、より良い結果が得られると思います。

このコマンドは、vowpal wabbit(vw)を呼び出してデータセットのトレーニングを行い、探していると思われる出力を出力します。すべての機能の相互作用を強度と相対的な重みの順に示します。

入出力の例

入力にprot.dat、3つのタンパク質間の3方向の相互作用が含まれるとします。

1.0 protein1/protein2|A a b |B k m
0.6 protein2/protein3|A k m |B b c d
2.2 protein1/protein3|A a b |B b c d

これは意図的に非常に最小限の例です。 vwはるかに大きなデータセット(たとえば、数百万行、数百の機能)で問題はないはずです。また、例では相互作用強度ラベルを変更しました。相互作用がブールの「はい」または「いいえ」の場合、各行の最初のフィールドとして(相互作用0なし)または1(相互作用が存在する)を使用します。

ランニング:

vw-varinfo -q AB -c --passes 20 prot.dat

すべての可能な相互作用(名前空間AB出力の無視)とその重みを生成します。

FeatureName        HashVal   MinVal   MaxVal    Weight   RelScore
A^k                 220268     0.00     1.00   +0.3804    100.00%
A^k^B^k             254241     0.00     0.00   +0.3804    100.00%
A^k^B^m              93047     0.00     0.00   +0.3804    100.00%
B^k                 178789     0.00     1.00   +0.1011     26.58%
B^m                  17595     0.00     1.00   +0.1011     26.58%
[... trimmed for brevity ...]
A^m^B^m             141879     0.00     0.00   +0.0000      0.00%
Constant            116060     0.00     0.00   +0.1515      0.00%
A^b                 139167     0.00     1.00   -0.0641    -16.86%
A^b^B^k             204424     0.00     0.00   -0.1233    -32.43%
A^b^B^m              43230     0.00     0.00   -0.1233    -32.43%

このデータで、一般的な相互作用の最も強い寄与者は、1)k特徴の単なる存在、2)k自身と相互作用する特徴(両方のタンパク質がそれを持っていると仮定)、3)とk相互作用することmです。一方、最も弱い(タンパク質相互作用への負の寄与)は、b特徴と組み合わせられたm特徴です。

これはvw-varinfoのHOWTOページです

vowpal wabbitはソース(上記のリンクを参照)からビルドされ、Linux(および他のUNIX)、Mac OS-X、およびWindowsで実行されます。

HTH


それは、弱い相互作用を取り除くことでモデルの精度が向上することを直接意味しますか?
マット

必ずしも。学習する機能が増えると、精度が上がることがよくあります。ただし、機能が実際にノイズである場合、または一般化するにはあまりにもまれである場合、それらは可能性があります。ほとんどの実際のモデルには、エラーコンポーネントがあります。データが多いほど、モデルの精度に対する信頼性が高くなります。
アリエル

1

タンパク質相互作用ネットワークは無向グラフで表すことができ、タンパク質はノードを形成し、相互作用はエッジを形成します。タンパク質の相互作用がバイナリ現象である場合、エッジもバイナリ(ゼロまたは1)です。それ以外の場合は、実数を使用できます。このグラフを正方行列、特に対称行列として数値的に表すことができます。最も重要な特徴を見つけるために、相互作用行列の固有ベクトルに沿って最大の投影を持つ特徴を保持できます。


タンパク質は複数のタンパク質と相互作用する可能性があるため、グラフはバイナリではない場合があります。複数のエッジに拡張機能はありますか?
アニッシュ

それは私がバイナリで意味したものではありません。問題は、インタラクションの強度をキャプチャするかどうか、またはその存在をモデル化するのに十分かどうかです。確かに、グラフモデルはタンパク質の任意のペア間の相互作用を説明できます。
エムレ

うーん。タンパク質相互作用の正方行列を作成するように頼んだとき、行列の値はタンパク質間の相互作用の数を表していると思います。ただし、ここで機能を使用している場所はわかりません。それについて詳しく説明していただけますか?
アニッシュ

固有ベクトルは、特徴空間のタンパク質の線形結合です。
エムレ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.