SCOP/SCOP2

タンパク質は簡単な α-ヘリックスや β-シートなどの構造を始めとして、多種多様な構造を取りうる。これらの構造に着目した時、どんな複雑な構造でもいくつかのシンプルな構造の集まりで表すことができる。SCOP(structural classification of proteins; リンク)では、このようなタンパク質の構造に基いて行っているデータベースである。SCOP には 2 つのバージョンがあり、それぞれ SCOP と SCOP2 と呼ばれている。

SCOP

SCOP では、立体構造のデータは主に PDB から取得し、構造アライメントや配列類似度などをもとに人工的に分類を行っている。分類結果の信頼度は高いが、2009 年以降に更新されていない。

SCOP の分類は Class > Fold > Superfamily > Family > Protein domain > Species > Domain のように、階層レベルで行っている。

分類
Class 二次構造の特徴による分類。例えば、以下の様な分類がある。
  • all alpha proteins: 二次構造全体が α-ヘリックスによって構成される
  • all beta proteins: 二次構造全体が β-シートによって構成される
  • alpha and beta proteins (a/b): α-ヘリックスと β-ストランドが交互に並んでいる、ほとんどの場合 β-ストランドは平行である(例:3CHY8TIM
  • alpha and beta proteins (a+b): α-ヘリックスとβ-ストランドが(交互に並ぶのではなく)離れて存在している、ほとんどの場合 β-ストランドは逆平行である(例:2ACY
  • multi-domain proteins (alpha and beta): 二次構造が 2 以上の Class に分類されるような場合ここに分類される、(例えば a+b と a/b が同時に存在する場合など)
  • membrane and cell surface protein and peptides: 膜タンパク質
  • small proteins: 金属リガンド結合部位や S-S 結合に関わる部位
  • coiled-coil proteins: コイルドコイル
Fold 二次構造が折りたたまれた時にできる構造による分類、二次構造が異なっていても、折りたたまれた三次構造が似ているならば同じ Fold に分類される。(CATH の Architecture に相当)
Superfamily そのドメインが遠い共通祖先に由来すると判断されたもの。(CATH の Homologous superfamily に相当)
Family そのドメインが最も近い共通祖先に由来すると判断されたもの。
Protein domain
Species Protein domain のうち、生物種による分類。
Domain タンパク質の一部に基づく分類。シンプルなタンパク質であれば、それ全体がドメインをなす。

SCOP のデータは PDB フォーマットでも提供されている。一括解析等を行う場合は全登録データをダウンロードして行うと手間がかからない。SCOP の PDB-style files for SCOP domains のページで、Part1、Part2 および Part3 の 3 つの圧縮ファイルとして配布されている。

コマンドライン上からダウンロードする場合は以下のようにすればよい。

wget http://scop.berkeley.edu/downloads/pdbstyle/pdbstyle-1.67-1.tgz
wget http://scop.berkeley.edu/downloads/pdbstyle/pdbstyle-1.67-2.tgz
wget http://scop.berkeley.edu/downloads/pdbstyle/pdbstyle-1.67-3.tgz

これらの PDB ファイルには SCOP で定められたドメインの領域や ID などが記載されている。例えば、そのような ID など情報だけを抽出するには以下のような Perl スクリプトを書けばよい。

use strict;

my $pdb_dir = $ARGV[0];

opendir(my $dh, $pdb_dir) or die;
while (my $f = readdir($dh)) {
  if ($f =~ /^\./) {
    next;
  }
  my $line = &parse_PDB($pdb_dir . '/' . $f);
  print($line, "\n");
}
closedir($dh);

sub parse_PDB {
    # Get PDB file
    my $input_file = shift;

    my $pdb_id       = '****';     # PDB ID
    my $chain_id     = '=';        # Chain ID
    my $domain_start = '<';        # 000
    my $domain_end   = '>';        # 999
    my $scop_sun     = '?';        # 123456
    my $scop_sccs    = '@';        # a.1.1.1
    my $scop_sid     = '^';        # d1aaaa_
    my $first_res = 1;

    open(my $fh, '<', $input_file) or die;
    while (my $buff = <$fh>) {
        chomp($buff);

        if ($buff =~ /^ATOM/) {
            if ($first_res == 1) {
                $domain_start = substr($buff, 22, 4);
                $first_res++;
            } else {
                $domain_end = substr($buff, 22, 4);
            }
            $chain_id = substr($buff, 21, 1);
        }

        if ($buff =~ /^REMARK .+ SCOPe-sid: ([^ ]+)/) {
            $scop_sid = $1;
        }
        if ($buff =~ /^REMARK .+ SCOPe-sun: ([^ ]+)/) {
            $scop_sun = $1;
        }
        if ($buff =~ /^REMARK .+ SCOPe-sccs: ([^ ]+)/) {
            $scop_sccs = $1;
        }
        if ($buff =~ /^REMARK .+ Source-PDB: ([^ ]+)/) {
            $pdb_id = $1;
        }

    }
    close($fh);

    $domain_start =~ s/\s//g;
    $domain_end =~ s/\s//g;

    my $str = $pdb_id . "\t" . $chain_id . "\t"
              . $domain_start . "\t" . $domain_end . "\t"
              . $scop_sun . "\t" . $scop_sccs . "\t" . $scop_sid;
    return $str;
}

上記のファイルを get_info.pl の名前で保存し、以下のように実行する。ただし、SCOP からダウンロードした PDB ファイルは scop_pdb ディレクトリにに保存されているものとする。

perl get_info.pl scop_pdb > scop_info.txt
head scop_info.txt
## 2o6k    A    4    73    148632    a.60.15.1  d2o6ka1
## 4gcb    A    1    129   221832    d.2.1.2    d4gcba_
## 3amz    A    538  694   208276    d.41.1.1   d3amza5
## 4b4b    B    1    293   219285    c.68.1.6   d4b4bb_
## 2j4e    B    0    193   137995    c.51.4.0   d2j4eb_
## 3cpr    A    3    304   173393    c.1.10.1   d3cpra_

左から PDB ID、チェーン名、ドメインの開始残基番号、ドメインの終了残基番号、SCOP-sun id、SCOP カテゴリ階層、SCOP-sid。

SCOP2

SCOP2 では、PDB に登録されている構造をもとに分類を行っている。SCOP の分類階層においては、1 つの子階層は親を 1 つだけしか持つことができなかったのに対して、SCOP2 では 1 つの子階層が複数の親を持つことができるようになり、非常に柔軟な分類を可能にしている。

SCOP2のグラフ

SCOP2 では、タンパク質を大きく分けで 4 つのカテゴリーによって分類を行っている。

分類  
Protein types Protein types において、タンパク質は配列および構造の特徴をもとに 4 タイプに分類される。
  • soluble
  • membrane
  • fibrous
  • intrinsically disordered
Evolutionary events 構造の類似性が認められないが、互いに系統関係が認められる場合、同じ Evolutionary events に分類される。
Structural classes 二次構造に基づく分類である。従って、構造が似てても二次構造が異なれば、異なるクラスに分類される。
Protein relationships Protein relationships 分類には 3 種類のサブカテゴリーが存在する。
  • Structural
  • Evolutionary
  • Other

References

  • Murzin AG, Brenner SE, Hubbard T, Chothia C. SCOP: a structural classification of proteins database for the investigation of sequences and structures. J Mol Biol. 1995, 247(4):536-40. PubMed Abstract
  • Andreeva A, Howorth D, Chandonia JM, Brenner SE, Hubbard TJ, Chothia C, Murzin AG. Data growth and its impact on the SCOP database: new developments. Nucleic Acids Res. 2008, 36(Database issue):D419-25. PubMed Abstract
  • Andreeva A, Howorth D, Chothia C, Kulesha E, Murzin AG. SCOP2 prototype: a new approach to protein structure mining. Nucleic Acids Res. 2014, 42(Database issue):D310-4. PubMed Abstract