様々な図面における同様の参照番号および指定は、同様の要素を示す。
図1は、例示的な構造予測システム100を示す。構造予測システム100は、以下で説明されるシステム、コンポーネント、および技法が実装される1つまたは複数の位置において、1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの例である。
構造予測システム100は、タンパク質104のアミノ酸配列102を定義するデータを処理して、タンパク質104の最終的な予測構造106を生成するように構成される。アミノ酸配列102の中の各アミノ酸は、アミノ官能基およびカルボキシル官能基、ならびにアミノ酸に固有の側鎖(すなわち、原子団)を含む、有機化合物である。最終的な予測構造106は、タンパク質104がタンパク質フォールディングを経た後のタンパク質104のアミノ酸配列102における原子の3次元構成の推定を定義する。タンパク質フォールディングは、(たとえば、タンパク質104のアミノ酸配列102によって定義される)アミノ酸の配列、たとえばランダムコイルが、固有の3次元構成(たとえば、最終的な予測構造106によって推定されるような)へと折りたたまれる物理的な過程を指す。構成は固有であるものとして説明されるが、これは、タンパク質が何らかの状況のもとで異なるように折りたたまれてはならないことを意味しない。図2は、折りたたまれていないタンパク質および折りたたまれたタンパク質の例示を与える。
タンパク質の構造は、タンパク質の生物学的機能を決定する。したがって、タンパク質構造を決定することは、生命現象(たとえば、多くの疾患の機序を含む)の理解と、タンパク質の設計(たとえば、薬品としての、または工業プロセスのための酵素としての)とを容易にし得る。たとえば、どの分子(たとえば、薬品)がタンパク質に結合するか(およびどこで結合が発生するか)は、タンパク質の構造に依存する。薬品の有効性は、(たとえば、血中で)それらがタンパク質に結合する程度により影響され得るので、様々なタンパク質の構造を決定することは、薬品開発の重要な側面であり得る。しかしながら、物理的な実験を使用して(たとえば、X線結晶構造解析によって)タンパク質構造を決定することは、時間がかかり非常に高価であり得る。したがって、アミノ酸配列からタンパク質構造を予測することによって、システム100は、タンパク質が関わる生化学の研究および工学(たとえば、薬品開発)の分野を支援することができる。
アミノ酸配列102は、任意の適切な数値フォーマットで表され得る。たとえば、アミノ酸配列102は、ワンホットベクトルの列として表され得る。この例では、ワンホットベクトルの列の中の各ワンホットベクトルは、アミノ酸配列102の中の対応するアミノ酸を表す。ワンホットベクトルは、(たとえば、所定の数のアミノ酸の)各々の異なるアミノ酸に対して異なる成分を有する。特定のアミノ酸を表すワンホットベクトルは、特定のアミノ酸に対応する成分において値1(または何らかの他の所定の値)を、および他の成分において値0(または何らかの他の所定の値)を有する。
アミノ酸配列102の構造(たとえば、システム100によって出力される最終的な予測構造106)は、構造パラメータのセットの値によって定義される。いくつかの実装形態では、構造パラメータは、3次元(3D)数値座標(たとえば、3Dベクトルとして表される)の列であり、ここで各座標は、アミノ酸配列102からのあるアミノ酸の中の対応する原子の位置(何らかの所与の基準枠における)を表す。たとえば、構造パラメータは、構造の中のアミノ酸のα炭素原子のそれぞれの位置を表す3D数値座標の列であり得る。主鎖原子と本明細書で呼ばれるα炭素原子は、アミノ官能基、カルボキシル官能基、および側鎖と結合しているアミノ酸の中の炭素原子を指す。いくつかの実装形態では、構造パラメータは、構造の中のアミノ酸の特定の原子間のねじれ(すなわち、二面)角の列である。たとえば、構造パラメータは、具体的にはα炭素の両側への、構造の中のアミノ酸の主鎖原子間のファイ(φ)、プサイ(ψ)、および任意選択でオメガ(ω)二面角の列であり得る(ペプチド結合は通常、0度または180度に近くなるようにωを制約する)。
システム100は、1つまたは複数の検索コンピューティングユニット(たとえば、検索コンピューティングユニット108および110)を含む。検索コンピューティングユニットの各々は、現在の予測構造(たとえば、現在の予測構造112および114)を維持して、1つまたは複数の検索反復の各々において、現在の予測構造を代替的な予測構造(たとえば、代替的な予測構造116または118のうちの1つ)に更新するかどうかを決定するように構成される。一般に、各検索コンピューティングユニットは、とり得る最高の品質スコア(たとえば、品質スコア120または122)を伴う予測構造を決定することを担う。(たとえば、図7を参照して)以下でより詳しく説明されるように、各検索コンピューティングユニットは、品質スコアの高い予測フォールディング構造を中央メモリ124に記憶することができる。検索コンピューティングユニットは、中央メモリ124に記憶されている予測構造を断片化して、それぞれの現在の予測構造を更新するために使用される構造断片を決定することができ、システムは、中央メモリ124に記憶されている予測構造を選択することによって、タンパク質104の最終的な予測構造106を決定することができる。
予測構造の品質スコアは一般に、予測構造の品質を特徴付ける。たとえば、図5を参照してより詳しく説明されるように、予測構造の品質スコアは、予測構造とタンパク質104の実際の構造との間の推定される類似性、予測構造の中のアミノ酸の主鎖原子間の距離に基づく予測構造の尤度、または両方を特徴付け得る。一般に、予測構造の品質スコアは、アミノ酸配列102の中のアミノ酸の原子の適切なサブセットに基づいて(たとえば、主鎖原子だけに基づき、いずれの他の原子には基づかずに)、またはアミノ酸配列102の中のアミノ酸の各々の原子のすべてに基づいて、決定され得る。アミノ酸の中の主鎖原子だけに基づく予測構造の品質スコアは主鎖原子スコアと呼ばれることがあり、一方、アミノ酸の各々の原子のすべてに関して決定される品質スコアは全原子スコアと呼ばれることがある。
各検索コンピューティングユニットは、たとえば、コンピュータ、複数のコアを有するコンピュータ内のコア、または、動作(たとえば、検索反復)を独立に実行することが可能なコンピュータ内の他のハードウェアもしくはソフトウェア、たとえば専用スレッドであり得る。検索コンピューティングユニットは、プロセッサコア、プロセッサ、マイクロプロセッサ、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)もしくはASIC(特定用途向け集積回路)、または任意の他の適切なコンピューティングユニットを含み得る。いくつかの例では、検索コンピューティングユニットは、すべて同じタイプのコンピューティングユニットである。他の例では、検索コンピューティングユニットは、異なるタイプのコンピューティングユニットであり得る。たとえば、ある検索コンピューティングユニットはCPUであり得るが、他の検索コンピューティングユニットはGPUであり得る。検索コンピューティングユニットは、同期しないで動作するように構成され得る。より具体的には、各検索コンピューティングユニットは、各々の他の検索コンピューティングユニットとは独立に検索反復を実行するように構成され得る。
各検索コンピューティングユニットは、それぞれの現在の予測構造を反復的に更新することによって、タンパク質104の予測構造(その各々が異なる品質スコアと関連付けられる)のそれぞれの軌跡(すなわち、列)を生成する。各検索反復において、各検索コンピューティングユニットは、中央メモリ更新条件が満たされるかどうかを決定することができ、中央メモリ更新条件が満たされるとの決定に応答して、現在の予測構造を中央メモリ124に記憶することができる。中央メモリ124に予測構造を記憶することは、予測構造を定義する構造パラメータの値を中央メモリ124に記憶することを指す。検索コンピューティングユニットは、たとえば、現在の予測構造の品質スコアが、その検索反復までに検索コンピューティングユニットによって生成された予測構造の軌跡の中の最高の品質スコアである場合、中央メモリ更新条件が満たされると決定し得る。この例では、中央メモリ124は、検索コンピューティングユニットによって生成される最も「有望な」予測構造(たとえば、これはアミノ酸配列102の実際の構造を正確に近似する可能性が最も高い)を記憶するために動的に更新される。中央メモリ124は、たとえば論理データ記憶エリアまたは物理的なデータ記憶デバイスとして実装され得る、(統合されたまたは分散した)データストアである。
各検索コンピューティングユニットは、構造断片を記憶するように構成されるそれぞれのローカルメモリ(たとえば、ローカルメモリ126または128)を維持する。各構造断片は、アミノ酸配列102の中のアミノ酸のサブ配列(すなわち、断片)の予測構造を特徴付ける。各構造断片は、(i)アミノ酸配列102のそれぞれのサブ配列を示すデータ、および(ii)アミノ酸配列102のそれぞれのサブ配列の中のアミノ酸の構造を特徴付ける構造パラメータのセットの値によって定義される。ある特定の例では、アミノ酸配列102が[A,C,E,F,D,G,G,A]によって与えられる場合(たとえば、Aはアミノ酸アラニンの記号であり、Cはアミノ酸システインの記号である、など)、構造断片は、アミノ酸配列102の中のアミノ酸の連続するサブ配列[C,E,F]の予測構造を特徴付け得る。この例では、構造断片は、(i)アミノ酸のサブ配列[C,E,F]を示すデータ、および(ii)アミノ酸C、E、およびFの主鎖原子間のねじれ角を含む構造パラメータの値によって定義され得る。後でより詳しく説明されるように、システム100は、各検索コンピューティングユニットのそれぞれのローカルメモリを初期化して更新するように構成される、ローカルメモリ更新システム130を含む。
各検索コンピューティングユニットは、(前に説明されたような)検索コンピューティングユニットによって実行される複数の検索反復の各々において、それぞれの現在の予測構造を代替的な予測構造(たとえば、代替的な予測構造116または118)に更新するかどうかを決定する。特に、各検索反復において、各検索コンピューティングユニットは、検索コンピューティングユニットによって維持されるローカルメモリから1つまたは複数のそれぞれの構造断片(たとえば、構造断片132または134)を取得し、各々の取得された構造断片からそれぞれの代替的な予測構造を生成する。検索コンピューティングユニットは、そのローカルメモリから所定の数の構造断片をランダムにサンプリングすることによって、そのローカルメモリから構造断片を取得し得る。検索コンピューティングユニットは、(i)検索コンピューティングユニットによって維持される現在の予測構造の一部分、および(ii)取得された構造断片を含むものとして、各々の代替的な予測構造を決定することができる。このようにして、検索コンピューティングユニットは、それぞれの構造断片を使用して検索コンピューティングユニットによって維持される現在の予測構造の「擾乱」として、各々の代替的な予測構造を生成する。タンパク質の現在の予測構造をタンパク質の代替的な予測構造に更新するかどうかを決定するための例示的なプロセスは、図8を参照してさらに説明される。
各構造断片のサイズ(たとえば、構造断片に対応するアミノ酸配列102のサブ配列の中のアミノ酸の数)および各反復において検索コンピューティングユニットによって生成される代替的な予測構造の数は、検索コンピューティングユニットハイパーパラメータである。一般に、そのようなハイパーパラメータは、検索コンピューティングユニット間で異なっていてもよく、(たとえば、固定されたスケジュールに従って、またはハイパーパラメータ選択ニューラルネットワークの出力によって指定されるように)単一の検索コンピューティングユニット内での反復の間に変化してもよい。
各検索コンピューティングユニットは、スコアリングシステム(たとえば、スコアリングシステム136)を使用して、各々のそれぞれの代替的な予測構造に対するそれぞれの数値品質スコア(たとえば、品質スコア120または122)を決定する。前に説明されたように、予測構造に対する品質スコアは一般に、構造の品質を特徴付ける。スコアリングシステム136の例は、図5に関連して説明される。代替的な予測構造の品質スコアとともに、検索コンピューティングユニットは、検索コンピューティングユニットによって維持される現在の予測構造の品質スコアを取得する。たとえば、検索コンピューティングユニットは、以前の検索反復においてスコアリングシステム136を使用して決定された現在の予測構造の品質スコアを維持し得る。
各検索コンピューティングユニットは、代替的な予測構造の品質スコアおよび現在の予測構造の品質スコアを使用して、それぞれの現在の予測構造を代替的な予測構造のいずれかに更新するかどうかを決定する、更新エンジン(たとえば、更新エンジン138)を含む。
いくつかの実装形態では、更新エンジンは、品質スコアに基づいて決定論的な手順を使用して、現在の予測構造を代替的な予測構造に更新するかどうかを決定し得る。たとえば、更新エンジンは、特定の代替的な予測構造が、現在の予測構造および他の代替的な予測構造のいずれよりも高い品質スコアを有する場合、現在の予測構造を特定の代替的な予測構造に更新すると決定し得る。この例では、現在の予測構造が代替的な予測構造のいずれよりも高い品質スコアを有する場合、更新エンジンは、現在の予測構造を代替的な予測構造のいずれにも更新しないと決定し得る。
いくつかの実装形態では、更新エンジンは、品質スコアに基づいて、確率論的な手順(すなわち、何らかのランダム性を伴う)を使用して、現在の予測構造を代替的な予測構造に更新するかどうかを決定し得る。たとえば、更新エンジンは、品質スコアを使用して、現在の予測構造および代替的な予測構造の各々を含む構造のセットの確率分布を決定し得る。ある特定の例では、更新エンジンは、ソフトマックス関数を使用して、現在の予測構造および代替的な予測構造の各々のそれぞれの品質スコアを処理することによって、確率分布を決定し得る。更新エンジンは、確率分布を使用して、現在の予測構造および代替的な予測構造の各々を含む構造のセットからサンプリングされた構造に、現在の予測構造を更新すると決定し得る。確率論的な手順を使用して現在の予測構造を代替的な予測構造に更新するかどうかを決定することによって、システム100は、あり得るタンパク質構造の空間を「探索」し、それにより、より正確な予測構造を決定できる可能性がある(図8を参照してさらに説明されるように)。
システム100は、検索コンピューティングユニットのローカルメモリを初期化して更新するように構成される、ローカルメモリ更新システム130を含む。検索コンピューティングユニットのローカルメモリを初期化することは、検索コンピューティングユニットによって実行される最初の検索反復の前にローカルメモリに複数の構造断片を記憶することを指す。検索コンピューティングユニットのローカルメモリを更新することは、検索コンピューティングユニットによって実行される検索反復間で、異なる構造断片をローカルメモリに含める(および場合によってはローカルメモリから構造断片を削除する)ことを指す。図3を参照してより詳しく説明されるように、ローカルメモリ更新システム130は、たとえば、検索コンピューティングユニットによって中央メモリに記憶されている予測構造から取得された構造断片を使用して、検索コンピューティングユニットのローカルメモリを更新することができる。それにより、ローカルメモリ更新システム130は、各検索コンピューティングユニットが、現在の予測構造を更新する際に他の検索コンピューティングユニットによって生成される次第に改良される予測構造を利用することを可能にできる。
タンパク質104の最終的な予測構造106を決定するために、システム100は、中央メモリ124に記憶されている予測構造を選択する。一般に、中央メモリ124に記憶されている各予測構造はスコアと関連付けられ、システム100は、スコアに基づいて中央メモリ124の中の予測構造を選択することによって、最終的な予測構造106を決定する。たとえば、システム100は、中央メモリ124に記憶されている最高のスコアを有する予測構造となるように、最終的な予測構造106を決定し得る。中央メモリ124に記憶されている予測構造と関連付けられるスコアは、たとえば、主鎖原子品質スコアまたは全原子品質スコアであり得る。
いくつかの場合、全原子品質スコアを決定することは、主鎖原子品質スコアを決定することより計算集約的であり得る。すなわち、予測構造の全原子品質スコアを決定することは、予測構造の主鎖原子品質スコアを決定することよりも、多くのメモリ、多くの算術演算の実行、または両方を必要とし得る。計算リソース消費を減らすために、各検索コンピューティングユニットは、検索コンピューティングユニットによって維持されるそれぞれの現在の予測構造を更新し、主鎖原子品質スコアに基づいて中央メモリ124を更新するように構成され得る。しかしながら、最終的な予測構造106を決定するために、システムは、中央メモリ124に記憶されている各予測構造に対する全原子品質スコアを決定し、これらの全原子スコアに基づいて最終的な予測構造106を選択し得る。
一般に、各検索コンピューティングユニットのローカルメモリおよび中央メモリ124は各々、統合されたまたは分散したフォーマットで実装され得る。たとえば、検索コンピューティングユニットのローカルメモリは、検索コンピューティングユニットの他のコンポーネント(たとえば、検索コンピューティングユニットのスコアリングシステムおよび更新システム)とは物理的に離れたデータストアとして実装され得る。別の例として、中央メモリ124は、分散型のデータストアとして実装され得る。この例では、各検索コンピューティングユニットは、別個の「中央メモリ」を維持してもよく、中央メモリ124は、各検索コンピューティングユニットによって維持されるそれぞれの中央メモリの組合せとして理解され得る。
いくつかの場合、中央メモリに記憶されている各予測構造は、(i)予測構造を生成した検索コンピューティングユニットのハイパーパラメータのセット、および(ii)予測構造の品質スコア(たとえば、主鎖原子品質スコアまたは全原子品質スコア)と関連付けられ得る。検索コンピューティングユニットのハイパーパラメータは、たとえば、検索コンピューティングユニットが現在の予測構造をどれだけ容易に更新するかを特徴付ける温度ハイパーパラメータ(後でより詳しく説明されるような)、検索コンピューティングユニットによって実行される検索反復の回数などを指定する、パラメータを含み得る。各検索コンピューティングユニットは、中央メモリに記憶されている予測構造のそれぞれの品質スコアに基づく、それらの予測構造の確率分布に従って、中央メモリに記憶されている予測構造と関連付けられるハイパーパラメータ値のセットをサンプリングすることによって、ハイパーパラメータ値を繰り返し更新し得る。これは、検索コンピューティングユニットのハイパーパラメータの自動最適化につながり得る。
図2は、折りたたまれていないタンパク質および折りたたまれたタンパク質の例示である。折りたたまれていないタンパク質は、アミノ酸の配列、たとえばランダムコイルである。折りたたまれていないタンパク質は、タンパク質フォールディングを経て、固有の3D構成へと折りたたまれる。タンパク質構造は、安定した局所的なフォールディングパターンを含むことが多く、これは、αヘリックス(たとえば、202により示されるような)およびβシートなどの、二次構造と呼ばれることがある。折りたたまれたタンパク質の構造は、構造パラメータのセットの値によって定義され得る。たとえば、204によって示されるように、構造パラメータは、所与の基準枠における折りたたまれたタンパク質のアミノ酸の主鎖原子のそれぞれの位置を表す3D数値座標(たとえば、[x,y,z]座標)の列であり得る。
図3は、例示的なローカルメモリ更新システム130のブロック図である。ローカルメモリ更新システム130は、以下で説明されるシステム、コンポーネント、および技法が実装される1つまたは複数の位置において、1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの例である。
ローカルメモリ更新システム130は、(たとえば、図1に関連して説明されたように)検索コンピューティングユニットのローカルメモリを初期化して後で継続的に更新するように構成される。検索コンピューティングユニット302は、(図1に関連して説明されたような)構造予測システム100に含まれる任意の検索コンピューティングユニットとして理解されるべきである。検索コンピューティングユニット302のローカルメモリ304を初期化することは、検索コンピューティングユニット302によって実行される第1の検索反復の前に、複数の構造断片306をローカルメモリ304に記憶することを指す。検索コンピューティングユニット302のローカルメモリ304を更新することは、検索コンピューティングユニット302によって実行される検索反復間で、異なる構造断片306をローカルメモリ304に含める(および場合によってはローカルメモリ304から構造断片を削除する)ことを指す。便宜的に、以下のローカルメモリ更新システム130の説明は、検索コンピューティングユニット302のローカルメモリ304を更新することを指す。しかしながら、検索コンピューティングユニット302のローカルメモリ304を更新するために使用される(以下で説明されるような)同じ手順が、検索コンピューティングユニットのローカルメモリ304を初期化するために同様に適用され得る。
ローカルメモリ更新システム130は、検索コンピューティングユニット302に対するローカルメモリ更新条件が満たされるときは常に、検索コンピューティングユニット302のローカルメモリ304を更新する。たとえば、検索コンピューティングユニット302に対するローカルメモリ更新条件は、ローカルメモリ更新システム130が検索コンピューティングユニット302のローカルメモリ304を最後に更新してから、検索コンピューティングユニット302が所定の回数の検索反復を実行した場合に、満たされ得る。別の例として、検索コンピューティングユニット302に対するローカルメモリ更新条件は、所定の回数の反復にわたる、検索コンピューティングユニット302によって維持される現在の予測構造の品質スコアの平均の向上が、所定の閾値を下回る場合に満たされ得る。この例では、現在の予測構造の品質スコアの平均の向上が閾値を下回ることは、検索コンピューティングユニット302が現在の予測構造の改善を続けることを可能にするために、ローカルメモリ304が異なる構造断片で「リフレッシュ」される必要があることを示し得る。
いくつかの実装形態では、ローカルメモリ更新システム130は、異なる構造断片306を取得して、現在ローカルメモリ304の中にある構造断片をその異なる構造断片で置き換えることによって、ローカルメモリ304を更新する。いくつかの実装形態では、ローカルメモリ更新システム130は、異なる構造断片306を取得し、置換ポリシーを使用して現在ローカルメモリ304の中にある構造断片を部分的に置き換えることによって、ローカルメモリ304を更新する。たとえば、置換ポリシーは、first-in-first-out(FIFO)置換ポリシーであってもよく、最も早くローカルメモリ304に含まれていた構造断片が、異なる構造断片306によって置き換えられる。
ローカルメモリ更新システム130は、様々な異なる方法で、検索コンピューティングユニット302のローカルメモリ304に含められるべき構造断片306を生み出し得る。たとえば、以下でより詳しく説明されるように、ローカルメモリ更新システム130は、(i)中央メモリ124に記憶されている予測構造を断片化すること、(ii)異なるタンパク質の既知の構造の構造データベース308に記憶されている実際の構造を断片化すること、(iii)断片生成システム310に含まれる生成ニューラルネットワークを使用して構造断片を生成すること、または(iv)これらの組合せによって、構造断片を生み出し得る。タンパク質の構造を断片化することは、タンパク質の構造から1つまたは複数の構造断片を抽出することを指す。
いくつかの実装形態では、ローカルメモリ更新システム130は、検索コンピューティングユニットによって、中央メモリ124に記憶されている予測構造を使用して構造断片306を生み出す。より具体的には、ローカルメモリ更新システム130は、サンプリングエンジン314を使用して中央メモリ124から構造312をサンプリングし、断片化エンジン316を使用して構造312を処理して、構造312から複数の構造断片を決定し得る。
サンプリングエンジン314は、中央メモリ124に記憶されている予測構造と関連付けられるスコアに従って、中央メモリ124から予測構造をサンプリングし得る。前に説明されたように、中央メモリ124に記憶されている各予測構造は、品質スコア(たとえば、主鎖原子品質スコアまたは全原子品質スコア)と関連付けられ得る。たとえば、中央メモリ124から予測構造をサンプリングするために、サンプリングエンジン314は、中央メモリ124に記憶されている構造の関連するスコアを使用して(たとえば、ソフトマックス関数を使用してスコアを処理することによって)、それらの構造の確率分布を決定し得る。サンプリングエンジンは次いで、決定された確率分布に従って、中央メモリ124から予測構造をサンプリングし得る。
断片化エンジン316は、中央メモリ124からサンプリングされた予測構造を処理して、複数の構造断片306を生成することができる。たとえば、断片化エンジン316は、予測構造を複数の構造断片に区分することによって構造断片306を生成することができ、各構造断片は、アミノ酸配列102のアミノ酸残基の連続する配列の構造を定義する。
いくつかの実装形態では、ローカルメモリ更新システム130は、構造データベース308に記憶されている様々なタンパク質の実際の構造を使用して、構造断片306を生み出す。構造データベース308に記憶されている様々なタンパク質の実際の構造は、X線結晶構造解析などの物理的な実験方法を使用して決定されたものであってもよい。ローカルメモリ更新システムは、サンプリングエンジン314を使用して構造データベース308からの構造を(たとえば、ランダムに)サンプリングし、断片化エンジン316を使用してサンプリングされた構造を処理し、構造断片306を決定することができる。
いくつかの実装形態では、ローカルメモリ更新システム130は、断片生成システム310を使用して構造断片を生成する。図4を参照してさらに説明されるように、断片生成システムは、現実的な構造断片306を定義するネットワーク出力を生成するように訓練される生成ニューラルネットワークを含む。断片生成システム310は、機械学習訓練技法を使用して、様々なタンパク質の実際の構造のデータベース(たとえば、構造データベース308)について訓練され得る。
図4は、例示的な断片生成システム310のブロック図である。断片生成システム310は、以下で説明されるシステム、コンポーネント、および技法が実装される1つまたは複数の位置において、1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの例である。
断片生成システム310は、アミノ酸配列102を含む入力を受け取り、入力を処理してアミノ酸配列102に対応する現実的な構造断片402を生成するように構成される。断片生成システム310によって生成される各構造断片402は、生成ニューラルネットワーク406によって生み出される構造パラメータ404によって定義され、アミノ酸配列102の中のアミノ酸のサブ配列の現実的な構造を特徴付ける。一般に、断片生成システム310は、アミノ酸配列102の中のアミノ酸の任意のサブ配列に対して、多数の異なる現実的な構造断片402を生成するために使用され得る。構造断片は、自然世界において見出される実際のタンパク質構造により満たされる物理的および生化学的な制約に断片が概ね適合する場合、「現実的」であると理解され得る。たとえば、現実的な構造断片は、水に曝される疎水部分を含む可能性が低いことがあり、それは、この構成は、自然世界において見出される実際のタンパク質構造において存在する可能性が低いことがあるからである。
構造断片402を生成するために、断片生成システム310は、特徴量生成エンジン408を使用して、生成ニューラルネットワーク406に対するネットワーク入力410を生成する。ネットワーク入力410は、アミノ酸配列102の表現、アミノ酸配列102に対応する整列特徴量412、または両方を含み得る。整列特徴量412は、類似するアミノ酸配列102を伴う他のタンパク質、たとえば同種のタンパク質からのアミノ酸配列の多重配列整列(MSA)から導かれる。MSAは、アミノ酸配列102に類似した配列のアミノ酸を伴う複数の他のタンパク質からのアミノ酸配列の中のアミノ酸間の対応関係を指す(たとえば、揃わないギャップの挿入および/または残基の欠失を除き、同じである)。MSAの配列間での2つのアミノ酸残基の位置の相関する変化は、どのアミノ酸が接触する可能性があるかを示すものであり得る。特徴量生成エンジン408は、任意の適切な計算配列整列技法(たとえば、プログレッシブアライメント構築)を使用して、他のタンパク質のアミノ酸配列(たとえば、データベースに記憶されている)を処理することによって、MSAを生成することができる。特徴量生成エンジン408は、S.Seemayer、M.Gruber、およびJ.Soding:「CCMpred:fast and precise prediction of protein residue-residue contacts from correlated mutations」、Bioinformatics、2014に関連して説明されるものなどの、MSAの表現およびMSAから導かれる統計特徴量(たとえば、二次統計特徴量)を含む、整列特徴量412を生成することができる。整列特徴量412は、1D、2D、または任意の他の適切な次元であり得る。いくつかの例示的な特徴量が後で説明される。
いくつかの場合、ネットワーク入力410は、アミノ酸配列102全体を特徴付けるデータを含む(たとえば、ネットワーク入力410は、アミノ酸配列102の中の各アミノ酸の表現を含む)。いくつかの他の場合には、ネットワーク入力410は、アミノ酸配列102の中のアミノ酸の適切なサブセット(すなわち、アミノ酸配列102の中の各アミノ酸ではなく)だけを特徴付けるデータを含む。
断片生成システム310は、生成ニューラルネットワーク重みの現在値に従ってネットワーク入力410を処理して構造パラメータ404を生成するように構成される、生成ニューラルネットワーク406にネットワーク入力410を提供する。構造パラメータは、たとえば、アミノ酸配列102のアミノ酸のセットの主鎖原子に対する、主鎖原子ねじれ角または主鎖原子座標であり得る。いくつかの実装形態では、構造パラメータ404はアミノ酸配列102全体の構造を定義し、断片生成システム310は構造パラメータ404を断片化することによって構造断片を生成する。いくつかの実装形態では、構造パラメータ404は、アミノ酸配列102の断片(すなわち、適切なサブセット)の構造を定義する。
構造パラメータ404を生成するために、生成ニューラルネットワークは、ネットワーク入力410を処理して、構造パラメータ404の各々に対して、構造パラメータのとり得る値にわたるそれぞれの確率分布を定義するデータを生成するように構成される。たとえば、構造パラメータ404が主鎖原子ねじれ角である場合、構造パラメータのとり得る値にわたる確率分布を定義するデータは、フォンミーゼス確率分布の混合物のパラメータの値であり得る。別の例として、構造パラメータ404が主鎖原子座標である場合、構造パラメータのとり得る値にわたる確率分布を定義するデータは、ガウス確率分布の平均および標準偏差の値であり得る。各構造パラメータ404を生成するために、断片生成システム310は、構造パラメータのとり得る値にわたる確率分布に従って、構造パラメータの値をサンプリングする。
断片生成システム310は構造パラメータ404を非決定論的に(すなわち、確率分布からのサンプリングによって)生成するので、断片生成システムは、所与のネットワーク入力410から多くの異なる現実的な構造断片402を生み出すことができる。
一般に、生成ニューラルネットワーク406は、任意の適切なニューラルネットワークアーキテクチャを使用して実装され得る。いくつかの例が後に続く。
いくつかの場合、生成ニューラルネットワーク406は、構造パラメータ404の各々に対応する確率分布を逐次生成する(すなわち、構造パラメータ404の順序に従って)ように構成され得る。これらの場合、特定の構造パラメータのとり得る値にわたる確率分布を生成するために、生成ニューラルネットワーク406は、ネットワーク入力410と、1つまたは複数の前の構造パラメータの以前に決定された値を定義するデータとを処理するように構成され得る。前の構造パラメータとは、構造パラメータの順序において特定の構造パラメータの前にある構造パラメータを指す。
たとえば、生成ニューラルネットワーク406のアーキテクチャは、A.Van Den Oord、S.Dieleman、H.Zen他、「A generative model for raw audio」、arXiv:1609.03499v2、2016に関連して説明されるような、WaveNet生成ニューラルネットワークのアーキテクチャから導かれ得る。この例では、生成ニューラルネットワーク406のアーキテクチャは、畳み込みサブネットワーク(1つまたは複数のマスクされた畳み込み層を含む)および出力層を含み得る。所与の構造パラメータのとり得る値にわたる確率分布を生成するために、畳み込みサブネットワークは、ネットワーク入力410と、1つまたは複数の前の構造パラメータの以前に決定された値とを含む畳み込みサブネットワーク入力を処理して、畳み込みサブネットワーク出力を生成し得る。出力層は、所与の構造パラメータに対して生成される畳み込みサブネットワーク出力を処理して、所与の構造パラメータのとり得る値にわたる確率分布を定義する出力を生成するように構成される、ソフトマックス層であり得る。
いくつかの場合、生成ニューラルネットワーク406は、以前の確率分布に従って、潜在変数空間から1つまたは複数の潜在変数をサンプリングすることによって、構造パラメータ404の各々に対応する確率分布を生成するように構成され得る。生成ニューラルネットワーク406は、サンプリングされた潜在変数およびネットワーク入力410(たとえば、アミノ酸配列102の表現を含む)を処理して、構造パラメータ404の各々に対応する確率分布を生成することができる。これらの場合、以前の確率分布は、生成ニューラルネットワーク406が訓練される前に選択される恣意的な確率分布(たとえば、平均が0で標準偏差が1の標準ガウシアン)であり得る。
たとえば、生成ニューラルネットワーク406のアーキテクチャは、K.Gregor、I.Danihelka、A.Graves他:「DRAW:a recurrent neural network for image generation」、arXiv:1502.04623v2、2015に関連して説明されるような、変分オートエンコーダ、特にDRAW生成ニューラルネットワークのアーキテクチャから導かれ得る。この例では、生成ニューラルネットワークのアーキテクチャは、再帰デコーダサブネットワークを含み得る。複数の内部時間ステップの各々において、生成ニューラルネットワーク406は、以前の確率分布に従って潜在変数をサンプリングし、サンプリングされた潜在変数を、内部時間ステップに対する再帰デコーダサブネットワークへの入力として提供するように構成され得る。再帰デコーダサブネットワークは、サンプリングされた潜在変数およびネットワーク入力410を使用して、再帰デコーダサブネットワークの内部状態を更新するように構成され得る。生成ニューラルネットワーク406は、時間ステップに対する再帰デコーダサブネットワークの更新された内部状態を使用して、生成ニューラルネットワーク406の「キャンバス」内部状態の値を更新するように構成され得る。最後の内部時間ステップの後、生成ニューラルネットワーク406のキャンバス内部状態の値が、構造パラメータ404の各々に対応する確率分布を定義する。たとえば、キャンバス内部状態の値は、構造パラメータ404の各々に対するそれぞれの確率分布のパラメータを定義するそれぞれの値を含み得る。DRAW生成ニューラルネットワーク406の例示的なアーキテクチャは、図21に関連して示される。
いくつかの場合、生成ニューラルネットワーク406は、1つまたは複数の畳み込み層(たとえば、2D畳み込み層)を、続いてプーリング層を使用して、ネットワーク入力410に含まれる整列特徴量412を処理し得る。
生成ニューラルネットワーク406は、様々なタンパク質の実際の構造(たとえば、実験的に決定される)のデータベース308に基づいて、訓練エンジン414によって訓練され得る。より具体的には、生成ニューラルネットワーク重みの値は、ネットワーク入力410を処理することによって現実的な構造断片402を定義する構造パラメータ404を生成ニューラルネットワーク406に生成させるために、機械学習訓練技法(たとえば、確率的勾配降下法)を使用して繰り返し更新され得る。
前に説明されたように、生成ニューラルネットワーク406、およびより一般的には断片生成システム310が、構造予測システム100の中のローカルメモリ更新システム130の一部として使用され得る。しかしながら、本明細書の説明は、構造予測システム100の中のローカルメモリ更新システム130内で使用することに生成ニューラルネットワーク406および断片生成システム310を限定するものとして解釈されるべきではない。
図5は、例示的なスコアリングシステム136のブロック図である。スコアリングシステム136は、以下で説明されるシステム、コンポーネント、および技法が実装される1つまたは複数の位置における1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの例である。
構造予測システム100の中の検索コンピューティングユニットは、スコアリングシステム136を使用して予測構造に対するそれぞれの品質スコアを決定する。スコアリングシステム136は、(i)アミノ酸配列102、および(ii)アミノ酸配列102の予測構造502(たとえば、図1に関連して説明されるような、代替的な予測構造)を含む、入力を受け取る。スコアリングシステム136は、入力を処理して、一般に予測構造の品質を特徴付ける予測構造502に対する品質スコア504を生成するように構成される。たとえば、システム136は、(i)ジオメトリスコア506、(ii)値スコア508、(iii)距離尤度スコア510、(iv)他の追加のスコア(これらのすべてが以下でより詳しく説明される)のうちの1つまたは複数を使用して、品質スコアを生成し得る。
図1に関連して説明されるように、アミノ酸配列102および予測構造502は、任意の適切な数値フォーマットで表現され得る。たとえば、アミノ酸配列102はワンホット符号化ベクトルの列として表されてもよく、各ワンホット符号化ベクトルは、アミノ酸配列102の異なるアミノ酸を表す。予測構造502は、構造パラメータ(たとえば、アミノ酸配列102の中のアミノ酸の主鎖原子間のねじれ角)のセットの値によって表され得る。
任意選択で、システム136は、アミノ酸配列102を処理して(図4に関連して説明されたように)アミノ酸配列102に類似する配列を伴う他のタンパク質からのアミノ酸配列の多重配列整列(MSA)から導かれる整列特徴量516を生成するように構成される、配列整列エンジン514、たとえばHHblits(Remmert他、Nature Methods 9, 173, 2012)を含み得る。
任意選択で、システム136は、予測構造502を処理して構造距離マップ520を生成するように構成される距離エンジン518を含み得る。構造距離マップ520は、予測構造502に従ってアミノ酸配列102が折りたたまれるとき、アミノ酸配列102の中のアミノ酸の各ペア間のそれぞれの距離(たとえば、オングストロームで測定される)を特徴付ける。構造の中の第1のアミノ酸と第2のアミノ酸との間の距離は、構造に従ってアミノ酸配列102が折りたたまれるときの第1のアミノ酸と第2のアミノ酸の中の特定の原子(たとえば、主鎖原子)間の距離を指す。一例では、構造距離マップは、アミノ酸配列102の中のアミノ酸の各ペア間の距離を直接指定し得る。別の例では、構造距離マップは、アミノ酸配列102の中のアミノ酸の各ペアが接触しているかどうか、すなわち所定の閾値距離未満離れているかどうかを指定し得る。構造距離マップ520は、任意の適切な数値フォーマットで、たとえば行列として表されてもよく、ここで、行列の(i,j)要素は、アミノ酸配列102の中のi番目のアミノ酸とアミノ酸配列102の中のj番目のアミノ酸との間の距離を表す。
システムは、ジオメトリニューラルネットワーク524、値ニューラルネットワーク526、および距離予測システム528に対するそれぞれの入力522を生成するために、(i)アミノ酸配列102の表現、(ii)予測構造502を定義する構造パラメータ、(iii)整列特徴量516、および(iv)構造距離マップ520のうちの1つまたは複数を使用する。いくつかの場合、アミノ酸配列102の表現および予測構造502を定義する構造パラメータは、1次元(1D)特徴量(すなわち、線形配列として表される特徴量)として表されるが、整列特徴量516の一部および構造距離マップ520は、2次元特徴量(2D)(すなわち、行列として表される特徴量)として表される。入力522を生成するために、システム136は、2D特徴量の行列表現の行および列に沿って1D特徴量をブロードキャストして連結することによって、1D特徴量と2D特徴量を組み合わせ得る。
システム136は、ジオメトリニューラルネットワーク重みの現在値に従ってジオメトリニューラルネットワーク524に対して生成されたそれぞれの入力522を処理して、ジオメトリスコア506を示す出力を生成する。ジオメトリスコア506は、アミノ酸配列102の予測構造502とアミノ酸配列102の実際の構造との間の類似性尺度の推定である。たとえば、類似性尺度は、アミノ酸配列102の予測構造502を定義する構造パラメータとアミノ酸配列102の実際の構造を定義する構造パラメータとの間の平均二乗偏差(RMSD)であり得る。別の例として、類似性尺度は、グローバル距離テスト(GDT)類似性尺度であり得る。GDT類似性は、予測構造502における位置が実際の構造における位置から所定の距離以内にある、アミノ酸配列102の中のアミノ酸の主鎖原子の割合として定義され得る。
いくつかの実装形態では、ジオメトリニューラルネットワーク524は、ジオメトリスコア506を直接出力するように構成される。いくつかの実装形態では、ジオメトリニューラルネットワーク524は、ジオメトリスコアの所定のセットにわたる確率分布を定義する出力を生成するように構成される。これらの実装形態では、ジオメトリニューラルネットワーク524の出力は、ジオメトリスコアの所定のセットの中のジオメトリスコアに対するそれぞれの確率値を含む。システム136は、ジオメトリスコアの所定のセットにわたる確率分布の中心の傾向(たとえば、平均、中央値、モード)の尺度であるものとしてジオメトリスコア506を決定し得る。
システム136は、値ニューラルネットワーク重みの現在値に従って値ニューラルネットワーク526に対して生成されるそれぞれの入力522を処理して、値スコア508を示す出力を生成する。値スコア508は、現在の検索反復において検索コンピューティングユニットによって維持される現在の予測構造が予測構造502である場合、未来の検索反復において検索コンピューティングユニットによって生成される予測構造の品質を特徴付ける品質スコアの推定である。いくつかの実装形態では、未来の検索反復は、現在の検索反復の後の所定の回数の反復である。いくつかの実装形態では、未来の検索反復は、検索コンピューティングユニットの最後の検索反復(たとえば、検索終了基準が満たされる検索反復)である。値スコア508は、スコアリングシステム136を使用する検索コンピューティングユニットが、短期的には(たとえば、数回の検索反復の間は)現在の予測構造の品質が下がり得るがより高品質な最終的な予測構造をもたらし得るような方法で、現在の予測構造を更新することを可能にする。
いくつかの実装形態では、値ニューラルネットワーク526は、値スコア508を直接出力するように構成される。いくつかの実装形態では、値ニューラルネットワーク526は、値スコアの所定のセットにわたる確率分布を定義する出力を生成するように構成される。これらの実装形態では、値ニューラルネットワーク526の出力は、値スコアの所定のセットの中の値スコアの各々に対するそれぞれの確率値を含む。システム136は、値スコアの所定のセットにわたる確率分布の中心の傾向(たとえば、平均、中央値、またはモード)の尺度であるものとして値スコア508を決定し得る。
いくつかの実装形態では、スコアリングシステム136は、アミノ酸配列102の実際の構造の中のアミノ酸残基のペア間の推定距離を特徴付ける距離マップを含む、ジオメトリニューラルネットワーク524および値ニューラルネットワーク526に対するそれぞれの入力を生成し得る。図6を参照してさらに説明されるように、距離マップは、距離予測システム528に含まれる距離予測ニューラルネットワークによって生成され得る。
ジオメトリニューラルネットワーク524および値ニューラルネットワーク526は、任意の適切なニューラルネットワーク構成において実装され得る。たとえば、ジオメトリニューラルネットワーク524および値ニューラルネットワーク526は、複数の畳み込みニューラルネットワーク層、注意層、および残差ブロック(たとえば、2D残差畳み込みブロック)を含み得る。いくつかの場合、畳み込み層は、それぞれの受容野のサイズを増大させるための拡張畳み込みフィルタを含み得る。ある特定の例では、ジオメトリニューラルネットワーク524および値ニューラルネットワーク526は、複数(たとえば、200個)の畳み込み残差ブロック(たとえば、図20に関連して説明されるような)の配列、それに続いて、アミノ酸配列の長さに依存しない次元を伴う単一のベクトルを出力する平均プーリング層、それに続いて、範囲[0,100]に対する100個のビンを伴うソフトマックス層を含む、アーキテクチャを有し得る。
ジオメトリニューラルネットワーク524は、複数の訓練例を含む訓練データのセットに基づいて、標準的な機械学習訓練技法(たとえば、確率的勾配降下法)を使用して訓練され得る。各訓練例は、(i)タンパク質の訓練予測構造、および(ii)タンパク質の訓練予測構造とタンパク質の実際の構造との間の類似性尺度である目標ジオメトリスコアを含み得る。訓練予測構造に対する目標ジオメトリスコアは、訓練予測構造に対応する入力522を処理することによって、ジオメトリニューラルネットワークによって生成されるべきジオメトリスコアを表す。タンパク質の実際の構造は、たとえば物理的な実験を通じて決定されていてもよい。
いくつかの実装形態では、ジオメトリニューラルネットワーク524は、ジオメトリニューラルネットワーク524の訓練全体で固定されたままである訓練データの静的なセットについて訓練される。これらの実装形態では、訓練例に含まれる訓練予測構造は、たとえば、タンパク質の実際の予測構造にランダムに擾乱を与えることによって決定され得る。いくつかの実装形態では、ジオメトリニューラルネットワーク524は、ジオメトリニューラルネットワーク524の訓練全体で繰り返し更新される訓練データのセットについて訓練される。これらの実装形態では、任意の所与の訓練反復において、訓練例に含まれる訓練予測構造の一部は、ジオメトリニューラルネットワーク重みの現在値に従ってジオメトリニューラルネットワーク524によって生成されるジオメトリスコア506に基づく品質スコアを使用して、検索コンピューティングユニットによって生成される予測構造であり得る。訓練全体で訓練データのセットを繰り返し更新することによって、ジオメトリニューラルネットワーク524は、ジオメトリニューラルネットワーク重みの現在値に従って生成される品質スコアを使用して検索コンピューティングユニットによって生成される不正確な予測構造を認識して訂正するように訓練され得る。
値ニューラルネットワーク526は、複数の訓練例を含む訓練データのセットに基づいて、標準的な機械学習訓練技法(たとえば、確率的勾配降下法)を使用して訓練され得る。各訓練例は、(i)タンパク質の訓練予測構造、および(ii)タンパク質の訓練予測構造を繰り返し更新することによって決定されるタンパク質の未来の予測構造の品質を特徴付ける品質スコアである目標値スコアを含み得る。訓練予測構造に対する目標値スコアは、訓練予測構造に対応する入力522を処理することによって値ニューラルネットワーク526により生成されるべき値スコアを表す。
いくつかの実装形態では、値ニューラルネットワーク526は、値ニューラルネットワーク526の訓練全体で固定されたままである訓練データの静的なセットについて訓練される。これらの実装形態では、訓練データのセットは、(たとえば、図1に関連して説明されたように)検索コンピューティングユニットを使用して、様々なタンパク質に対して多数の予測構造軌跡(すなわち、予測構造の列)を計算することによって決定され得る。特定の訓練例を決定するために、予測構造軌跡からのある特定の予測構造は、特定の訓練例に対する訓練予測構造として選択され得る。特定の訓練例に対する目標品質値スコアは、予測構造軌跡の中のより後の予測構造の品質スコアであるものとして選択され得る。たとえば、目標値スコアは、予測構造軌跡の中の最後の予測構造の品質スコアであるものとして選択され得る。
いくつかの実装形態では、値ニューラルネットワーク526は、値ニューラルネットワーク526の訓練全体で繰り返し更新される訓練データのセットについて訓練される。これらの実装形態では、訓練データのセットは、値ニューラルネットワーク重みの現在値に従って値ニューラルネットワーク526によって生成される値スコア508に基づく品質スコアを使用して、様々なタンパク質に対して多数の予測構造軌跡を生成することによって更新され得る。訓練データのセットは、これらの予測構造軌跡から新しい訓練例を生成することによって(たとえば、予測構造軌跡から訓練例を決定するための以前に説明された方法を使用して)更新され得る。訓練全体で訓練データのセットを繰り返し更新することによって、値ニューラルネットワーク526は、値ニューラルネットワーク重みの現在値に従って生成される品質スコアを使用して、検索コンピューティングユニットによって生成される不正確な予測構造を認識して訂正するように訓練され得る。
通常、ジオメトリニューラルネットワーク524を訓練するために使用される訓練データのセットは、タンパク質の「グランドトゥルース」構造が(たとえば、物理的な実験によって)知られているタンパク質に対応する訓練予測構造を伴う訓練例を含む。具体的には、訓練例に対する目標ジオメトリスコアを決定するために、タンパク質のグランドトゥルース構造が知られていなければならない。対照的に、値ニューラルネットワークを訓練するために使用される訓練データのセットは、タンパク質のグランドトゥルース構造が知られていない可能性のあるタンパク質に対応する訓練予測構造を伴う訓練例を含み得る。具体的には、訓練例に対する目標値スコアを決定するために、タンパク質のグランドトゥルース構造が知られている必要はない。
ジオメトリニューラルネットワーク524および値ニューラルネットワーク526は、コントラスティブダイバージェンス訓練手順を使用して訓練され得る。この場合、ジオメトリニューラルネットワークによって生成されるジオメトリスコアは、タンパク質の予測構造502と実際の構造との間の特定の類似性尺度の直接の推定ではないことがある。同様に、値ニューラルネットワークによって生成される値スコアは、未来の予測構造の特定の品質スコアの直接の推定ではないことがある。本明細書におけるジオメトリニューラルネットワーク524および値ニューラルネットワーク526の説明は、ジオメトリニューラルネットワーク524および値ニューラルネットワーク526がコントラスティブダイバージェンス訓練手順を使用して訓練される場合を含むことが理解されるべきである。
あらゆる適切な教師あり損失目的関数、たとえば、クロスエントロピー損失目的関数または二乗誤差損失目的関数が、ジオメトリニューラルネットワークおよび値ニューラルネットワークの訓練の間に使用され得る。ある特定の例では、相対的なジオメトリスコアを生成するように構成されるジオメトリニューラルネットワークは、相対的な重要度スコアによって定義される予測構造のランキングが予測構造の実際のランキングと一貫しているかどうかを特徴付けるロジスティック損失目的関数を使用して訓練され得る。
システム136は、距離予測システム528を使用して距離予測システム528に対して生成されるそれぞれの入力522を処理して、距離尤度スコア510を生成する。図6を参照してさらに説明されるように、距離尤度スコア510は、(i)予測構造502の中のアミノ酸配列102のアミノ酸のペア間の距離と、(ii)アミノ酸配列102の実際の構造の中のアミノ酸のペア間の推定距離との差に基づいて、予測構造502の尤度を定義する。
システム136は、ジオメトリスコア506、値スコア508、および距離尤度スコア510に加えて、追加のスコア512を生成し得る。たとえば、追加のスコアは、アミノ酸配列102が予測構造502に従って折りたたまれた場合に、予測構造502の疎水部分が水に曝されるかどうかに基づくスコアを含み得る。この例では、水に曝される疎水領域を含む予測構造502はより低いスコアをもたらし、それは、この予測構造502は恐らく、アミノ酸配列102の実際の構造に似ていないからである。別の例として、追加のスコアは、(i)予測構造502と、(ii)ワンショット予測ニューラルネットワークの出力として生成されるタンパク質の予測構造との間の類似性尺度に基づくスコアを含み得る。この例では、ワンショット予測ニューラルネットワークは、アミノ酸配列102の表現および整列特徴量516を含む入力を処理して、タンパク質の予測構造を直接生成するように構成され得る。
システム136は、ジオメトリスコア506、値スコア508、距離尤度スコア510、および追加のスコア512のうちの1つまたは複数を組み合わせることによって、予測構造502に対する品質スコア504を決定し得る。たとえば、システム136は、ジオメトリスコア506、値スコア508、距離尤度スコア510、および追加のスコア512の線形結合として品質スコアを決定してもよく、線形結合の係数は、調整可能なシステムハイパーパラメータである。
ジオメトリニューラルネットワーク524、値ニューラルネットワーク526、および距離予測システム528は、前に説明されたように、スコアリングシステム136の一部として使用され得る。しかしながら、本明細書の説明は、スコアリングシステム136内で使用することに、ジオメトリニューラルネットワーク524、値ニューラルネットワーク526、および距離予測システム528を制限するものとして解釈されるべきではない。その上、以下でより詳しく説明されるように、ジオメトリニューラルネットワーク524および値ニューラルネットワーク526の様々な変形が、スコアリングシステム136の内部または外部で使用するために実装され得る。
いくつかの実装形態では、ジオメトリニューラルネットワーク524は、(i)タンパク質のアミノ酸配列を定義するデータ、(ii)タンパク質の第1の予測構造を定義するデータ、および(iii)タンパク質の第2の予測構造を定義するデータを含む、入力522を処理するように構成され得る。一般に、タンパク質の第1の予測構造は、タンパク質の第2の予測構造と異なる。タンパク質の第1の予測構造を定義するデータおよびタンパク質の第2の予測構造を定義するデータは、構造パラメータ(たとえば、タンパク質のアミノ酸配列の中の主鎖原子のねじれ角または座標)のそれぞれの値を含み得る。その上、ジオメトリニューラルネットワーク524への入力522は、タンパク質の第1および第2の予測構造に対応する、整列特徴量516およびそれぞれの構造距離マップ520を含み得る。ジオメトリニューラルネットワーク524は、入力を処理して、タンパク質の第1の予測構造とタンパク質の第2の予測構造との間の相対的なジオメトリスコアを特徴付ける出力を生成するように構成され得る。
相対的なジオメトリスコアは、タンパク質の第1の予測構造と実際の構造との間の類似性尺度が、タンパク質の第2の予測構造と実際の構造との間の類似性尺度を超えるかどうかについての、予測を定義し得る。すなわち、相対的なジオメトリスコアは、第1の予測構造が第2の予測構造より正確であるかどうかについての予測を定義し得る。ある特定の例では、相対的なジオメトリスコアは、タンパク質の第1の予測構造と実際の構造との間の類似性尺度が、タンパク質の第2の予測構造と実際の構造との間の類似性尺度を超える(超えない)予測を示すために、正(負)であり得る。
スコアリングシステム136が検索コンピューティングユニットによって使用されているとき、各検索反復において、ジオメトリニューラルネットワーク524は、各々の代替的な予測構造に対する相対的なジオメトリスコアを生成するように構成され得る。代替的な予測構造に対する相対的なジオメトリスコアを生成するために、ジオメトリニューラルネットワーク524は、検索反復において検索コンピューティングユニットの現在の予測構造を定義するデータと、代替的な予測構造を定義するデータとを一緒に処理するように構成され得る。その後、相対的なジオメトリスコアが、代替的な予測構造の品質スコア504を決定するために(前に説明されたように)使用され得る。
いくつかの実装形態では、値ニューラルネットワーク526は、(i)タンパク質のアミノ酸配列を定義するデータ、(ii)タンパク質の第1の予測構造を定義するデータ、および(iii)タンパク質の第2の予測構造を定義するデータを含む、入力522を処理するように構成され得る。一般に、タンパク質の第1の予測構造はタンパク質の第2の予測構造と異なる。タンパク質の第1の予測構造を定義するデータおよびタンパク質の第2の予測構造を定義するデータは、構造パラメータ(たとえば、タンパク質のアミノ酸配列の中の主鎖原子のねじれ角または座標)のそれぞれの値を含み得る。その上、値ニューラルネットワーク526への入力522は、タンパク質の第1および第2の予測構造に対応する、整列特徴量516およびそれぞれの構造距離マップ520を含み得る。値ニューラルネットワーク526は、入力を処理して、タンパク質の第1の予測構造とタンパク質の第2の予測構造との間の相対的な値スコアを特徴付ける出力を生成するように構成され得る。
相対的な値スコアは、タンパク質の第1の未来の予測構造の品質を特徴付ける品質スコアがタンパク質の第2の未来の予測構造の品質を特徴付ける品質スコアを超えるかどうかについての予測を定義し得る。タンパク質の第1の未来の予測構造は、複数の検索反復にわたって(たとえば、検索コンピューティングユニットによって)タンパク質の第1の予測構造を反復的に修正することによって生成される予測構造を指す。タンパク質の第2の未来の予測構造は、複数の検索反復にわたって(たとえば、検索コンピューティングユニットによって)タンパク質の第2の予測構造を反復的に修正することによって生成される予測構造を指す。すなわち、相対的な値スコアは、第2の予測構造の第1の予測構造を(たとえば、検索コンピューティングユニットによって)反復的に修正して「より良い」(たとえば、より正確な)未来の予測構造につなげることができるかどうかについての予測を定義し得る。ある特定の例では、相対的な値のスコアは、タンパク質の第1の未来の予測構造の品質スコアがタンパク質の第2の未来の予測構造の品質スコアを超える(超えない)予測を示すために、正(負)であり得る。
スコアリングシステム136が検索コンピューティングユニットによって使用されているとき、各検索反復において、値ニューラルネットワーク526は、各々の代替的な予測構造に対する相対的な値スコアを生成するように構成され得る。代替的な予測構造に対する相対的な値スコアを生成するために、値ニューラルネットワーク526は、検索反復における検索コンピューティングユニットの現在の予測構造を定義するデータおよび代替的な予測構造を定義するデータを一緒に処理するように構成され得る。その後、代替的な予測構造の品質スコア504を決定するために、(前に説明されたように)相対的な値スコアが使用され得る。
前に説明されたように、予測構造の主鎖原子品質スコアはアミノ酸の主鎖原子にのみ基づくが、全原子品質スコアはアミノ酸の各々の中の原子のすべてに関して決定される。スコアリングシステム136は、全原子品質スコアを生成するために使用されるジオメトリニューラルネットワーク、値ニューラルネットワーク、および距離予測システムのそれぞれの実装形態と、主鎖原子品質スコアを生成するために使用されるジオメトリニューラルネットワーク、値ニューラルネットワーク、距離予測システムのそれぞれの実装形態とを含み得る。たとえば、ジオメトリニューラルネットワークの全原子実装形態は、アミノ酸配列102の中の各アミノ酸の1つ1つの原子の位置を指定する予測構造502を処理して、全原子ジオメトリスコアを生成するように構成され得る。全原子ジオメトリスコアは、タンパク質の各アミノ酸の1つ1つの原子に基づいて、タンパク質の予測構造502と実際の構造との間の類似性尺度を定義し得る。ジオメトリニューラルネットワークの主鎖原子実装形態は、アミノ酸102の中のアミノ酸の主鎖原子の位置を指定する予測構造502を処理して、主鎖原子ジオメトリスコアを生成するように構成され得る。主鎖原子ジオメトリスコアは、タンパク質の各アミノ酸の主鎖原子に基づいて、タンパク質の予測構造502と実際の構造との間の類似性尺度を定義し得る。
図6は、例示的な距離予測システム528のブロック図である。距離予測システム528は、以下で説明されるシステム、コンポーネント、および技法が実装される1つまたは複数の位置において、1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの例である。
距離予測システム528は、アミノ酸配列102の表現、整列特徴量604、およびアミノ酸配列102の予測構造606を含む入力602(たとえば、図5に関連して説明されるような)を受け取るように構成され得る。システム528は、入力602を処理して距離尤度スコア510を生成するように構成される。距離尤度スコア510は、(i)予測構造606におけるアミノ酸配列102の中のアミノ酸のペア間の距離と、(ii)アミノ酸配列102の実際の構造におけるアミノ酸配列102の中のアミノ酸のペア間の推定距離との差に基づいて、予測構造606の尤度を定義する。
整列特徴量は、アミノ酸配列に対するMSAに基づいて決定され、各残基に対する位置固有の置換確率を伴うプロファイル特徴量(1Dであり得る)、ならびに共分散特徴量、たとえば、MSAに対してフィッティングされる正則化された擬似尤度訓練されたPottsモデル(たとえば、CCMPredに類似した)のパラメータを含み得る。特徴量は、Pottsモデルのパラメータのフロベニウスノルムと、各残基ペアi、jに対する生のパラメータ値とを含み得る。整列特徴量は、MSAにおけるギャップおよび欠失、たとえば、(i,j)番目の要素が、ギャップがi番目の位置とj番目の位置で発生する回数をカウントするような、ギャップ行列(ギャップが大きいほど共分散の分散は大きい)、および/または、欠失確率、たとえば残基位置の右で発生する欠失の確率を明示的に表す、特徴量を含み得る。
追加のプロファイル特徴量が、PSI-BLASTを使用して抽出され得る。MSAの中のアミノ酸配列の数は、追加の整列特徴量であり得る。整列特徴量およびアミノ酸配列の表現は、特徴量の2次元アレイとして表現されてもよく、各i、j特徴量は、i残基とj残基の両方に対する1次元特徴量、ならびに残基ペアi、jに対する2次元特徴量の連結である。ここで説明される整列特徴量は、本明細書で説明されるスコアリングニューラルネットワーク、たとえばジオメトリニューラルネットワーク、値ニューラルネットワーク、および構造予測ニューラルネットワークの各々に対する入力として使用され得る。
したがって、ある特定の例示的な実装形態では、距離予測システム528への入力特徴量は、MSAの中のアミノ酸配列の数と、アミノ酸配列102(21D)の表現、欠失確率(1D)、残基インデックス、ならびに、PSI-BLASTプロファイル(21D)、HHblitsプロファイル(22D)、HHblitsバイアス、ノンギャッププロファイル(21D)、HMMプロファイル(30D)、およびPottsモデルバイアス(30D)などのプロファイルを備える、配列長特徴量と、ギャップ行列(1D)、フロベニウスノルム(1D)、およびPottsモデルパラメータ(484D)などの配列長特徴量とを備え得る。
距離尤度スコア510を生成するために、システム528は、アミノ酸配列102の実際の(たとえば、実験的に決定された)構造の中のアミノ酸配列102のアミノ酸の各ペア間の推定距離を特徴付ける、距離マップ608を生成する。距離マップ608は、行列の(i,j)要素が、アミノ酸配列102の実際の構造におけるアミノ酸配列102のi番目のアミノ酸とアミノ酸配列102のj番目のアミノ酸との間の推定距離を特徴付けるデータを含むような、行列として表現され得る。いくつかの実装形態では、アミノ酸配列102のアミノ酸の各ペアに対して、距離マップ608は、アミノ酸のペア間の推定距離を二進変数として特徴付ける。これらの実装形態では、二進変数は、アミノ酸のペア間の推定距離が所定の閾値(たとえば、8オングストローム)未満である場合には値1を有してもよく、それ以外の場合には二進値は値0を有してもよい。いくつかの実装形態では、アミノ酸配列102の中のアミノ酸の各ペアに対して、距離マップ608は、アミノ酸のペア間の推定距離を連続値の数(たとえば、距離をオングストロームで表す)として特徴付ける。いくつかの実装形態では、アミノ酸配列102のアミノ酸の各ペアに対して、距離マップ608は、距離範囲の所定のセットにわたる確率分布(たとえば、確率分布610)によって、アミノ酸のペア間の推定距離を特徴付ける。これらの実装形態では、確率分布は、距離範囲の所定のセットの中の各距離範囲に対するそれぞれの確率値を含む。たとえば、1つの特定の実装形態では、アミノ酸のペア間の距離は、アミノ酸残基のCβ原子(β炭素のないグリシンについてはCα)間の距離である。ある特定の実装形態では、(後で説明される図19に示されるように)距離範囲2~22Åは64個の等しいビンに量子化される。
距離マップ608を生成するために、システム528は距離マップクロップ612のセットを生成し得る。各距離マップクロップ612は、全距離マップ608の適切なサブセットの推定である。より具体的には、各距離マップクロップ612は、(i)アミノ酸配列102の中の1つまたは複数の第1の位置の各々におけるアミノ酸残基と、(ii)アミノ酸配列102の中の1つまたは複数の第2の位置の各々におけるアミノ酸残基との間の推定距離を特徴付け、第1の位置、第2の位置、または両方が、アミノ酸配列102におけるすべての位置のうちの適切なサブセットである。第1の位置は、距離マップ行列608のそれぞれの行を特定するものとして理解されてもよく、第2の位置は、距離マップ行列608のそれぞれの列を特定するものとして理解されてもよい。以下でより詳しく説明されるように、システム528は、融合エンジン614を使用して距離マップクロップ612を組み合わせて、全距離マップ608を生成する。
各距離マップクロップは、距離予測ニューラルネットワーク616の出力として生成される。距離予測ニューラルネットワーク616は、距離マップクロップに対応するアミノ酸配列の第1の位置および第2の位置の各々におけるアミノ酸を特徴付けるクロップ特徴量618を処理することによって、距離マップクロップを生成するように構成される。クロップ特徴量618は、クロップ特徴量生成エンジン624によって生成され得る。クロップ特徴量生成エンジン624は、(i)アミノ酸配列102の表現、ならびに(ii)距離マップクロップに対応するアミノ酸配列102の第1の位置および第2の位置におけるアミノ酸に対応する整列特徴量604の、成分を抽出するように構成される。いくつかの場合、クロップ特徴量生成エンジンは加えて、アミノ酸配列の第1の位置におけるアミノ酸および第2の位置におけるアミノ酸に対応する整列特徴量の対角成分を抽出するように構成される。対角線(i=j)に近い特徴量を使用することは、局所構造、たとえば二次構造を符号化することの助けになり得る。
距離予測ニューラルネットワーク616が、アミノ酸配列102の全体の表現および整列特徴量604を処理することによって、距離マップ608を直接生成するように構成されれば、距離予測ニューラルネットワーク616のアーキテクチャは、モデル化されるべき最長のアミノ酸配列により制約されるであろう。クロップ特徴量618を処理して距離マップクロップ612(システム528はこれらを融合して全距離マップ608を生成する)を生成することによって、距離予測ニューラルネットワーク616は、そうしない場合よりも複雑なアーキテクチャ(たとえば、より多くのニューラルネットワーク層を伴う)を有することができ、それにより、より精密な距離マップ608の推定が可能になる。
距離予測ニューラルネットワーク616は、任意の適切なニューラルネットワーク構成で実装され得る。たとえば、距離予測ニューラルネットワーク616は、複数の畳み込みニューラルネットワーク層、注意層、および残差ブロックを含み得る。いくつかの場合、畳み込み層は、それぞれの受容野のサイズを増大させるための拡張畳み込みフィルタを含み得る。ある特定の例では、距離予測ニューラルネットワークは、深層2次元拡張畳み込み残差ネットワークであり得る。この例では、距離予測ネットワークは、全体が2次元であり、拡張畳み込みとともに220個の残差ブロックを使用する。残差ブロックの例示的なアーキテクチャは、図20に関連してより詳しく説明される。
距離予測ニューラルネットワーク616は、複数の訓練例を含む訓練データセットに基づいて訓練され得る。各訓練例は、訓練ネットワーク入力と、訓練ネットワーク入力に対応する目標距離マップとを含む。訓練ネットワーク入力は、既知の構造を伴う訓練タンパク質から導かれる。いくつかの実装形態では、目標距離マップは、訓練タンパク質の構造の中のアミノ酸残基間の実際の距離を特徴付ける。いくつかの他の実装形態では、目標距離マップは、訓練入力を処理することにより「教師」ニューラルネットワークによって生成される訓練タンパク質の構造の中のアミノ酸残基間の推定距離を特徴付ける。これらの実装形態では、教師ニューラルネットワークは、タンパク質の構造の中のアミノ酸残基間の実際の距離を特徴付ける距離マップを生成するように訓練される距離予測ニューラルネットワーク616(たとえば、より多くの層、より多くのパラメータ、または両方を伴うニューラルネットワーク)より、複雑なニューラルネットワークであり得る。教師ニューラルネットワークの出力と一致する出力を生成するように距離予測ニューラルネットワーク616を訓練することによって(すなわち、蒸留学習フレームワークにおいて)、距離予測ニューラルネットワーク616は、そうしない場合よりも効果的に訓練され得る。距離予測ニューラルネットワーク616を訓練するために使用される目的関数は、クロスエントロピー目的関数であり得る。
いくつかの場合、システム528は、訓練データセットに元々含まれる訓練距離マップからランダムに擾乱を与えられた訓練距離マップを含む新しい訓練例を生成することによって、訓練データセットを補強し得る。いくつかの場合、システム528は、訓練例に含まれる整列特徴量がアミノ酸配列に対する完全なMSAのランダムなサブサンプリングを使用して生成されるような、新しい訓練例を生成することによって、訓練データセットを補強し得る。
システム528は、距離予測ニューラルネットワーク616によって生成されるべき距離マップクロップ612を選択するように構成される、クロップ特定エンジン620を含む。より具体的には、クロップ特定エンジン620は、各距離マップクロップ(たとえば、距離マップ608の距離マップクロップ628)に対応する第1の位置および第2の位置を含む出力を生成する。いくつかの実装形態では、クロップ特定エンジン620は、各距離マップクロップに対するランダムに選択された第1の位置および第2の位置を生成するように構成される。この手法は、訓練の間に適用される場合、ある形態のデータ補強として機能することができる。いくつかの実装形態では、クロップ特定エンジン620は、距離マップ608を「包含する」ように選択される距離マップクロップの所定のセットを特定する(すなわち、アミノ酸配列102のアミノ酸の各々のあり得るペア間の距離が少なくとも1つの距離マップクロップ612によって特徴付けられるように)ように構成される。任意選択で、距離予測ニューラルネットワークへの入力は、クロップの相対的なおよび/または絶対的な位置を符号化したものを含み得る。
一例では、クロップ特定エンジン620は、サイズ64×64の距離マップクロップ、すなわち、64個の連続する残基の2つのグループ間のペアごとの距離を特徴付ける距離マップクロップを選択する。しかしながら、クロップは正方である必要はない。
距離マップクロップ612を生成した後で、システム528は、融合エンジン614を使用して距離マップクロップ612を「融合し」(すなわち、組み合わせ)、全距離マップ608を決定する。いくつかの実装形態では、システム528は、距離マップクロップ612の平均となるように全距離マップ608を決定する。たとえば、アミノ酸配列102のアミノ酸の所与のペアに対して、システム528は、距離マップ608により特徴付けられるアミノ酸の所与のペア間の推定距離の分布を、距離マップクロップ612の各々により特徴付けられるアミノ酸の所与のペア間の推定距離の分布の平均となるように決定し得る。この例では、平均は、アミノ酸の所与のペア間の距離を特徴付けない距離マップクロップを除外する。またこの例では、平均は、中心がアミノ酸の所与のペアにより近い距離マップクロップに対して、より重く重み付けられてもよく、これはエッジ効果を減らすのを助け得る。いくつかの実装形態では、システム528は、融合ニューラルネットワークパラメータの現在値に従って融合ニューラルネットワークを使用して距離マップクロップ612を処理し、全距離マップ608を含む出力を生成することによって、全距離マップ608を決定する。
いくつかの場合、システム528は、異なるハイパーパラメータを用いて独立に訓練される複数の距離予測ニューラルネットワークを使用して、距離マップクロップ612のセットを生成する。そのような集団を使用することで、正確さをさらに高めることができる。
システムは、予測構造606および距離マップ608から、距離尤度スコア626、たとえば距離尤度スコア510を決定するように構成される、評価エンジン622を含む。たとえば、評価エンジン622は、アミノ酸配列102のアミノ酸の各ペアに対する、距離マップ608に従ったアミノ酸のペア間の距離に対する連続値の推定と、予測構造606におけるアミノ酸のペア間の距離との間の差の二乗の合計に基づいて、距離尤度スコア626を決定し得る。別の例として、評価エンジン622は、アミノ酸配列102のアミノ酸の各ペアに対して、予測構造606によって定義される距離だけアミノ酸のペアが離れていることの、距離マップ608に従った確率に基づいて、距離尤度スコア626を決定し得る。ある特定の例では、評価エンジン622は、距離尤度スコアsを
として決定してもよく、ここで積は(i,j)によってインデクシングされるアミノ酸配列102のアミノ酸のペアにわたり、pi,j(di,j)は、距離マップ608によって定義されるアミノ酸残基のペア(i,j)間のとり得る距離範囲にわたる対応する確率分布pi,jに従って、(i,j)によってインデクシングされるアミノ酸ペアが予測構造606により定義される距離di,jだけ離れている確率を表記する。別の例として、以下でより詳しく説明されるように、評価エンジン622は、「参照」距離マップの一部に基づいて距離尤度スコアを決定し得る。
参照距離マップは、アミノ酸配列102のアミノ酸の各ペア間で一般に予想される、しかし、アミノ酸配列102の特定のアミノ酸の識別情報を参照することなく決定される、推定距離を特徴付ける。たとえば、アミノ酸配列102のアミノ酸の各ペアに対して、参照距離マップは、アミノ酸ペアにおけるアミノ酸の位置および相対的なオフセットに基づいて、アミノ酸のペア間の推定距離を特徴付け得る。所与のアミノ酸の位置は、アミノ酸配列における所与のアミノ酸と最初のアミノ酸の間にある他のアミノ酸の数を指す。2つのアミノ酸間の相対的なオフセットは、アミノ酸配列の中の2つのアミノ酸間の他のアミノ酸の数を指す。参照距離マップは、距離マップ608と同じ方式で、アミノ酸のペア間の推定距離を特徴付けることができる(たとえば、連続値の数として、または距離範囲の所定のセットにわたる確率分布として)。
距離予測システム528は、様々なタンパク質の実際の構造のタンパク質構造データベースを使用して、参照距離マップを生成し得る。ある特定の例では、距離予測システム528は、同じ位置および相対的なオフセットを伴う、タンパク質構造データベースの中のそれぞれのタンパク質構造に含まれるアミノ酸の各ペアに基づいて、アミノ酸のペア間の距離範囲の所定のセットにわたる参照確率分布を決定し得る。この例では、参照距離マップは、アミノ酸配列102のアミノ酸の各ペア間の推定距離を特徴付けるそれぞれの参照確率分布を含み得る。
評価エンジン622は、参照距離マップを使用して、距離尤度スコア626を
として決定してもよく、ここで積は(i,j)によってインデクシングされるアミノ酸配列102のアミノ酸のペアにわたり、pi,j(di,j)は、距離マップ608によって定義されるアミノ酸残基のペア(i,j)間のとり得る距離範囲にわたる対応する確率分布pi,jに従って、(i,j)によってインデクシングされるアミノ酸ペアが予測構造606により定義される距離di,jだけ離れている確率を表記し、
は、(上で説明されたように)参照距離マップによって定義されるアミノ酸残基のペア(i,j)間のとり得る距離範囲にわたる対応する参照確率分布
に従って、(i,j)によってインデクシングされるアミノ酸ペアが予測構造606により定義される距離di,jだけ離れている確率を表記する。参照距離マップを使用して距離尤度スコア626を決定することによって、距離尤度スコア626は、参照距離マップと、(図6を参照してさらに説明されるように)距離予測ニューラルネットワーク616によって生成される距離マップとのずれを特徴付けることができる。たとえば、後でも説明されるように、参照距離マップを使用して決定される距離尤度スコア626は、以前の距離分布の過剰代表を訂正するために、アミノ酸の識別情報を使用して決定された距離尤度スコアを使用して決定された距離尤度スコアから、対数領域において差し引かれ得る。
一般に、距離尤度スコア626は、予測構造606および予測構造の品質を特徴付ける距離マップ608から決定される任意の数値であり得る。
連続値の距離推定または距離範囲確率分布(すなわち二進変数ではなく)を使用してアミノ酸のペア間の距離を特徴付けることによって、システム528は、予測構造606がアミノ酸配列102の実際の構造にどれだけよく適合しているかについてのより精密な情報を伝える、距離尤度スコア626を生成することができる。
いくつかの場合、距離予測ニューラルネットワーク616は、追加の補助出力を(たとえば、距離マップクロップに加えて)生成するように構成され得る。たとえば、距離予測ニューラルネットワークは、距離マップクロップに対応するアミノ酸配列における第1の位置および第2の位置の各々のアミノ酸間のねじれ角を特徴付ける出力を生成するように構成され得る。別の例として、距離予測ニューラルネットワークは、距離マップクロップに対応するアミノ酸配列における第1の位置および第2の位置の各々のアミノ酸に対応する推定される二次構造(βシートもしくはαヘリックス二次構造および/またはコイル構造)を特徴付ける出力を生成するように構成され得る。別の例として、距離予測ニューラルネットワークは、タンパク質の接近可能な表面積(すなわち、溶媒に接近可能なタンパク質の表面積)を特徴付ける出力を生成するように構成され得る。追加の補助出力を正確に生成するように距離予測ニューラルネットワークを訓練することで、距離予測ニューラルネットワークは、より正確な距離マップクロップを生成するようになり得る。
図7は、タンパク質の現在の予測構造を反復的に更新することによって、タンパク質の予測構造の軌跡(すなわち、列)を生成するための例示的な反復プロセスの流れ図である。便宜的に、プロセス700は、1つまたは複数の位置に位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされる検索コンピューティングユニット、たとえば図1の検索コンピューティングユニット108および110が、プロセス700を実行することができる。
システムは、構造断片の集合体を記憶するように構成されるローカルメモリを使用して、タンパク質の現在の予測構造を更新する(702)。各構造断片は、タンパク質のアミノ酸配列の中のアミノ酸のサブ配列(すなわち、断片)の予測構造を特徴付ける。タンパク質の現在の予測構造を更新するために、システムは、ローカルメモリからの構造断片を使用してタンパク質の現在の予測構造に「擾乱を与える」ことによって、タンパク質の代替的な予測構造を生成する。現在の予測構造を代替的な予測構造に更新するかどうかを決定するための例示的なプロセスは、図8に関連して説明される。
システムは、検索終了基準が満たされるかどうかを決定する(704)。例として、システムは、システムがプロセス700のステップの所定の回数の反復を実行したときに、検索終了基準が満たされると決定し得る。別の例として、システムは、所定の回数の反復(たとえば、以前の10回の反復)にわたる現在の予測構造の品質スコアの平均の向上がある閾値を下回る場合、検索終了基準が満たされると決定し得る。予測構造の品質スコアは一般に、予測構造の品質を特徴付ける。たとえば、予測構造の品質スコアは、予測構造とタンパク質の実際の構造との間の推定される類似性、予測構造におけるアミノ酸の主鎖原子間の距離に基づく予測構造の尤度、または両方を特徴付け得る。予測構造の品質スコアを決定することは、806に関連してさらに説明される。
検索終了基準が満たされるとの決定に応答して、システムは、タンパク質の最終的な予測構造を決定する(706)。タンパク質の最終的な予測構造を決定するために、システムは中央メモリに記憶されている予測構造を選択する。一般に、中央メモリに記憶されている各予測構造はスコアと関連付けられ、システムは、スコアに基づいて中央メモリの中の予測構造を選択することによって、最終的な予測構造を決定する。たとえば、システムは、中央メモリに記憶されている最高のスコアを有する予測構造となるように、最終的な予測構造を決定し得る。中央メモリに記憶されている予測構造と関連付けられるスコアは、たとえば、主鎖原子品質スコアまたは全原子品質スコア(前に説明されたような)であり得る。
検索終了基準が満たされないとの決定に応答して、システムは、中央メモリ更新条件が現在の予測構造によって満たされるかどうかを決定する(708)。システムは、たとえば、現在の予測構造の品質スコアが現在の反復までにシステムによって生成される予測構造の軌跡において最高の品質スコアである場合、中央メモリ更新条件が満たされると決定し得る。この例では、システムは、最も「有望な」予測構造(たとえば、これはタンパク質の実際の構造を正確に近似する可能性が最も高い)を記憶するように、中央メモリを動的に更新する。
中央メモリ更新条件が満たされるとの決定に応答して、システムは中央メモリを更新する(710)。中央メモリは、予測構造を記憶するように構成されるデータストア(たとえば、論理データ記憶エリアまたは物理的なデータ記憶デバイス)である。システムは、現在の予測構造を中央メモリに記憶することによって中央メモリを更新することができる。現在の予測構造を中央メモリに記憶することは、現在の予測構造を定義する構造パラメータの値を中央メモリに記憶することを指す。
システムは、ローカルメモリ更新条件が満たされるかどうかを決定する(712)。たとえば、システムは、ローカルメモリ更新条件が満たされるとシステムが最後に決定したときから所定の回数の反復をシステムが実行した場合、ローカルメモリ更新条件が満たされると決定し得る。別の例として、システムは、所定の回数の反復にわたる現在の予測構造の品質スコアの平均の向上が所定の閾値を下回る場合、ローカルメモリ更新条件が満たされると決定し得る。
ローカルメモリ更新条件が満たされるとの決定に応答して、システムはローカルメモリを更新する(714)。いくつかの実装形態では、システムは、異なる構造断片を取得し、現在ローカルメモリの中にある構造断片をその異なる構造断片で置き換えることによって、ローカルメモリを更新する。いくつかの実装形態では、システムは、異なる構造断片を取得し、置換ポリシーを使用して現在ローカルメモリの中にある構造断片を部分的に置き換えることによって、ローカルメモリを更新する。たとえば、置換ポリシーは、first-in-first-out(FIFO)置換ポリシーであってもよく、最も早くローカルメモリに含められた構造断片が、異なる構造断片によって置き換えられる。
システムは、様々な異なる方法でローカルメモリに含められるべき構造断片を取得し得る。たとえば、以下でより詳しく説明されるように、システムは、(i)中央メモリに記憶されている予測構造を断片化すること、(ii)様々なタンパク質の既知の構造の構造データベースに記憶されている実際の構造を断片化すること、(iii)断片生成システムに含まれる生成ニューラルネットワークを使用して構造断片を生成すること、または(iv)これらの組合せによって、構造断片を生み出し得る。
いくつかの実装形態では、システムは、中央メモリからサンプリングされた予測構造を断片化することによって、ローカルメモリに含められるべき構造断片を取得する。システムは、中央メモリに記憶されている予測構造と関連付けられるスコアに従って、中央メモリからの予測構造をサンプリングし得る。前に説明されたように、中央メモリに記憶されている各予測構造は、品質スコア(たとえば、主鎖原子品質スコアまたは全原子品質スコア)と関連付けられ得る。例として、中央メモリからの予測構造をサンプリングするために、システムは、中央メモリに記憶されている予測構造の確率分布を、それらの関連するスコアを使用して(たとえば、ソフトマックス関数を使用してスコアを処理することによって)決定し得る。システムは次いで、決定された確率分布に従って、中央メモリから予測構造をサンプリングすることができる。
いくつかの実装形態では、システムは、構造データベースに記憶されている様々なタンパク質の実際の構造を断片化することによって、ローカルメモリに含められるべき構造断片を取得する。構造データベースに記憶されている様々なタンパク質の実際の構造は、X線結晶構造解析などの物理的な実験方法を使用して決定されていてもよい。
いくつかの実装形態では、システムは、現実的な構造断片を生成するように訓練された生成ニューラルネットワークを使用して、ローカルメモリに含められるべき構造断片を取得する。生成ニューラルネットワークを使用して構造断片を生成することは、図4に関連してさらに説明される。
ローカルメモリを更新した後、システムは702に戻り、先行するステップを繰り返すことができる。
図8は、タンパク質の現在の予測構造をタンパク質の代替的な予測構造に更新するかどうかを決定するための例示的なプロセスの流れ図である。便宜的に、プロセス800は、1つまたは複数の位置に位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされた、検索コンピューティングユニット、たとえば図1の検索コンピューティングユニット108および110が、プロセス800を実行することができる。
システムは、タンパク質の現在の予測構造と、現在の予測構造の品質を特徴付ける現在の品質スコアとを維持する(802)。現在の予測フォールディング構造は、構造パラメータのセットの値によって定義される。例として、構造パラメータは、タンパク質の中のアミノ酸の主鎖原子間のねじれ角の列であり得る。現在の品質スコアは、現在の予測構造の品質を特徴付ける数値である。
システムは、タンパク質の代替的な予測構造を決定する(804)。タンパク質の代替的な予測構造を決定するために、システムは、ローカルメモリから構造断片を取得する。たとえば、システムは、ローカルメモリから構造断片をランダムにサンプリングし得る。ローカルメモリから構造断片を取得した後で、システムは、取得された構造断片による現在の予測構造の「擾乱」として、代替的な予測構造を生成することができる。より具体的には、システムは、現在の予測構造の一部分と取得された構造断片とを含むものとして、代替的な予測構造を決定することができる。
システムは、各々の代替的な予測構造に対するそれぞれの品質スコアを決定する(806)。たとえば、システムは、(i)ジオメトリスコア、(ii)値スコア、(iii)距離尤度スコア、(iv)他の追加のスコアのうちの1つまたは複数を使用して、品質スコアを決定し得る。たとえば、システムは、ジオメトリスコア、値スコア、尤度スコア、および1つまたは複数の追加のスコアの線形結合として品質スコアを決定してもよく、線形結合の係数は調整可能なシステムハイパーパラメータである。
タンパク質の予測構造のジオメトリスコアは、タンパク質の予測構造とタンパク質の実際の構造との間の類似性尺度(たとえば、RMSDまたはGDT)の推定である。代替的な予測フォールディング構造のジオメトリスコアを決定するために、システムは、ジオメトリニューラルネットワーク重みの現在値に従ってジオメトリニューラルネットワークを使用して、代替的な予測フォールディング構造を特徴付けるネットワーク入力を処理することができる。ネットワーク入力は、タンパク質のアミノ酸配列の表現と、代替的な予測フォールディング構造を定義するフォールディング構造パラメータの値とを含む。いくつかの実装形態では、ジオメトリニューラルネットワークは、ジオメトリスコアを直接出力するように構成される。いくつかの実装形態では、ジオメトリニューラルネットワークは、ジオメトリスコアの所定のセットにわたる確率分布を定義する出力を生成するように構成される。これらの実装形態では、ジオメトリニューラルネットワークの出力は、ジオメトリスコアの所定のセットの中のジオメトリスコアに対するそれぞれの確率値を含む。システムは、ジオメトリスコアの所定のセットにわたる確率分布の中心の傾向(たとえば、平均、中央値、またはモード)の尺度となるようにジオメトリスコアを決定し得る。
タンパク質の予測構造の値スコアは、現在の検索反復において(たとえば、検索コンピューティングユニットによって維持されるような)現在の予測構造が、未来の検索反復(たとえば、プロセス700の反復)において(たとえば、検索コンピューティングユニットによって)生成される予測構造である場合、その予測構造の品質を特徴付ける品質スコアの推定である。代替的な予測フォールディング構造の値スコアを決定するために、システムは、値ニューラルネットワーク重みの現在値に従って値ニューラルネットワークを使用して代替的な予測フォールディング構造を特徴付けるネットワーク入力を処理することができる。いくつかの実装形態では、値ニューラルネットワークは、値スコアを直接出力するように構成される。いくつかの実装形態では、値ニューラルネットワークは、値スコアの所定のセットにわたる確率分布を定義する出力を生成するように構成される。これらの実装形態では、値ネットワークの出力は、値スコアの所定のセットの中の値スコアの各々に対するそれぞれの確率値を含む。システムは、値スコアの所定のセットにわたる確率分布の中心の傾向(たとえば、平均、中央値、またはモード)の尺度となるように値スコアを決定し得る。
タンパク質の予測フォールディング構造の距離尤度スコアは、(i)タンパク質の予測構造の中のアミノ酸のペア間の距離と、(ii)タンパク質の実際の構造の中のアミノ酸のペア間の推定距離との差に基づいて、予測構造の尤度を定義する。代替的な予測フォールディング構造の距離尤度スコアを決定するために、システムは、(図6に関連して説明されるような)距離予測システムを使用して、アミノ酸配列の表現と、(任意選択で)タンパク質に対応するMSAから導かれる整列特徴量とを処理することができる。
システムは、ジオメトリスコア、値スコア、および距離尤度スコアに加えて、代替的な予測フォールディング構造に対する追加のスコアを決定し得る。たとえば、追加のスコアは、アミノ酸配列が予測構造に従って折りたたまれた場合に、予測構造の疎水部分が水に曝されるかどうかに基づくスコアを含み得る。
システムは、現在の予測構造および代替的な予測構造のそれぞれの品質スコアに基づいて、現在の予測構造を代替的な予測構造に更新するかどうかを決定する(808)。
いくつかの実装形態では、システムは、品質スコアに基づく決定論的な手順を使用して、現在の予測構造を代替的な予測構造に更新するかどうかを決定し得る。たとえば、システムは、ある特定の代替的な予測構造が現在の予測構造および他の代替的な予測構造のいずれよりも高い品質スコアを有する場合、その特定の代替的な予測構造に現在の予測構造を更新すると決定し得る。この例では、現在の予測構造が代替的な予測構造のいずれよりも高い品質スコアを有する場合、システムは、現在の予測構造を代替的な予測構造のいずれにも更新しないと決定し得る。
いくつかの実装形態では、システムは、品質スコアに基づいて、確率論的な手順(すなわち、何らかのランダム性を伴う)を使用して、現在の予測構造を代替的な予測構造に更新するかどうかを決定し得る。たとえば、システムは、品質スコアを使用して、現在の予測構造および代替的な予測構造の各々を含む構造のセットにわたる確率分布を決定し得る。システムは、確率分布を使用して、現在の予測構造および代替的な予測構造の各々を含む構造のセットからサンプリングされた構造に、現在の予測構造を更新すると決定し得る。
ある特定の例では、システムは、ソフトマックス関数を使用して現在の予測構造および代替的な予測構造の各々のそれぞれの品質スコアを処理することによって、確率分布を決定し得る。別の特定の例では、システムは、温度ハイパーパラメータに従ってソフトマックス関数を使用して現在の予測構造および代替的な予測構造の各々のそれぞれの品質スコアを処理することによって、確率分布を決定し得る。離散的な確率値
によって定義される確率分布は、温度ハイパーパラメータTに従いソフトマックス関数を使用してスコアのセット
を以下の関係
に基づいて処理することによって決定され得る。この例では、より高い温度パラメータは、より均一なスコア分布をもたらすので、現在の予測構造より品質スコアの低い代替的な予測構造にシステムが現在の予測構造を更新し得る尤度が高くなる。
高められた温度ハイパーパラメータに従ってソフトマックス関数を使用して現在の予測構造を代替的な予測構造に更新するかどうかを決定することによって、システムは、あり得るタンパク質構造の空間を「探索する」ことができる。検索コンピューティングユニット(たとえば、図1に関連して説明されるような)は、所定のスケジュールに従って、現在の予測フォールディング構造を更新するために使用される温度の値を変え得る。たとえば、所定のスケジュールは、実行される検索反復の回数が増えるにつれて徐々に減少する初期高値(あり得る構造の空間の初期探索をもたらす)に温度値を設定し得る。
図9は、例示的な構造予測システム900のブロック図である。構造予測システム900は、以下で説明されるシステム、コンポーネント、および技法が実装される1つまたは複数の位置において、1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの例である。
構造予測システム900は、タンパク質904のアミノ酸配列902を定義するデータを処理して、タンパク質904の最終的な予測構造906を生成するように構成される。アミノ酸配列902の各アミノ酸は、アミノ官能基およびカルボキシル官能基、ならびにアミノ酸に固有の側鎖(すなわち、原子団)を含む、有機化合物である。最終的な予測構造906は、タンパク質904がタンパク質フォールディングを経た後のタンパク質904のアミノ酸配列902における原子の3次元構成の推定を定義する。タンパク質フォールディングは、(たとえば、タンパク質904のアミノ酸配列902によって定義される)アミノ酸の配列、たとえばランダムコイルが、固有の3次元構成(たとえば、最終的な予測構造906によって推定されるような)へと折りたたまれる物理的な過程を指す。
アミノ酸配列902は、任意の適切な数値フォーマットで表され得る。たとえば、アミノ酸配列902は、ワンホットベクトルの列として表され得る。この例では、ワンホットベクトルの列の中の各ワンホットベクトルは、アミノ酸配列902の中の対応するアミノ酸を表す。ワンホットベクトルは、(たとえば、所定の数のあり得るアミノ酸のうちの)各々のあり得るアミノ酸に対して異なる成分を有する。ある特定のアミノ酸を表すワンホットベクトルは、特定のアミノ酸に対応する成分では値1(または何らかの他の所定の値)を、他の成分では値0(または何らかの他の所定の値)を有する。
アミノ酸配列902の構造(たとえば、システム900による最終的な予測構造906の出力)は、構造パラメータのセットの値によって定義される。いくつかの実装形態では、構造パラメータは3次元(3D)数値座標(たとえば、3Dベクトルとして表される)の列であり、ここで、各座標は、アミノ酸配列902からのアミノ酸における対応する原子の位置(何らかの所与の基準枠における)を表す。たとえば、構造パラメータは、構造におけるアミノ酸のα炭素原子のそれぞれの位置を表す3D数値座標の列であり得る。主鎖原子と本明細書で呼ばれるα炭素原子は、アミノ官能基、カルボキシル官能基、および側鎖が結合するアミノ酸の中の炭素原子を指す。いくつかの実装形態では、構造パラメータは、構造の中のアミノ酸の特定の原子間のねじれ(すなわち、二面)角の列である。たとえば、構造パラメータは、構造の中のアミノ酸の主鎖原子間のファイ(φ)、プサイ(ψ)、および任意選択でオメガ(ω)二面角の列であり得る。
最終的な予測構造906を生成するために、システム900は、最適化システム908を使用してタンパク質904の複数の予測構造910を生成し、複数の予測構造910の各々が、タンパク質904の最終的な予測構造906の候補である。複数の予測構造910を生成した後、システム900は、(以下でより詳しく説明されるように)選択エンジン912を使用して、予測構造910のうちの1つを最終的な予測構造906として選択する。
予測構造910を生成するために、最適化システム908はまず、タンパク質904の構造を定義する構造パラメータのセットの初期値を取得する。一般に、最適化システム908は、何らかのランダム性を伴う処理を使用して構造パラメータのセットの初期値を決定し、それにより、最適化システム908があり得る予測構造の空間を「探索する」ことが可能になる。ある特定の例では、最適化システム908がタンパク質に対する1つまたは複数の予測構造910を以前に生成している場合、構造パラメータの初期値を決定するために、最適化システム908は、タンパク質に対する以前に生成された予測構造910を定義する構造パラメータの値を取得し得る。続いて、最適化システム908は、(図11を参照してより詳しく説明されるように)ランダムノイズ値を使用して、以前に生成された予測構造を定義する構造パラメータの値に擾乱を与えることによって、構造パラメータの初期値を決定し得る。
構造パラメータの初期値を決定すると、最適化システム908は、複数の更新反復にわたって構造パラメータの値を反復的に更新(すなわち、調整)する。終了基準が満たされると最適化システム908が決定するとき、最適化システム908は、最後の更新反復の後で構造パラメータの現在値によって定義される予測構造910を出力する。
最適化システム908は、品質スコアの高い予測構造を生成するために、複数の更新反復にわたって構造パラメータの値を更新するように構成される。以下でより詳しく説明されるように、予測構造の品質スコアは、予測構造の品質、たとえば、予測構造がタンパク質904の実際の構造にどれだけよく適合するかを特徴付ける。便宜的に、本明細書では、より高い品質スコアは、より高品質の予測構造を特徴付けるものと理解される。
各更新反復において、最適化システム908は、スコアリングシステム916を使用して現在の構造パラメータ値914およびアミノ酸配列902の表現を処理して、現在の構造パラメータ値914によって定義される予測構造の品質を特徴付ける品質スコア918を生成する。図10に関連してより詳しく説明されるように、スコアリングシステム916は、(i)構造パラメータ尤度スコア、(ii)ジオメトリスコア、(iii)距離尤度スコア、または(iv)1つまたは複数の追加のスコアのうちの1つまたは複数に基づいて、品質スコア918を決定することができる。
スコアリングシステム916は、各構造パラメータのとり得る値にわたるそれぞれの確率分布を決定し、これらの確率分布に従って現在の構造パラメータ値914の尤度を決定することによって、構造パラメータ尤度スコアを決定することができる。スコアリングシステム916は、現在の構造パラメータ値914によって定義される予測構造とタンパク質904の実際の構造との間の類似性尺度の推定を生成することによって、ジオメトリスコアを決定することができる。スコアリングシステム916は、アミノ酸配列102のアミノ酸の各ペア間のとり得る距離範囲にわたるそれぞれの確率分布を決定し、これらの確率分布に従って現在の構造パラメータ値によって定義される予測構造の尤度を決定することによって、距離尤度スコアを決定することができる。スコアリングシステム916は、現在の構造パラメータ値914によって定義される予測構造が現実世界のタンパク質構造についての生化学的な制約にどれだけよく適合するかに基づいて、追加のスコアを決定することができる。本明細書全体で使用されるように、(たとえば、構造パラメータ尤度スコアおよび距離尤度スコアにおけるような)「尤度」という用語は、確率分布から導かれる任意の数値を指すことができる。
現在の構造パラメータ値914によって定義される予測構造に対する品質スコア918を決定した後で、最適化システム908は、更新エンジン920を使用して、最適化システム908が現在の構造パラメータ値914を調整するために後で使用する構造パラメータ調整922を決定する。たとえば、構造パラメータ調整922は、各構造パラメータに対応するそれぞれの数値を含み得る。この例では、最適化システム908は、対応する構造パラメータ調整値922を各々の現在の構造パラメータ値914に追加することによって、現在の構造パラメータ値914を調整し得る。
図11を参照してさらに説明されるように、更新エンジン920は、各々の現在の構造パラメータ値914に関する品質スコア918のそれぞれの勾配を決定することによって、構造パラメータ調整922を決定するように構成される。更新エンジン920は、現在の構造パラメータ値914に関する品質スコア918の勾配を使用して、構造パラメータ調整922を決定する。現在の構造パラメータ値914に関する品質スコア918の勾配は、得られた構造パラメータ値により定義される予測構造の品質スコア918を徐々に改善するために、現在の構造パラメータ値914が調整され得る「方向」を示す。
一般に、最適化システム908によって生成される予測構造910の各々は、互いに異なる。具体的には、最適化システム908によって生成される予測構造910の各々を定義する構造パラメータ値は異なり、それは、それらが異なる(たとえば、ランダムに決定された)初期構造パラメータ値から導出されるからである。選択エンジン912は、対応する品質スコア918が最高の予測構造910を最終的な予測構造906として選択するように構成され得る。このようにして、システム900は、最適化システム908によって生成される予測構造910の「最良」を出力する。
一般に、最適化システム908は、ドメインセグメンテーションに依存することなく、タンパク質全体の予測構造を一緒に最適化することができる。
図10は、例示的なスコアリングシステム916のブロック図である。スコアリングシステム916は、以下で説明されるシステム、コンポーネント、および技法が実装される1つまたは複数の位置において、1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの例である。スコアリングシステム916は、図5に関連して説明されるスコアリングシステム136の代替的な実装形態として理解され得る。一般に、スコアリングシステムは、図5および図10に関連して説明されるスコアリングシステムのコンポーネントのいずれかの任意の組合せを含み得る。
スコアリングシステム916は、最適化システム908の各更新反復においてタンパク質904のアミノ酸配列902の表現および現在の構造パラメータ値914を処理して、品質スコア918を生成するように構成される。品質スコア918は、現在の構造パラメータ値914によって定義されるタンパク質904の予測構造の品質を特徴付ける数値である。スコアリングシステム916は、(i)構造パラメータ尤度スコア、(ii)ジオメトリスコア、(iii)距離尤度スコア、または(iv)1つまたは複数の追加のスコアのうちの1つまたは複数を生成し、その後、(たとえば、加重線形結合として)それらを組み合わせて品質スコア918を生成する。
構造パラメータ尤度スコア1002を生成するために、スコアリングシステム916は、構造予測ニューラルネットワーク1004を使用して、アミノ酸配列902の表現を含む入力を処理することができる。前に説明されたように、アミノ酸配列902の表現は、アミノ酸配列902の各アミノ酸を表すワンホットベクトルの列であり得る。アミノ酸配列902の表現に加えて、構造予測ニューラルネットワーク1004は、たとえば、アミノ酸配列902を伴う他のタンパク質からのアミノ酸配列の多重配列整列(MSA)から導かれるデータを含む、追加の入力を処理するように構成され得る。MSAは、複数の他のタンパク質からのアミノ酸配列の中のアミノ酸と、アミノ酸配列902の中のアミノ酸との対応関係を指す。MSAは、任意の適切な計算配列整列技法(たとえば、プログレッシブアライメント構築)を使用して、他のタンパク質のアミノ酸配列(たとえば、データベースに記憶されている)を処理することによって生成され得る。MSAから導かれる構造予測ニューラルネットワーク1004への追加の入力は、MSA自体の表現、S.Seemayer、M.Gruber、およびJ.Soding:「CCMpred:fast and precise prediction of protein residue-residue contacts from correlated mutations」、Bioinformatics、2014に関連して説明されるものなどのMSAから導かれる統計特徴量(たとえば、二次統計特徴量)、またはこれらの両方を含み得る。
構造予測ニューラルネットワーク1004は、構造予測ニューラルネットワーク重みの値に従って構造予測ニューラルネットワーク入力を処理し、各構造パラメータに対して、構造パラメータのとり得る値にわたるそれぞれの確率分布を定義する出力を生成するように構成される。構造パラメータの各々のとり得る値にわたる確率分布は、本明細書では構造パラメータ分布1006と呼ばれる(そして図面においてそのように特定される)。たとえば、構造パラメータがアミノ酸配列902の主鎖原子間のねじれ角のセットである場合、各ねじれ角に対して、構造予測ニューラルネットワーク1004は、とり得る角度範囲のセットの各々に対するそれぞれの確率を生成し得る。ある特定の例では、構造予測ニューラルネットワーク1004は、角度範囲
の各々に対するそれぞれの確率を生成し得る。別の特定の例では、構造予測ニューラルネットワーク1004は、アミノ酸配列902の各アミノ酸に対する構造パラメータ(たとえば、ねじれ角)のとり得る値のセットにわたる、それぞれの共同確率分布を定義するデータを生成し得る。別の特定の例では、構造予測ニューラルネットワーク1004は、構造パラメータ(たとえば、ねじれ角)のとり得る値にわたるパラメトリック確率分布(たとえば、フォンミーゼス確率分布)のパラメータの値を生成し得る。
構造パラメータ分布1006から構造パラメータ尤度スコア1002を決定するために、評価エンジン1008は、構造予測ニューラルネットワーク1004によって生成される構造パラメータのとり得る値にわたる対応する確率分布を使用して、各々の現在の構造パラメータ値914の確率を決定する。評価エンジン1008はその後、各々の現在の構造パラメータ値のそれぞれの確率に基づいて、たとえば、
によって表される量に基づいて、構造パラメータ尤度スコア1002を決定してもよく、ここで、積は各構造パラメータiにわたり、
は、構造予測ニューラルネットワーク1004によって生成される構造パラメータのとり得る値にわたる確率分布
に従って、現在の構造パラメータ値τiの確率を表記する。特定の例では、評価エンジン1008は、式(4)によって表される量として、または式(4)によって表される量の関数(たとえば、対数)として、構造パラメータ尤度スコア1002を決定し得る。
いくつかの場合、たとえば(上で説明されたように)構造パラメータ分布1006が、とり得る構造パラメータ値の範囲にわたる離散的な確率分布であるとき、構造パラメータ分布1006に関連して決定される構造パラメータ尤度スコア1002は微分可能ではないことがある。構造パラメータ尤度スコア1002を(すなわち、現在の構造パラメータ値914に関して)微分可能にするために、評価エンジン1008は、構造パラメータ分布1006の各々に微分可能な関数をフィッティングし得る。続いて、評価エンジン1008は、各構造パラメータ分布1006にフィッティングされた微分可能な関数に関連して、構造パラメータ尤度スコア1002を決定し得る。所与の構造パラメータ分布1006に微分可能な関数をフィッティングすることは、微分可能な関数を所与の構造パラメータ分布1006と可能な限りよく一致させるような、微分可能な関数を定義するパラメータの値を決定することを指す。評価エンジン1008は、微分可能な関数を構造パラメータ分布にフィッティングするための任意の適切な方法、たとえば、モーメント法または最尤法を使用することができる。
いくつかの場合、評価エンジン1008は、構造予測ニューラルネットワーク1004によって生成される構造パラメータ分布1006の各々に、それぞれのパラメトリック確率分布(微分可能な確率密度関数を伴う)をフィッティングし得る。たとえば、パラメトリック確率分布は、分布パラメータμおよびκを伴う単峰性フォンミーゼス確率分布であり得る。いくつかの他の場合、評価エンジン1008は、構造予測ニューラルネットワーク1004によって生成される構造パラメータ分布1006の各々にそれぞれのスプライン(たとえば、3次スプライン)をフィッティングし得る。構造予測ニューラルネットワーク1004によって最初に生成される構造パラメータ分布が非凸状である(たとえば、多峰性)であるときでも、評価エンジン1008によって構造パラメータ分布にフィッティングされる微分可能な関数は、凸関数(たとえば、単峰性フォンミーゼス確率分布)であり得る。図11に関連してさらに説明されるように、構造パラメータ分布1006にフィッティングされる微分可能な凸関数に関連して構造パラメータ尤度スコア1002を決定することは、品質スコア918に対して勾配降下法を実行することを容易にする。
ジオメトリスコア1010を生成するために、スコアリングシステム916は、ジオメトリニューラルネットワーク1012を使用して、アミノ酸配列902の表現および現在の構造パラメータ値914を含む入力を処理することができる。ジオメトリニューラルネットワークは、(前に説明されたような)アミノ酸配列902を伴う他のタンパク質からのアミノ酸配列のMSAから導かれるデータなどの、追加の入力を処理し得る。ジオメトリニューラルネットワーク1012は、ジオメトリニューラルネットワーク重みの値に従ってジオメトリニューラルネットワーク入力を処理し、ジオメトリスコア1010を生成するように構成される。ジオメトリスコア1010は、現在の構造パラメータ値914によって定義される予測構造とタンパク質904の実際の構造との間の類似性尺度の推定である。たとえば、類似性尺度は、現在の構造パラメータ値914と、タンパク質904の実際の構造を定義する構造パラメータ値との間の、平均二乗偏差(RMSD)であり得る。別の例として、類似性尺度は、グローバル距離テスト(GDT)類似性尺度であり得る。GDT類似性は、現在の構造パラメータ値914により定義される予測構造におけるそれらの位置がタンパク質904の実際の構造におけるそれらの位置から所定の距離以内にある、アミノ酸配列902の中のアミノ酸の主鎖原子の割合として定義され得る。
距離尤度スコア1014を生成するために、スコアリングシステム916は、距離予測ニューラルネットワーク1016を使用して、アミノ酸配列902の表現を含む入力を処理することができる。距離予測ニューラルネットワーク1016は、(前に説明されたような)アミノ酸配列902を伴う他のタンパク質からのアミノ酸配列のMSAから導かれるデータなどの、追加の入力を処理し得る。距離予測ニューラルネットワーク1016は、距離予測ニューラルネットワーク重みの現在値に従って距離予測ニューラルネットワーク入力を処理して、距離マップ1018を生成するように構成される。距離マップ1018は、アミノ酸配列902の中のアミノ酸の各ペア(すなわち、アミノ酸配列902からの2つの異なるアミノ酸の各セット)に対して、アミノ酸のペア間のとり得る範囲距離にわたるそれぞれの確率分布を定義する。アミノ酸配列902の中の第1のアミノ酸と第2のアミノ酸との間の距離は、第1のアミノ酸の特定の原子(たとえば、α炭素原子などの主鎖原子、またはβ炭素原子)と、第2のアミノ酸の特定の原子との間の物理的距離(たとえば、オングストロームで測定される)を指す。ある特定の例では、アミノ酸配列902の中のアミノ酸の各ペアに対して、距離マップ1018は、アミノ酸のペアが距離範囲[0,2A)、[2A,4A)、[4A,6A)、[6A,∞)だけ離れているそれぞれの確率を含んでもよく、Aはオングストロームを表す。別の例では、前に説明されたように、64個の距離範囲が使用される。いくつかの実装形態では、距離予測ニューラルネットワーク1016は、たとえば前に説明されたように、距離マップサブセットまたはクロップを生成するために使用されてもよく、これは次いで、距離マップ1018を取得するために組み合わせられてもよい。したがって、距離予測システム528は、距離マップ1018を生成するために構造予測システム900において使用され得る。
評価エンジン1008は、距離マップ1018を使用して、アミノ酸配列902のアミノ酸の各ペアが現在の構造パラメータ値により定義されるそれぞれの距離di,jだけ離れているそれぞれの確率を決定する。構造パラメータが数値座標の列であり、各座標がアミノ酸配列902の中のアミノ酸の対応する主鎖原子の位置を表すとき、現在の構造パラメータ値914は、アミノ酸の各ペア間の距離を直接定義する。たとえば、アミノ酸のペア間の距離は、アミノ酸のペアの中のアミノ酸の各々のそれぞれの原子、たとえばアミノ酸のペアのβ炭素原子の位置を表す、対応する数値座標間のユークリッド距離によって定義され得る。構造パラメータがアミノ酸配列902の中の各アミノ酸のそれぞれの原子間のねじれ角の列であるとき、現在の構造パラメータ値914は、(前に説明されたように)アミノ酸配列902の中のアミノ酸の各ペアの位置、およびしたがってそれらの間の距離を、間接的に定義する。
評価エンジン1008は、アミノ酸配列902のアミノ酸の各ペアが現在の構造パラメータ値914により定義されるそれぞれの距離だけ離れているそれぞれの確率を使用して、距離尤度スコア1014を生成する。たとえば、評価エンジン1008は、
によって表される量に基づいて距離尤度スコア1014を生成してもよく、ここで積は(i,j)によってインデクシングされるアミノ酸配列902のアミノ酸のペアにわたり、
は、距離マップ1018によって定義されるアミノ酸残基のペア(i,j)間のとり得る距離範囲にわたる対応する確率分布
に従って、(i,j)によってインデクシングされるアミノ酸ペアが現在の構造パラメータ値914によって定義される距離di,jだけ離れている確率を表記する。特定の例では、評価エンジン1008は、式(5)によって表される量として、または式(5)によって表される量の関数(たとえば、負の対数)(たとえば、負の対数確率)として、距離尤度スコア1014を決定し得る。
いくつかの場合、評価エンジン1008は加えて、「参照」距離マップを使用して距離尤度スコア1014を決定し得る。参照距離マップは、アミノ酸配列902のアミノ酸の各ペア間で一般に予想される、しかしアミノ酸配列902の中の特定のアミノ酸の識別情報を参照することなく決定される、推定距離を特徴付ける。たとえば、アミノ酸配列902のアミノ酸の各ペアに対して、参照距離マップは、アミノ酸ペアにおけるアミノ酸の位置および相対的なオフセットに基づいて、アミノ酸のペア間の推定距離を特徴付け得る。所与のアミノ酸の位置は、アミノ酸配列における所与のアミノ酸と最初のアミノ酸の間にある他のアミノ酸の数を指す。2つのアミノ酸間の相対的なオフセットは、アミノ酸配列の中の2つのアミノ酸の間にある他のアミノ酸の数を指す。距離マップ1018と同様に、参照距離マップは、とり得る距離範囲のセットにわたるそれぞれの確率分布によって、アミノ酸配列902の中のアミノ酸の各ペア間の推定距離を特徴付ける。
スコアリングシステム916は、様々なタンパク質の実際の構造のタンパク質構造データベースを使用して、参照距離マップを生成し得る。ある特定の例では、スコアリングシステム916は、同じ位置および相対的なオフセットを伴う、タンパク質構造データベースの中のそれぞれのタンパク質構造に含まれるアミノ酸の各ペアに基づいて、アミノ酸のペア間のとり得る距離範囲のセットにわたる参照確率分布を決定し得る。別の特定の例では、スコアリングシステム916は、タンパク質のアミノ酸配列の長さを特徴付ける(しかし、たとえば整列特徴量またはアミノ酸を特定する特徴量を含まない)入力を処理するように構成される別個の距離予測ニューラルネットワーク(または距離予測システム528)の出力に基づいて、参照確率分布を決定することができる。そのような別個の距離予測ニューラルネットワークは、距離予測ニューラルネットワーク616または1016を訓練するために使用されるのと同じ訓練データセット(しかし、それらの間の距離が予測される原子を考慮するために、アミノ酸がβ炭素のないグリシンであるかどうかを示す入力特徴量を伴う)を使用して訓練され得る。
評価エンジン1008は、参照距離マップに従って、アミノ酸配列902の中のアミノ酸の各ペアが現在の構造パラメータ値914によって定義されるそれぞれの距離だけ離れていることのそれぞれの確率を使用して、距離尤度スコア1014を生成することができる。たとえば、評価エンジン1008は、
によって表される量に基づいて距離尤度スコア1014を生成してもよく、ここで積は(i,j)によってインデクシングされるアミノ酸配列902の中のアミノ酸のペアにわたり、
は、参照距離マップによって定義されるアミノ酸残基のペア(i,j)間のとり得る距離範囲にわたる対応する確率分布
に従って、(i,j)によってインデクシングされるアミノ酸ペアが現在の構造パラメータ値914により定義される距離di,jだけ離れている確率を表記する。ある特定の例では、評価エンジン1008は、
によって表される量として距離尤度スコア1014を決定してもよく、ここで式(7)の変数は、式(5)および(6)における場合と同じ定義を有する。
いくつかの場合、たとえば距離マップ1018および参照距離マップがアミノ酸のペア間のとり得る距離範囲にわたる離散的な確率分布を定義するとき、距離マップ1018および参照距離マップに関連して決定される距離尤度スコア1014は微分可能ではないことがある。距離尤度スコア1014を(すなわち、現在の構造パラメータ値914に関して)微分可能にするために、評価エンジン1008は、距離マップ1018および参照距離マップによって定義される確率分布の各々に微分可能な関数をフィッティングし得る。続いて、評価エンジン1008は、距離マップ1018および参照距離マップによって定義される確率分布の各々にフィッティングされた微分可能な関数に関連して、距離尤度スコア1014を決定し得る。構造パラメータ分布1006に関して上で説明されたように、評価エンジン1008は、それぞれのパラメトリック確率分布(たとえば、単峰性フォンミーゼス確率分布)またはスプラインを、距離マップ1018および参照距離マップによって定義される確率分布の各々にフィッティングし得る。たとえば、評価エンジン1008は、3次スプラインなどのスプラインを用いて、離散的な確率、たとえば負の対数確率を補間してもよく、これは距離ポテンシャルと呼ばれ得る。いくつかの実装形態では、距離ポテンシャルは、閾値の距離、たとえば18Åより上で一定の外挿を有することがあり、それは、長い距離は正確に予測するのが難しいからである。
前に言及されたように、スコアリングシステム916は、距離マップ全体1018の適切なサブセットである距離マップクロップのセットを生成し、次いで距離マップクロップを融合する(たとえば、重複する距離マップクロップを平均化する)ことによって、図6に関連して説明されるような距離マップ1018を決定することができる。
スコアリングシステム916は、1つまたは複数の追加のスコア、たとえば物理制約スコアまたは物理的制約スコアに基づいて、品質スコア918を決定することができる。物理スコアは、現在の構造パラメータ値914によって定義される予測構造が現実世界のタンパク質構造に対する生化学的な制約にどれだけよく適合するかに基づいて、現在の構造パラメータ値914の尤度を特徴付け得る。たとえば、スコアリングシステム916は、予測構造と関連付けられる原子間ポテンシャルエネルギーを特徴付けるファンデルワールスポテンシャルに基づいて物理スコアを決定してもよく、この項は立体的な衝突を防ぐことの役に立ち得る。この例では、スコアリングシステム916は、
として物理スコアを決定してもよく、iおよびjはアミノ酸配列902の中のアミノ酸をインデクシングし、rijはアミノ酸iおよびアミノ酸jに対する合計のファンデルワールス半径を表し、dijはアミノ酸iとアミノ酸jとの間の原子間距離を表す。
前に言及されたように、たとえば式(7)において表現されるような、距離尤度スコア1014は、たとえば勾配降下法によって最小化されるべき距離ベースのポテンシャルと考えられ得る。これは、構造パラメータ尤度スコアに基づくポテンシャル、たとえば、フォンミーゼス確率分布(-Σilogp(φi,ψi))に従った各残基に対するねじれ角の負の対数尤度の合計と、および/または、式(8)の物理スコアに基づくポテンシャルと、組み合わされてもよく、たとえば合計されてもよい。(7)および(8)は(φ,ψ)ではなくdijの関数であるので、勾配降下法を実行して(φ,ψ)を最適化するとき、dijを、タンパク質ジオメトリの微分可能なモデルx=G(φ,ψ)によって(φ,ψ)と関連付けることができ、ここでxは原子座標、たとえばβ炭素座標を表記し、dij=||xi-xj||である。したがって、距離尤度スコア1014(「距離ベースのポテンシャル」)は、勾配降下アルゴリズムによってこれらのねじれ角を最適化するのを容易にするために、(φ,ψ)の関数として表され得る。
一般に、構造予測ニューラルネットワーク1004、ジオメトリニューラルネットワーク1012、および距離予測ニューラルネットワーク1016は、任意の適切なニューラルネットワーク構成で実装され得る。たとえば、構造予測ニューラルネットワーク1004、ジオメトリニューラルネットワーク1012、および距離予測ニューラルネットワーク1016は、複数の畳み込みニューラルネットワーク層、注意層、および残差ブロックを含み得る。いくつかの場合、畳み込み層は、それぞれの受容野のサイズを増大させるための拡張畳み込みフィルタを含み得る。いくつかの実装形態では、構造予測ニューラルネットワーク1004は、自己回帰アーキテクチャ(たとえば、WaveNetニューラルネットワークアーキテクチャから導かれる、ibid)を有してもよく、これは続いて、先行する構造パラメータの構造パラメータ値を条件とする各構造パラメータ分布を生成する。いくつかの実装形態では、構造予測ニューラルネットワーク1004は、複数の内部時間ステップの各々においてランダムにサンプリングされた潜在変数を処理することによって構造パラメータ分布を生成する、変分オートエンコーダから導かれるアーキテクチャ(たとえば、DRAWニューラルネットワークアーキテクチャから導かれる、ibid)を有し得る。
いくつかの場合、スコアリングニューラルネットワークのうちの1つまたは複数は、重み値を共有し得る。ニューラルネットワークは、重み値がニューラルネットワークの各々において同じである場合、重み値を共有すると言われ、(たとえば、訓練の間に)ニューラルネットワークのいずれかの重み値を変更すると、すべてのニューラルネットワークにおいて重み値が変化する。たとえば、構造予測ニューラルネットワーク1004および距離予測ニューラルネットワーク1016は、1つまたは複数のニューラルネットワーク層において同じ重み値を共有し得る。
構造予測ニューラルネットワーク1004、ジオメトリニューラルネットワーク1012、および距離予測ニューラルネットワーク1016は、(以下でより詳しく説明されるように)訓練データのそれぞれのセットに対して機械学習訓練技法(たとえば、確率的勾配降下法)を使用して訓練され得る。
構造予測ニューラルネットワーク1004は、複数の訓練例を含む訓練データのセットに基づいて訓練され得る。各訓練例は、(i)既知の構造を伴う訓練タンパク質から導かれる訓練ネットワーク入力、および(ii)訓練タンパク質の既知の構造を定義する目標構造パラメータ値を含み得る。訓練ネットワーク入力は、訓練タンパク質のアミノ酸配列の表現、および任意選択で、アミノ酸配列902を伴う他のタンパク質からのアミノ酸配列のMSAから導かれるデータを含む。目標構造パラメータ値は、訓練ネットワーク入力を処理することによって構造予測ニューラルネットワーク1004によって生成される構造パラメータ分布1006により高い確率で割り当てられるべきパラメータ値を表す。訓練タンパク質の構造は、実験的な方法(たとえば、X線結晶構造解析)を通じて導かれたものであってもよい。
ジオメトリニューラルネットワーク1012は、複数の訓練例を含む訓練データのセットに基づいて訓練され得る。各訓練例は、(i)既知の構造を伴う訓練タンパク質から導かれる訓練ネットワーク入力、(ii)タンパク質の訓練予測構造、および(iii)タンパク質の訓練予測構造とタンパク質の実際の構造との間の類似性尺度である目標ジオメトリスコアを含み得る。訓練ネットワーク入力は、訓練タンパク質のアミノ酸配列の表現、訓練タンパク質の構造を定義する構造パラメータ値、および任意選択で、アミノ酸配列902を伴う他のタンパク質からのアミノ酸配列のMSAから導かれるデータを含む。訓練予測構造に対する目標ジオメトリスコアは、訓練ネットワーク入力を処理することによって、ジオメトリニューラルネットワーク1012によって生成されるべきジオメトリスコアを表す。訓練タンパク質の構造は、実験的な方法(たとえば、X線結晶構造解析)を通じて導かれたものであってもよい。
いくつかの場合、ジオメトリニューラルネットワーク1012は、コントラスティブダイバージェンス訓練手順を使用して訓練され得る。この場合、ジオメトリニューラルネットワークによって生成されるジオメトリスコアは、タンパク質の予測構造と実際の構造との間の特定の類似性尺度の直接の推定ではないことがある。本明細書におけるジオメトリニューラルネットワーク1012の説明は、ジオメトリニューラルネットワークがコントラスティブダイバージェンス訓練手順を使用して訓練される場合を含むものとして理解されるべきである。
距離予測ニューラルネットワーク1016は、複数の訓練例を含む訓練データセットに基づいて訓練され得る。各訓練例は、(i)既知の構造を伴う訓練タンパク質から導かれる訓練ネットワーク入力、および(ii)訓練タンパク質のアミノ酸配列のアミノ酸の各ペア間のそれぞれの距離を定義する目標距離マップを含み得る。訓練ネットワーク入力は、訓練タンパク質のアミノ酸配列の表現、および任意選択で、アミノ酸配列902を伴う他のタンパク質からのアミノ酸配列のMSAから導かれるデータを含む。目標距離マップは、訓練ネットワーク入力を処理することによって距離予測ニューラルネットワーク1016によって生成される距離マップ1018の確率分布により高い確率を割り当てられるべきアミノ酸ペア間の距離を表す。
図11は、タンパク質の予測構造を決定するための例示的なプロセス1100の流れ図である。便宜的に、プロセス1100は、1つまたは複数の位置に位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされる最適化システム、たとえば図9の最適化システム908は、プロセス1100を実行することができる。具体的には、最適化システム908は、プロセス1100を複数回実行して、タンパク質の複数の予測構造を決定することができる。
システムは、タンパク質の構造を定義する構造パラメータの各々に対するそれぞれの初期値を決定する(1102)。一般に、以下でより詳しく説明されるように、システムは、何らかのランダム性を伴うプロセスを使用して、構造パラメータの初期値を決定する。
いくつかの実装形態では、構造パラメータの初期値を決定するために、システムは、(たとえば、プロセス1100を実行することによって)システムによって以前に生成されたタンパク質の予測構造を定義する構造パラメータ値を取得する。システムは次いで、ランダムノイズ値を使用して以前に生成された予測構造を定義する構造パラメータの取得された値に擾乱を与えることによって、構造パラメータの初期値を決定する。たとえば、システムは、所定の確率分布(たとえば、ゼロ平均ガウス分布)からサンプリングすることによってランダムノイズ値を生成し、生成されたランダムノイズ値を、以前に生成された予測構造を定義する構造パラメータ値に追加することによって、構造パラメータの初期値を決定し得る。
いくつかの実装形態では、構造パラメータの初期値を決定するために、システムは、システムによって以前に生成されたタンパク質の複数の予測構造を定義する構造パラメータ値を取得する。システムは次いで、タンパク質の以前に予測された構造の各々を定義する構造パラメータ値を組み合わせることによって、構造パラメータの初期値を決定する。たとえば、システムは、タンパク質の以前に予測された構造の各々を定義する構造パラメータ値を平均化することによって、構造パラメータの初期値を決定し得る。別の例として、システムは、タンパク質の以前に予測された構造の各々を定義する構造パラメータ値の抽出解体部分によって、構造パラメータの初期値を決定し得る。
いくつかの実装形態では、構造パラメータの初期値を決定するために、システムは、構造予測ニューラルネットワークを使用して、タンパク質のアミノ酸配列の表現を含む入力を処理する。図10に関連して説明されたように、構造予測ニューラルネットワークは、入力を処理して、各構造パラメータに対して、構造パラメータのとり得る値にわたるそれぞれの確率分布を定義する出力を生成するように構成される。システムは次いで、構造パラメータのとり得る値にわたる対応する確率分布から値をサンプリングすることによって、各構造パラメータの初期値を決定する。たとえば、構造パラメータがアミノ酸配列の主鎖原子間のねじれ角のセットである場合、各ねじれ角に対して、構造予測ニューラルネットワークは、とり得る角度範囲のセットにわたるそれぞれの確率を生成し得る。この例では、各構造パラメータに対して、システムは、構造パラメータに対応する確率分布に従って角度範囲をサンプリングし、サンプリングされた角度範囲からランダムに選択された特定のねじれ角として構造パラメータの初期値を決定し得る。
システムは、現在の構造パラメータ値によって定義されるタンパク質の予測構造の品質を特徴付ける品質スコアを決定する(1104)。プロセス1100の最初の反復に対して、現在の構造パラメータ値は初期構造パラメータ値(すなわち、1102に関連して説明されるような)である。図10に関連してより詳しく説明されるように、システムは、1つまたは複数のスコアリングニューラルネットワークのそれぞれの出力に基づいて、現在の構造パラメータ値によって定義される予測構造の品質スコアを決定する。スコアリングニューラルネットワークの各々は、(i)構造パラメータの現在値、(ii)タンパク質のアミノ酸配列の表現、または(iii)両方を処理するように構成される。スコアリングニューラルネットワークは、構造予測ニューラルネットワーク、ジオメトリニューラルネットワーク、および距離予測ニューラルネットワークのうちの1つまたは複数を含み得る。
一般に、スコアリングニューラルネットワークの一部(たとえば、構造予測ニューラルネットワークおよび距離予測ニューラルネットワーク)は、現在の構造パラメータ値を含まない入力を処理するように構成され得る。システムは、これらのスコアリングニューラルネットワークに提供される入力を一度(すなわち、プロセス1100の最初の反復の前に)処理することができる。その後、プロセス1100の各反復において、システムは、これらのスコアリングニューラルネットワークによって生成されるそれぞれの出力を使用して、それらのそれぞれの入力を再処理することなく品質スコアを決定することができる。現在の構造パラメータ値を含む入力を処理するスコアリングニューラルネットワーク(たとえば、ジオメトリニューラルネットワーク)に対して、システムは、反復に対する品質スコアを決定するために、プロセス1100の各反復においてそれぞれの入力を処理しなければならない。
システムは、各々の現在の構造パラメータ値に関する品質スコアのそれぞれの勾配を決定する(1106)。現在の構造パラメータ値に関して品質スコアの勾配を決定するために、システムは、現在の構造パラメータ値に関する品質スコアを決定するために使用される個々のスコアの各々の勾配を決定することができる。品質スコアを決定するために使用される個々のスコアは、構造パラメータ尤度スコア、ジオメトリスコア、距離尤度スコア、および物理スコアのうちの1つまたは複数を含み得る。品質スコアは個々のスコアの関数(たとえば、加重線形結合)であるので、現在の構造パラメータ値に関する品質スコアの勾配は、現在の構造パラメータに関する個々のスコアの各々の勾配から決定され得る。たとえば、品質スコアが
QS=α1・SPLS+α2・GS+α3・DLS (9)
により与えられ、QSが品質スコアであり、SPLSが構造パラメータ尤度スコアであり、GSがジオメトリスコアであり、DLSが距離尤度スコアであり、
が定数値である場合、現在の構造パラメータ値rに関する品質スコアの勾配は、
∇rQS=α1・∇rSPLS+α2・∇rGS+α3・∇rDLS (10)
により与えられ、∇rQSは現在の構造パラメータ値rに関する品質スコアの勾配であり、∇rSPLSは現在の構造パラメータ値rに関する構造パラメータ尤度スコアの勾配であり、∇rGSは現在の構造パラメータ値rに関するジオメトリスコアの勾配であり、∇rDLSは現在の構造パラメータ値rに関する距離尤度スコアの勾配である。任意選択で、物理スコアに対する項も含まれ得る。任意選択で、他の項、たとえば∇rGSは省略され得る。
システムは、任意の適切な計算方法を使用して、現在の構造パラメータ値に関する、構造パラメータ尤度スコア、ジオメトリスコア、距離尤度スコア、および物理スコアの勾配を決定することができる(一般に、これらのスコアの各々は、構造パラメータ値の微分可能な関数である)。たとえば、現在の構造パラメータ値に関するジオメトリスコアの勾配を決定するために、システムは、ニューラルネットワークの現在の重み値に関する勾配を決定するために通常は使用される、逆伝播アルゴリズムの変形を使用することができる。より具体的には、システムは、ジオメトリニューラルネットワークの重み値を定数として扱い、逆伝播を使用して、ジオメトリニューラルネットワークへの入力として与えられる現在の構造パラメータ値に関するジオメトリスコアの勾配を決定することができる。別の例として、構造パラメータ尤度スコア、距離尤度スコア、および物理スコアの勾配を決定するために、システムは、数値微分法(有限差分法)または自動微分法(たとえば、テンソルフローソフトウェアライブラリにおいて実装されるような)を使用することができる。
システムは、現在の構造パラメータ値に関連する品質スコアの勾配を使用して、現在の構造パラメータ値を更新する(1108)。一般に、システムは、任意の適切な勾配降下最適化アルゴリズム、たとえば、とりわけAdam、RMSprop、Adagrad、Adadelta、AdaMax、およびL-BFGSからの更新規則に基づいて、品質スコアの勾配を使用して現在の構造パラメータ値を更新することができる。いくつかの場合、システムは、「モメンタム」を含む「ウォーム」勾配降下更新規則に基づいて、品質スコアの勾配を使用して現在の構造パラメータ値を更新することができる。更新規則がモメンタムを含むとき、プロセス1100の現在の反復における現在の構造パラメータ値への更新は、プロセス1100の以前の反復における構造パラメータ値への更新に一部基づいて決定される。モメンタムを含むウォーム勾配降下更新規則の例は、R.M.Neal、「MCMC using Hamiltonian dynamics」、Ch.5、Handbook of Markov Chain Monte Carlo、Chapman & Hall/CRC Press、2011に関連して説明される。このようにして、システムは、品質スコア面の極小値を直接見つけるのではなく現在の構造パラメータ値が最適化の間に品質スコア面の「周りを巡る」ことを可能にできる。品質スコア面は、構造パラメータ値によって定義される予測タンパク質構造の品質スコアへの構造パラメータ値からのマッピングによって定義される、高次元の面を指す。
システムは、終了基準が満たされるかどうかを決定する(1110)。たとえば、システムは、現在の構造パラメータ値が少なくとも所定の回数更新された(すなわち、ステップ1104、1106、および1108の所定の回数の反復が実行された)場合に、終了基準が満たされると決定し得る。別の例として、システムは、現在の構造パラメータ値を更新することにより(すなわち、1108に関連して説明されたように)引き起こされる現在の構造パラメータ値の変化が所定の閾値未満である場合に、終了基準が満たされると決定し得る。
終了基準が満たされないとの決定に応答して、システムは、ステップ1104に戻り、先行するステップを繰り返すことができる。終了基準が満たされるとの決定に応答して、システムは、現在のパラメータ値の最後の更新の後の現在のパラメータ値によって定義される予測構造を出力することができる(1112)。図9に関連して説明されるように、システムは、プロセス1100を繰り返し実行してタンパク質の複数の予測構造を生成し、品質スコアが最高の生成された予測構造として最終的な予測構造を選択することによって、タンパク質の最終的な予測構造を決定することができる。
図12は、例示的なドメインセグメンテーションシステム1200のブロック図である。ドメインセグメンテーションシステム1200は、以下で説明されるシステム、コンポーネント、および技法が実装される1つまたは複数の位置において、1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの例である。
ドメインセグメンテーションシステム1200は、タンパク質1204のアミノ酸配列1202を定義するデータを処理して、タンパク質1204のドメインセグメンテーション1206を生成するように構成される。アミノ酸配列1202の中の各アミノ酸は、アミノ官能基およびカルボキシル官能基、ならびにアミノ酸に固有の側鎖(すなわち、原子団)を含む、有機化合物である。一般に、タンパク質のドメインセグメンテーションは、複数のドメインへのタンパク質のアミノ酸配列の区分を定義する。タンパク質のドメインは、タンパク質のアミノ酸配列の残りとは(ほぼまたは完全に)独立にタンパク質フォールディングを経ることができる、タンパク質のアミノ酸配列のアミノ酸サブ配列を定義する。その上、タンパク質ドメインは独立に安定していてもよく、すなわち、タンパク質の残りとは独立に安定した形態で存在することができる。タンパク質フォールディングは、(たとえば、タンパク質1204のアミノ酸配列1202によって定義される)アミノ酸の配列、たとえばランダムコイルが固有の3次元構成へと折りたたまれる物理的な過程を指す。
ある特定の例では、タンパク質のアミノ酸配列は[A,I,L,M,V,A,A,M,L]によって与えられることがあり、Aはアミノ酸アラニンを表し、Iはアミノ酸イソロイシンを表し、Lはアミノ酸ロイシンを表し、Mはアミノ酸メチオニンを表し、Vはアミノ酸バリンを表す。このタンパク質の例示的なドメインセグメンテーションは、[A,I,L]、[M,V,A,A]、「M,L」によって与えられ得る。
タンパク質1204に対してシステム100によって生成されるドメインセグメンテーション1206は、タンパク質1204の予測構造1210を定義する出力を生成するように構成される構造予測システム1208に提供され得る。構造予測システム1208は、ドメインセグメンテーション1206によって指定される各ドメインの予測構造を決定し、続いて、各ドメインの予測構造を組み合わせることによって、タンパク質1204全体の予測構造を決定することができる。タンパク質1204のドメインの予測構造を決定することは一般に、タンパク質1204全体の予測構造を一度に決定するよりも「簡単な」問題である。具体的には、アミノ酸配列のあり得る構造の数はアミノ酸配列の長さとともに指数関数的に増大するので、ドメインのあり得る予測構造の検索空間は一般に、タンパク質1204全体のあり得る予測構造の検索空間よりも指数関数的に小さくなる。タンパク質1204の各ドメインの予測構造を別々に決定することによって、構造予測システム1208は、タンパク質1204全体の構造を直接予測する場合よりも、消費する計算リソース(たとえば、メモリ、計算能力、または両方)を少なくしながら、より正確な予測を生成することができる。
タンパク質の各ドメインの予測構造を生成するために使用され得る構造予測システムの例は、図1および図9に関連して説明される。
ドメインセグメンテーション1206を生成するために、システム1200は、複数のドメインセグメンテーション候補1230(これは、タンパク質1204の複数のドメイン候補を各々指定する)を生成し、ドメインセグメンテーション候補1230の各々に対するそれぞれのドメインセグメンテーションスコア1214を決定する。以下でより詳しく説明されるように、システム1200は続いて、ドメインセグメンテーションスコア1214を使用して、システム1200によって出力されるドメインセグメンテーション1206としてドメインセグメンテーション候補1230のうちの1つを選択する。
システム1200は、ドメインセグメンテーションエンジン1216を使用してドメインセグメンテーション候補1230を生成する。いくつかの実装形態では、ドメインセグメンテーションエンジン1216は、タンパク質1204の1つ1つのあり得るドメインセグメンテーションに対応するドメインセグメンテーション候補1230を生成する。いくつかの他の実装形態では、ドメインセグメンテーションエンジン1216は、タンパク質1204のあり得るドメインセグメンテーションの適切なサブセットに対応するドメインセグメンテーション候補1230を(たとえば、タンパク質1204の所定の数のあり得るドメインセグメンテーションをランダムにサンプリングすることによって)生成する。
システム1200は、スコアリングエンジン1218を使用して各ドメインセグメンテーション候補1230に対するそれぞれのドメインセグメンテーションスコア1214を決定する。ドメインセグメンテーション候補1230に対するドメインセグメンテーションスコア1214を決定するために、スコアリングエンジン1218は、ドメインセグメンテーション候補1230によって定義される各ドメイン候補に対するそれぞれのドメインスコアを決定する。スコアリングエンジン1218は続いて、ドメインセグメンテーション候補1230によって定義される各ドメイン候補に対するそれぞれのドメインスコアを使用して、ドメインセグメンテーション候補1230に対するドメインセグメンテーションスコア1214を決定する。たとえば、スコアリングエンジン1218は、ドメインセグメンテーション候補1230によって定義される各ドメイン候補に対するそれぞれのドメインスコアを加算することによって、ドメインセグメンテーション候補1230に対するドメインセグメンテーションスコア1214を決定し得る。
1220によって示される特定の例では、例示的なドメインセグメンテーション1222は、1224-A、1224-B、および1224-Cという3つのドメインへのタンパク質1204のアミノ酸配列の区分を定義する。スコアリングエンジン1218は、ドメイン1224-Aに対するドメインスコア1226-A、ドメイン1224-Bに対するドメインスコア1226-B、およびドメイン1224-Cに対するドメインスコア1226-Cを決定する。スコアリングエンジン1218は、ドメインスコア1226-A、1226-B、および1226-Cを加算することによって、例示的なドメインセグメンテーション1222に対するドメインセグメンテーションスコア1228を決定する。
各ドメインセグメンテーション候補1230によって定義される各ドメイン候補に対して、以下でより詳しく説明されるように、スコアリングエンジン1218は、(i)距離マップ1232、および(ii)訓練ドメイン1236のセットから導かれる接触分布データ1234を使用して、ドメイン候補に対するドメインスコアを決定する。
距離マップ1232は、タンパク質1204の中のアミノ酸の各ペア間の推定距離を特徴付ける。タンパク質1204の第1のアミノ酸と第2のアミノ酸との間の距離は、タンパク質1204の構造における第1のアミノ酸の特定の原子(たとえば、α炭素原子またはβ炭素原子)と第2のアミノ酸の特定の、たとえば対応する原子との間の物理的距離(たとえば、オングストロームで測定される)を指す。たとえば、タンパク質1204の中のアミノ酸の各ペアに対して、距離マップ1232は、アミノ酸のペア間の距離が所定の閾値距離(たとえば、8オングストローム)未満であると予測されるかどうかを定義する、それぞれの二進変数を含み得る。システム1200は、距離マップ生成エンジン1238を使用してタンパク質1204のアミノ酸配列1202を処理することによって、距離マップ1232を生成することができる。距離マップ1232を生成するための例示的なプロセスが、図14に関連して以下で説明される。
訓練ドメイン1236は、それぞれの訓練タンパク質(タンパク質1204とは異なる)の実際の(すなわち、グランドトゥルース)ドメインを定義する。訓練ドメイン1236は、専門家(たとえば、タンパク質ドメインを特定する訓練を受けた生物学者)によって手動で決定され得る。
システム1200は、訓練ドメイン1236を処理して接触分布データ1234を生成する。接触分布データ1234は、所定の数のあり得る長さの各々の所与の長さに対して、所与の長さの訓練ドメインにおけるアミノ酸当たりの接触の数の確率分布を定義する。タンパク質の中の2つのアミノ酸は、2つのアミノ酸を隔てる距離が所定の閾値(たとえば、8オングストローム)未満である場合、接触していると言われる。ドメインの中の所与のアミノ酸の接触の数は、その所与のアミノ酸が接触しているドメインの中の他のアミノ酸の数を指す。ドメインの長さは、ドメインによって定義されるアミノ酸サブ配列の中のアミノ酸の数を指す。所与の長さの訓練ドメインにおけるアミノ酸当たりの接触の数の確率分布は、複数の非負の整数値の各々に対して、所与の長さの訓練ドメインの中の所与のアミノ酸が、訓練ドメインにおいて非負の整数値によって定義される接触の数を有することの、それぞれの尤度を定義する。
たとえば、接触分布データ1234は、所与の長さの訓練ドメインに対して、所与の長さの訓練ドメインにおけるアミノ酸当たりの接触の数の平均および標準偏差を定義するデータを含み得る。平均および標準偏差は、所与の長さの訓練ドメインにおけるアミノ酸当たりの接触の数のガウス確率分布を定義する。ある特定の例では、接触分布データ1234は、長さが20個のアミノ酸である訓練ドメインに対して、(i)訓練ドメインにおけるアミノ酸当たりの接触の平均の数が5であること、(ii)訓練ドメインにおけるアミノ酸当たりの接触の数の標準偏差が1.8であることを明示し得る。
ドメイン候補に対するドメインスコアを決定するために、スコアリングエンジン1218は、ドメイン候補によって定義されるアミノ酸サブ配列の中のアミノ酸の各ペア間の推定距離を特徴付けるデータを(距離マップ1232から)取得する。スコアリングエンジン1218は、ドメイン候補によって定義されるアミノ酸サブ配列の中のアミノ酸の各ペア間の推定距離を特徴付けるデータを処理して、ドメイン候補におけるアミノ酸当たりの接触の数を決定する。スコアリングエンジン1218は、接触分布データ1234から、ドメイン候補と同じ長さの訓練ドメインにおけるアミノ酸当たりの接触の数の確率分布を定義するデータを取得する。続いて、スコアリングエンジン1218は、同じ長さの訓練ドメインにおけるアミノ酸当たりの接触の数の確率分布に基づく、ドメイン候補におけるアミノ酸当たりの接触の数の尤度に基づいて、ドメイン候補に対するドメインスコアを決定する。ドメイン候補に対するドメインスコアを決定することは、図13に関連して以下でより詳しく説明される。
任意選択で、システム1200は、訓練ドメイン1236を処理して、(i)訓練ドメインの長さの分布、および(ii)各訓練タンパク質における訓練ドメインの数の分布を特徴付ける追加のデータを生成し得る。図13に関連してより詳しく説明されるように、スコアリングシステム1200は、この追加のデータに一部基づいて、ドメイン候補に対するドメインスコアを決定することができる。
ドメインセグメンテーション候補1230の各々に対するそれぞれのドメインセグメンテーションスコア1214を生成した後で、選択エンジン1240は、ドメインセグメンテーション候補1230のうちの1つを、システム1200によって出力されるドメインセグメンテーション1206として選択する。たとえば、選択エンジン1240は、ドメインセグメンテーションスコア1214が最高のドメインセグメンテーション候補1230を、システム1200によって出力されるドメインセグメンテーション1206として選択し得る。
図13は、タンパク質のアミノ酸配列のドメインセグメンテーションを決定するための、例示的なプロセス1300の流れ図である。便宜的に、プロセス1300は、1つまたは複数の位置に位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされるドメインセグメンテーションシステム、たとえば図12のドメインセグメンテーションシステム1200が、プロセス1300を実行することができる。
システムは、タンパク質の複数のドメインセグメンテーション候補を取得する(1302)。各ドメインセグメンテーション候補は、複数のそれぞれのドメイン候補へのタンパク質のアミノ酸配列の区分を定義する。いくつかの実装形態では、システムは、タンパク質の1つ1つのあり得るドメインセグメンテーションに対応するドメインセグメンテーション候補を生成する。いくつかの他の実装形態では、システムは、タンパク質のあり得るドメインセグメンテーションの適切なサブセットに対応するドメインセグメンテーション候補を(たとえば、タンパク質の所定の数のあり得るドメインセグメンテーションをランダムにサンプリングすることによって)生成する。
システムは、所定の数のあり得る長さの各々の所与の長さに対して、所与の長さの訓練ドメインにおけるアミノ酸当たりの接触の数の確率分布を定義するデータを取得する(1304)。システムは、訓練ドメインのセットを処理することによってデータを取得することができ、各訓練ドメインは訓練タンパク質の実際の(すなわち、グランドトゥルース)ドメインを定義する。ある特定の例では、システムは、所与の長さの訓練ドメインにおけるアミノ酸当たりの接触の数の平均および標準偏差を決定し得る。より具体的には、この例では、システムは、所与の長さの訓練ドメインにおけるそれぞれのアミノ酸の接触の数を各々定義する非負の整数値のセットの平均および標準偏差を決定し得る。平均および標準偏差は、所与の長さの訓練ドメインにおけるアミノ酸当たりの接触の数のガウス確率分布を定義する。
任意選択で、システムは、訓練ドメインのセットを処理して追加のデータを決定することができる。たとえば、システムは、訓練ドメインの長さの分布を特徴付けるデータを決定することができる。この例では、システムは、訓練ドメインの長さの平均および標準偏差を決定し得る。別の例として、システムは、各訓練タンパク質における訓練ドメインの数の分布を特徴付けるデータを決定することができる。この例では、システムは、各訓練タンパク質に対応する訓練ドメインの数の平均および標準偏差を決定し得る。
システムは、タンパク質の中のアミノ酸の各ペア間の推定距離を特徴付ける距離マップを取得する(1306)。たとえば、タンパク質の中のアミノ酸の各ペアに対して、距離マップは、アミノ酸のペアが接触していると予測されるかどうかを定義するそれぞれの二進変数を含み得る。距離マップを生成するための例示的なプロセスは、図14に関連して以下で説明される。
システムは、各ドメインセグメンテーション候補の各ドメイン候補に対するそれぞれのドメインスコアを決定する(1308)。ドメイン候補に対するドメインスコアを決定するために、システムは、ドメイン候補によって定義されるタンパク質の部分におけるアミノ酸の各ペア間の推定距離を特徴付けるデータを(距離マップから)取得する。システムは、ドメイン候補によって定義されるアミノ酸サブ配列の中のアミノ酸の各ペア間の推定距離を特徴付けるデータを処理して、ドメイン候補におけるアミノ酸当たりの接触の数を決定する。続いて、システムは、同じ長さの訓練ドメインにおけるアミノ酸当たりの接触の数の確率分布に基づく、ドメイン候補におけるアミノ酸当たりの接触の数の尤度に基づいて、ドメイン候補に対するドメインスコアを決定する。
たとえば、同じ長さの訓練ドメインにおけるアミノ酸当たりの接触の数の確率分布は、同じ長さの訓練ドメインにおけるアミノ酸当たりの接触の数の平均および標準偏差によって定義されるガウス分布であり得る。この例では、システムは、ドメイン候補に対するドメインスコアLを
として決定することができ、ここでdjはドメイン候補におけるj番目のアミノ酸の接触の数であり、lはドメイン候補の長さであり、μlは長さlの訓練ドメインにおけるアミノ酸当たりの接触の平均の数であり、σlは長さlの訓練ドメインにおけるアミノ酸当たりの接触の数の標準偏差であり、N(dj|μl,σl)は、平均パラメータμlおよび標準偏差パラメータσlによってパラメータ化されるガウス確率分布に従った値djの確率を表す。
別の例として、システムは追加で、ドメイン候補の長さに基づいてドメイン候補に対するドメインスコアを決定することができる。ある特定の例では、システムは、ドメイン候補に対するドメインスコアLを
として決定することができ、ここでlはドメイン候補の長さであり、μ*は訓練ドメインの長さの平均であり、σ*は訓練ドメインの長さの標準偏差であり、N(l|μ*,σ*)は、平均パラメータμ*および標準偏差パラメータσ*によってパラメータ化される正規確率分布に従った値lの確率を表し、N(d|μl,σl)は式(11)に関連して定義される。
各ドメインセグメンテーション候補に対して、システムは、ドメインセグメンテーション候補によって定義されるドメイン候補に対して決定されるそれぞれのドメインスコアからドメインセグメンテーションスコアを決定する(1310)。たとえば、システムは、ドメインセグメンテーション候補に対するドメインセグメンテーションスコアSを
として決定することができ、ここでiはドメインセグメンテーション候補によって定義されるn個のドメイン候補をインデクシングし、Liはドメイン候補iに対して決定されるドメインスコアである。別の例として、システムは加えて、ドメインセグメンテーション候補によって定義されるドメイン候補の数に基づいて、ドメインセグメンテーション候補に対するドメインセグメンテーションスコアSを決定することができる。ある特定の例では、システムは、ドメインセグメンテーション候補に対するドメインセグメンテーションスコアSを
として決定することができ、ここでnはドメインセグメンテーション候補によって定義されるドメイン候補の数であり、
はタンパク質と同じ長さの各訓練タンパク質の中の訓練ドメインの平均の数であり、
はタンパク質の同じ長さの各訓練タンパク質の中の訓練ドメインの数の標準偏差であり、
は、平均パラメータ
および標準偏差パラメータ
によってパラメータ化される正規確率分布に従った値nの確率を表し、
は式(13)に関連して定義される。
システムは、ドメインセグメンテーション候補に対して決定されるそれぞれのドメインセグメンテーションスコアに基づいて、タンパク質のドメインセグメンテーションを決定する(1312)。たとえば、システムは、ドメインセグメンテーションスコアが最高のドメインセグメンテーション候補を、タンパク質のドメインセグメンテーションとして選択し得る。タンパク質のドメインセグメンテーションを決定した後で、システムは、ドメインセグメンテーションを使用してタンパク質の予測構造を定義する出力を生成するように構成される構造予測システムに、ドメインセグメンテーションを提供することができる。
図14は、タンパク質のアミノ酸の各ペア間の推定距離を特徴付ける距離マップを生成するための例示的なプロセス1400の流れ図である。便宜的に、プロセス1400は、1つまたは複数の位置に位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされるドメインセグメンテーションシステム、たとえば図12のドメインセグメンテーションシステム1200は、プロセス1400を実行することができる。
システムは、タンパク質のアミノ酸配列の複数のアミノ酸サブ配列を特定する(1402)。一般に、システムによって特定されるアミノ酸サブ配列のうちの1つは、タンパク質の完全なアミノ酸配列であり得る。システムによって特定される複数のアミノ酸サブ配列は通常、タンパク質の完全なアミノ酸配列を「包含」する。すなわち、タンパク質の中の各アミノ酸は通常、システムによって特定される1つまたは複数のアミノ酸サブ配列に含まれる。いくつかの実装形態では、システムは、アミノ酸サブ配列をランダムに特定する。たとえば、システムは、タンパク質のアミノ酸配列におけるアミノ酸サブ配列の開始点をランダムに選択し、アミノ酸サブ配列の長さをランダムに選択することによって、アミノ酸サブ配列をランダムに特定し得る。これらの実装形態では、システムは、ランダムに特定されたアミノ酸サブ配列の集合体がタンパク質の完全なアミノ酸配列を包含するまで、アミノ酸サブ配列をランダムに特定し続け得る。いくつかの他の実装形態では、システムは、アミノ酸サブ配列を体系的に特定する。たとえば、複数の異なるサブ配列長(たとえば、64個、128個、および256個のアミノ酸)の各々に対して、システムは、その長さを有し所定のオフセット(たとえば、32個のアミノ酸)隔てられているアミノ酸サブ配列を特定し得る。
システムは、各々の特定されたアミノ酸サブ配列に対するそれぞれの多重配列整列(MSA)を取得する(1404)。タンパク質のアミノ酸サブ配列に対するMSAは、そのアミノ酸サブ配列と、複数の他のタンパク質の各々からのアミノ酸(サブ)配列との対応関係を定義するデータを指す。MSAは、任意の適切な計算配列整列技法(たとえば、プログレッシブアライメント構築)を使用して、(たとえば、データベースに記憶されている)他のタンパク質からのアミノ酸(サブ)配列を処理することによって、タンパク質のアミノ酸サブ配列に対して生成され得る。
タンパク質の各々の特定されたアミノ酸サブ配列に対して、システムは、アミノ酸サブ配列に対して取得されるMSAを処理して、対応する距離マップクロップを生成する(1406)。タンパク質のアミノ酸サブ配列に対応する距離マップクロップは、タンパク質のアミノ酸サブ配列の中のアミノ酸の各ペア間の推定距離を特徴付けるデータを指す。たとえば、タンパク質のアミノ酸サブ配列に対応する距離マップクロップは、アミノ酸のペアが接触していると予測されるかどうかを定義する、アミノ酸サブ配列の中のアミノ酸の各ペアに対するそれぞれの二進変数を含み得る。アミノ酸サブ配列に対応する距離マップクロップを生成するために、システムは、アミノ酸サブ配列に対応するMSAから導かれる特徴量を取得する。MSAから導かれる特徴量は、MSA自体の表現、S.Seemayer、M.Gruber、およびJ.Soding:「CCMpred:fast and precise prediction of protein residue-residue contacts from correlated mutations」、Bioinformatics、2014に関連して説明されるものなどのMSAから導かれる統計特徴量(たとえば、二次統計特徴量)、またはこれらの両方を含み得る。システムは、ニューラルネットワークを使用してMSAから導かれる特徴量を処理し、アミノ酸サブ配列に対応する距離マップクロップを生成することができる。
システムは、距離マップクロップを使用してタンパク質のアミノ酸の各ペア間の推定距離を特徴付ける距離マップを生成する(1408)。たとえば、システムは、距離マップクロップの加重平均として距離マップを生成することができ、距離マップクロップに割り当てられる重みは、距離マップクロップを生成するために処理されるMSAの中のアミノ酸(サブ)配列の数に基づく。ある特定の例では、距離マップクロップの各々は、距離マップクロップに対応するアミノ酸サブ配列の中のアミノ酸の各ペアが接触していると予測されるかどうかを示す二進変数を含み得る。タンパク質のアミノ酸の所与のペアに対して、システムは、各距離マップクロップにおけるアミノ酸の所与のペアに対応する二進変数の加重平均を決定し、加重平均を0または1に丸め、二進変数を生成し得る。アミノ酸の所与のペア間の推定距離を特徴付けない距離マップクロップは、加重平均から除外される。
図15は、上で説明された動作(たとえば、図1を参照して説明されたような、検索コンピューティングユニットの動作)を実行するために使用され得る例示的なコンピュータシステム1500のブロック図である。システム1500は、プロセッサ1510、メモリ1520、記憶デバイス1530、および入力/出力デバイス1540を含む。コンポーネント1510、1520、1530、および1540の各々は、たとえばシステムバス1550を使用して相互接続され得る。プロセッサ1510は、システム1500内での実行のために命令を処理することが可能である。一実装形態では、プロセッサ1510はシングルスレッドプロセッサである。別の実装形態では、プロセッサ1510はマルチスレッドプロセッサである。プロセッサ1510は、メモリ1520または記憶デバイス1530に記憶されている命令を処理することが可能である。
メモリ1520は、システム1500内に情報を記憶する。一実装形態では、メモリ1520はコンピュータ可読媒体である。一実装形態では、メモリ1520は揮発性メモリユニットである。別の実装形態では、メモリ1520は不揮発性メモリユニットである。
記憶デバイス1530は、システム1500のために大容量記憶を提供することが可能である。一実装形態では、記憶デバイス1530はコンピュータ可読媒体である。様々な異なる実装形態において、記憶デバイス1530は、たとえば、ハードディスクデバイス、光学ディスクデバイス、複数のコンピューティングデバイス(たとえば、クラウドストレージデバイス)によってネットワークを介して共有される記憶デバイス、または何らかの他の大容量記憶デバイスを含み得る。
入力/出力デバイス1540は、システム1500のための入力/出力動作を提供する。一実装形態では、入力/出力デバイス1540は、1つまたは複数のネットワークインターフェースデバイス、たとえばイーサネットカード、シリアル通信デバイス、たとえばRSR-232ポート、および/またはワイヤレスインターフェースデバイス、たとえば802.11カードを含み得る。別の実装形態では、入力/出力デバイスは、入力データを受け取り、出力データを他の入力/出力デバイス、たとえばキーボード、プリンタ、およびディスプレイデバイス1560に送るように構成される、ドライバデバイスを含み得る。しかしながら、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビジョンクライアントデバイスなどの、他の実装形態も使用され得る。
例示的な処理システムが図15において説明されたが、本主題の実装形態および本明細書において説明される機能的な動作は、他のタイプのデジタル電子回路において、または、本明細書において開示される構造およびその構造的な均等物において開示される構造を含む、コンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらの1つまたは複数の組合せにおいて実装され得る。
図16は、本明細書において説明されるような構造予測システムを使用することによって達成され得る性能の向上の例を示す。具体的には、図16は、Critical Assessment of Protein Structure Prediction(CASP13)コンペティションに提出された他の構造予測システムの性能と比較した、図9に関連して説明される構造予測システムの性能の例を示す。CASP13コンペティションは、タンパク質構造予測の正確さの進歩のベンチマークをとるための、タンパク質構造予測の分野の状態のブラインド評価である。
グラフ1602は、(線1604によって示される)図9に関連して説明される構造予測システムによる、および(残りの線によって示される)CASP13に提出された他の構造予測システムによる、所与のテンプレートモデリング(TM)スコア閾値に対して予測されるフリーモデリング(FM)タンパク質ドメインの数を示す。FMタンパク質ドメインは、類似するタンパク質ドメインの構造が(たとえば、物理的な実験によって)以前に決定されていないドメインを指す。TMスコアは、タンパク質のネイティブ(すなわち、実際の)構造に対するタンパク質の提案される構造の主鎖形状の一致の程度を測る、0と1の間のスコアを指す。図9に関連して説明される構造予測システムが、ほとんどすべてのTMスコアカットオフに対して、他の構造予測システムより優れていることが理解され得る。
チャート1606は、6つの新しく決定されるタンパク質構造(チャート1606の水平軸に対応する)に対する、図9に関連して説明される構造予測システムによって生成される構造予測のTMスコア(黒い丸、たとえば1608によって示される)と、CASP13に提出された他の構造予測システムによって生成される構造予測のTMスコア(明るい丸によって示される)とを示す。図9に関連して説明された構造予測システムが、他の構造予測システムより全般的に優れていることが理解され得る。
図17は、図6に関連して説明される距離予測システムを使用することによって達成され得る、性能の向上の例を示す。表1700は、最も確率の高いL個、L/2個、またはL/5個のアミノ酸残基の接触についての、CASP13における長距離接触予測の精度を示し、Lはドメインの長さである。図6(AF)に関連して説明される距離予測システムによって生成されるアミノ酸のペア間の距離範囲の確率分布は、接触予測を閾値とし、CASP13における上位2つの接触予測方法である032(TripletRes)および498(RaptorX-Contact)による提出物と比較される。表1700は、フリーモデリング(FM)タンパク質ドメイン、テンプレートベースモデリング(TBM)タンパク質ドメイン(ここで同様の配列を伴うタンパク質ドメインは既知の構造を有する)、および中間のFM/TBMタンパク質ドメインに対する、図6に関連して説明される距離予測システムの接触予測の正確さを示す。図6に関連して説明される距離予測システムが、他の接触予測システムより全般的に優れていることが理解され得る。
図18は、たとえば図9に関連して説明された構造予測システムを使用して、タンパク質の予測構造を決定するための例示的なデータフロー1800の図である。
L×L 2D共分散特徴量ならびにタイリングされたL×1 1D配列およびプロファイル特徴量(ここでLはアミノ酸配列の長さである)は、配列およびMSA特徴量1802を生成するために連結される。配列およびMSA特徴量は、数値の3Dアレイとして表現され得る。
特徴量1802からの64×64のクロップは、(たとえば、図6に関連して説明されたように)220個の残差畳み込みブロックを伴う距離予測ニューラルネットワーク1804を使用して処理されて、完全な距離マップ1806のクロップを生成する。完全な距離マップのクロップは融合されて(たとえば、平均化されて)、完全な距離マップ1806を生成する。完全な距離マップは、タンパク質のアミノ酸の各ペア間の64個のとり得る距離範囲にわたるそれぞれの確率分布を明示し得る。距離予測ニューラルネットワーク1804の別々の出力ヘッドは、タンパク質の各アミノ酸に対する構造パラメータ分布(たとえば、ねじれ角分布)を生成する(すなわち、この例では、構造予測ネットワークおよび距離予測ネットワークはいくつかのパラメータ値を共有する)。
タンパク質の予測構造を定義する構造パラメータの初期値は、勾配降下法の複数の反復にわたって更新されて、タンパク質の最終的な予測構造を生成する。各反復において、構造パラメータの現在値によって定義される予測構造の品質スコアは、(i)距離マップ1806、(ii)構造パラメータ分布、および(iii)予測構造と関連付けられる原子間ポテンシャルエネルギーを特徴付けるファンデルワールスポテンシャルに基づく物理スコアに基づいて、決定される。品質スコアは、構造パラメータの現在値に関して微分可能であり、品質スコアの勾配は、構造パラメータの現在値に関して決定される。勾配降下最適化技法は、品質スコアの勾配を使用して構造パラメータの現在値を調整して構造パラメータの更新値を決定するために使用される。
グラフ1808は、各勾配降下ステップにおけるタンパク質の予測構造と実際の予測構造との間の、TMスコア1810およびRMSD1812を示す。タンパク質の予測構造は、勾配降下ステップの列にわたってタンパク質の実際の構造をより正確に近似することが理解され得る。(i)最後の勾配降下ステップの後のタンパク質の予測構造、および(ii)タンパク質の実際の構造の重畳の3D視覚化1814から、タンパク質の最終的な予測構造は、タンパク質の実際の構造を正確に近似することが理解され得る。
グラフ1816は、異なる予測構造を生成するために異なる初期化を用いて複数回勾配降下手順を実行することと、最良の予測構造をタンパク質の最終的な予測構造として選択することとによって達成され得る、TMスコアの改善を示す。
図19は、タンパク質1900について図6に関連して説明された距離予測システムによって生成された距離マップの態様を示す。図示1902は、タンパク質1900の実際の(すなわち、ネイティブ)残基間距離を示す距離マップである。図示1904は、距離予測システムを使用して生成され、タンパク質1900に対する残基間距離範囲にわたる確率分布のモードを示す、距離マップである。予測される距離マップ1904は、実際の距離マップ1902の正確な近似であることが理解され得る。図示1906は、残基29とタンパク質1900のすべての他の残基との間のとり得る距離範囲にわたる予測される確率分布を示す。グラフ1908は、標準偏差が3.5Aを超える分布を除き、距離が22A以下であるタンパク質1900のすべての残基ペアの真の距離に対して、予測される距離分布のモードをプロットする。エラーバーは、1A個のビンについて計算された平均および標準偏差を示す。グラフ1910は、ネイティブの距離が22Aを超える残基ペアを除き、距離分布の標準偏差に対して、モード距離予測の誤差をプロットする。
図20は、(たとえば、図6に関連して説明されたような)距離予測ニューラルネットワークの残差ブロックの例示的なアーキテクチャ2000を示す。残差ブロックは、ニューラルネットワーク層、差し挟まれた3つのバッチノルム層、2つの1×1投影層、3×3拡張畳み込み層、およびELU非線形性の列からなる。連続する層は、1個、2個、4個、および8個のピクセルの拡張を循環し、配列の刈り込まれた領域およびMSA特徴量にわたる情報の迅速な伝播を可能にする。1つの例示的なアーキテクチャでは、距離予測ニューラルネットワークは、220個のそのような残差ブロックの列を含み得る。最後の残差ブロックの後で、距離予測ニューラルネットワークは、距離予測ニューラルネットワークによって生成された距離マップクロップの各i,j成分に対応するそれぞれのソフトマックス関数を有する出力層を含み得る。
図21は、図4に関連して説明されたように、タンパク質構造断片を生成するように構成されるDRAW生成ニューラルネットワーク2100の例示的なアーキテクチャの図である。生成ニューラルネットワーク2100は、埋め込みニューラルネットワーク2104を使用してアミノ酸配列(たとえば、タンパク質のより長いアミノ酸配列のサブ配列)の配列およびMSA特徴量を含む、2D条件付け情報2102を処理して、条件付けベクトル2106を生成する。埋め込みニューラルネットワーク2104は、(たとえば、図20に関連して説明されるような)1つまたは複数の畳み込み残差ブロックと、それに続く、条件付けベクトル2106を出力する平均プーリング層とを含み得る。条件付けベクトル2106は次いで、1D畳み込み長短期メモリ(LSTM)畳み込みデコーダサブネットワーク2108へと渡される。
128個の内部時間ステップの各々において、デコーダサブネットワーク2108は、潜在空間2110にわたる以前の確率分布に従って潜在空間2110から潜在変数をサンプリングし、潜在変数および条件付けベクトル2106を処理してデコーダサブネットワークの内部状態を更新する。以前の確率分布は、たとえば、潜在空間2110にわたる標準的な正規分布であり得る。各内部時間ステップにおいて、生成ニューラルネットワーク2100は、時間ステップにおけるデコーダサブネットワーク2108の更新された内部状態を、生成ニューラルネットワーク2100の「キャンバス」内部状態2112に追加し得る。
最後の内部時間ステップの後、生成ニューラルネットワーク2100のキャンバス内部状態2112の値は、タンパク質構造断片の各構造パラメータに対応するそれぞれの確率分布2114(たとえば、フォンミーゼス分布)を定義する。その後、任意の所望の数のタンパク質構造断片に対する構造パラメータ値が、構造パラメータ値の確率分布2114に従ってサンプリングされ得る。
本明細書は、システムおよびコンピュータプログラムコンポーネントに関連して「構成される」と言う用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作または行動を実行するように構成されることは、動作中にその動作または行動をシステムに実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがシステムに設置されていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行動を実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されると、その動作または行動を装置に実行させる命令を含むことを意味する。
本明細書で説明される主題および機能的な動作の実施形態は、デジタル電子回路で、有形に具現化されたコンピュータソフトウェアもしくはファームウェアで、本明細書で開示される構造およびその構造的な均等物を含むコンピュータハードウェアで、または、それらの1つまたは複数の組合せで実装され得る。本明細書で説明される主題の実施形態は、1つまたは複数のコンピュータプログラムとして、すなわち、データ処理装置による実行のための、またはデータ処理装置の動作を制御するための、有形な非一時的記憶媒体に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらの1つまたは複数の組合せであり得る。代替的に、または追加で、プログラム命令は、データ処理装置による実行のための適切な受信機装置への送信のために情報を符号化するように生成される、人工的に生成される伝搬信号、たとえば機械で生成される電気信号、光学信号、または電磁信号上に符号化され得る。
「データ処理装置」という用語は、データ処理ハードウェアを指し、例としてプログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置はまた、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)もしくはASIC(特定用途向け集積回路)であってもよく、またはそれをさらに含み得る。装置は任意選択で、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つまたは複数の組合せを構成するコードを含み得る。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれることがあり、もしくは記述されることもあるコンピュータプログラムは、コンパイル型言語もしくはインタプリタ型言語、または宣言型言語もしくは手続型言語を含む、任意の形式のプログラミング言語で書かれてもよく、それは、スタンドアロンプログラムとして、または、モジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境における使用に適した他のユニットとしてを含めて、任意の形式で展開されてもよい。プログラムは、ファイルシステムにおけるファイルに対応し得るが、そうである必要はない。プログラムは、他のプログラムもしくはデータを保持するファイルの一部分、たとえばマークアップ言語ドキュメントに記憶されている1つまたは複数のスクリプトに、対象のプログラムに専用の単一のファイルに、または、複数の協調したファイル、たとえば、1つまたは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイルに記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または、1つの場所に位置する、もしくは、複数の場所に分散しておりデータ通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開され得る。
本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実行するようにプログラムされるソフトウェアベースのシステム、サブシステム、またはプロセスを指すために、広く使用される。一般に、エンジンは、1つまたは複数の位置にある1つまたは複数のコンピュータにインストールされる、1つまたは複数のソフトウェアモジュールまたはコンポーネントとして実装される。いくつかの場合、1つまたは複数のコンピュータは特定のエンジンに専用であり、他の場合には、複数のエンジンが同じ1つまたは複数のコンピュータにインストールされ、そこで実行されていてもよい。
本明細書で説明されるプロセスおよび論理フローは、入力データに対して作用して出力を生成することによって機能を実行するように、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実行され得る。プロセスおよび論理フローは、専用論理回路、たとえばFPGAもしくはASICによって、または、専用論理回路と1つまたは複数のプログラムされたコンピュータの組合せによっても実行され得る。
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは専用マイクロプロセッサまたはその両方、または任意の他の種類の中央処理装置に基づき得る。一般に、中央処理装置は、読取り専用メモリまたはランダムアクセスメモリまたはそれらの両方から、命令およびデータを受け取る。コンピュータの不可欠な要素は、命令を実施または実行するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補足されてもよく、またはそれに組み込まれてもよい。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば磁気ディスク、磁気光学ディスク、または光学ディスクを含み、または、それらから、データを受け取るために、もしくはそれらにデータを転送するために、もしくはその両方を行うために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、いくつか例を挙げると、たとえば携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、たとえばユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれ得る。
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内部ハードディスクまたはリムーバブルディスク、磁気光学ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形式の不揮発性メモリ、メディア、およびメモリデバイスを含む。
ユーザとの対話を実現するために、本明細書で説明される主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、ならびに、ユーザがそれによって入力をコンピュータに提供できるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールを有する、コンピュータ上で実装され得る。ユーザとの対話を実現するために、他の種類のデバイスも使用され得る。たとえば、ユーザに提供されるフィードバックは、任意の形式の感覚的なフィードバック、たとえば視覚フィードバック、可聴フィードバック、または触覚フィードバックであってもよく、ユーザからの入力は、音響入力、発話入力、または触覚入力を含む、任意の形式で受け取られてもよい。加えて、コンピュータは、たとえば、ユーザのデバイスのウェブブラウザから受け取られた要求に応答してウェブブラウザにウェブページを送信することによって、ユーザにより使用されるデバイスにドキュメントを送信し、およびそれからドキュメントを受信することによって、ユーザと対話することができる。また、コンピュータは、個人用デバイス、たとえばメッセージングアプリケーションを実行しているスマートフォンにテキストメッセージまたは他の形式のメッセージを送り、返答としてユーザから応答メッセージを受け取ることによって、ユーザと対話することができる。
機械学習モデルを実装するためのデータ処理装置はまた、たとえば、機械学習訓練または生産の一般的な計算集約的な部分、すなわち推論、ワークロードを処理するための、専用ハードウェアアクセラレータユニットを含み得る。
機械学習モデルは、機械学習フレームワーク、たとえばTensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して、実装され展開され得る。
本明細書で説明される主題の実施形態は、バックエンドコンポーネント、たとえばデータサーバを含む、または、ミドルウェアコンポーネント、たとえばアプリケーションサーバを含む、または、フロントエンドコンポーネント、たとえばグラフィカルユーザインターフェース、ウェブブラウザ、もしくはユーザが本明細書で説明される主題の実装形態とそれを通じて対話できるアプリを有するクライアントコンピュータを含む、または、1つまたは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含む、コンピューティングシステムにおいて実装され得る。システムのコンポーネントは、任意の形式または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえばインターネットを含む。
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは一般に、互いに離れており、通常は通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され互いにクライアントとサーバの関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、たとえば、クライアントとして機能するデバイスにデータを表示し、そのデバイスと対話するユーザからユーザ入力を受け取る目的で、データ、たとえばHTMLページをユーザデバイスに送信する。ユーザデバイスにおいて生成されるデータ、たとえばユーザ対話の結果は、デバイスからサーバにおいて受信され得る。
本明細書は多くの特定の実装形態の詳細を含むが、これらは、発明の範囲または特許請求され得るものの範囲に対する制約として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。別個の実施形態の文脈で本明細書において説明されるいくつかの特徴は、単一の実施形態において組合せで実装されてもよい。逆に、単一の実施形態の文脈で説明される様々な特徴は、複数の実施形態において別々に、または任意の適切な部分組合せで実装されてもよい。その上、特徴は何らかの組合せで動作するものとして上で説明されることがあり、そのように最初に特許請求されることすらあるが、特許請求される組合せからの1つまたは複数の特徴は、いくつかの場合には組合せから除外されてもよく、特許請求される組合せは、部分組合せまたは部分組合せの変形を対象とし得る。
同様に、動作は特定の順序で図面において示され特許請求の範囲において記載されるが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序もしくは逐次的な順序で実行されること、または、すべての示される動作が実行されることを必要とするものとして理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上で説明された実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは一般に、単一のソフトウェア製品へと一緒に統合されてもよく、または複数のソフトウェア製品へとパッケージングされてもよいことが理解されるべきである。
本主題の特定の実施形態が説明された。他の実施形態が、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に記載される行動は、異なる順序で実行されてもよく、それでも望ましい結果を達成することができる。一例として、添付の図面に示される処理は、望ましい結果を達成するために、必ずしも示される特定の順序または逐次的な順序を必要としない。いくつかの場合、マルチタスキングおよび並列処理が有利であり得る。