配列の選択とlist fileの作成
uniqlist.pl, alngrep.pl

SHeadには主に .alnファイルを対象として、特定の配列のみを羅列した新しいファイルを作成するための2つのスクリプトが用意されています。また、 SHeadの幾つかのスクリプトでは、処理の対象となる配列を選択する事ができますが、その入力の為にはlist fileの作成法を知っておかなければなりません。
ここでは、配列の抽出とlist fileの作成を行うスクリプトの使用法を説明するとともに、list fileのフォーマットに付いて説明します。

list fileのフォーマット

list fileは以下の形式をしています。
sequence1
sequence2
sequence3
sequence4
sequence5
書き方の注意:
  1. 一行ごとにsequenceの名前を列挙します。
  2. 名前の後は、すぐに改行して下さい。
  3. 順番は問いません。また、名前の誤りは大抵のスクリプトでは無視されます。
このようなファイルを、パソコンのエディタ・ワープロ、Unix上のviやmuleを用いて作成するか、後述のスクリプトの出力から得ます。

同一配列をまとめたlist fileとaln fileの作成 -uniqlist.pl-

シーケンスされた多数のクローンが同一であるかどうかを確かめる事は、頻繁に行われる事です。しかし、調べるシーケンスの数が多くなるにつれて、この作業は億劫になります。さらに、配列をいくつかの領域に区切って比較していきたい時には、異なった配列をもつクローンでも部分的には同一である場合も多く、それらのデータの整理と解析は予想外の時間を要し、ミスを生み出します。SHeadの環境では、この同一シーケンスの探索を自動的に行わせることができます。
同一シーケンスの探索はアライメントを済ました後、uniqlist.plというスクリプトによって行います。uniqlist.plを実行すると、クローン名とそのsynonymの関係が標準出力に出力されるとともに、そこに書かれた代表クローンを使ったリストファイルとaln fileを作ってくれます。
uniqlist.plは通常、プロンプトから、
user@host% uniqlist.pl アライメントファイル.aln
のように使います。入力ファイルはClustalWのアライメントファイルである必要があります。
このようにすると、ファイル名の.alnをとって、代わりに .uniq.list を付けたファイルが、カレントディレクトリに書き出されます。これが、ユニーク配列のリストファイルです。また、同時に .uniq.alnが付いたファイルも書き出されます。こちらは、ユニーク配列だけを含むアライメントファイルです。
このとき画面上には、
Synonym of 1-56V:
2-1-22V 1-56V 

Synonym of 2-2-c26V:
2-2-c28V 2-2-b14V 2-2-c27V 2-2-a2V 2-2-c4V 2-2-b6V 2-2-c30V 2-2-b15V 2-2-c26V 

Synonym of 1-36V:
1-5V 1-36V 

Synonym of 3-16V:
2-1-7V 2-1-9V 2-1-13V 2-1-25V 2-1-35V 2-1-17V 3-19V 2-1-8V 3-7V 3-9V 2-1-12V 2-1-24V 3-16V 
というようなデータが出力されます。これが、リストファイルに採用された名前と、それと同じ配列をもつクローンのグループです。
グループの情報もファイルとして取っておきたい時には、
user@host% uniqlist.pl アライメントファイル.aln > groups
のように標準出力をリダイレクトして下さい。

uniqlist.plとリストファイルを組み合わせる事によって、手持ちのシーケンスのデータから自由にユニークなものを抽出できるようになります。シーケンスデータ[.aln等]は、全てのシーケンスを含んだものをお作りになることをお奨めします。

aln fileからの配列の抽出 -alngrep.pl-

alngrep.plは、その名の通りalignment file用に作られたgrepです。UNIXのgrepは標準入力の文字列を検索して、パターンに合った行を抽出しますが、alngrep.plはClustal Wの出力したalignment file (aln file)を標準入力から読み込み、そのクローン名やsequenceをパターンと照合し、合ったもの(又は違ったもの)のaln fileやlist fileを作成する機能を持ちます。
alngrep.plはつぎの様にいくつかのオプションをもっています。
alngrep.pl [-v] [-s] [-l] [-flist_file] ['正規表現' ...] < aln_file > output
Options:
  -v  inVert: パターンにマッチしないものを抽出する。
  -s  Sequence: パターンをsequenceに対してマッチさせる。
  -l  listfile: 出力をlist fileにする。
  -f  直後の文字列をlist fileの名前をみなし、それを読み込み
      リストされたクローン名を抽出する(-vとともに使うと、そ
      れを除く)。-fとファイル名はスペースを空けてはならない。
これらのオプションが指定されない時は、alngrep.plは標準入力から読み込んだファイルのクローン名を正規表現で解析し、マッチしたものを抽出してaln fileを作ります。このとき、shellに正規表現を解釈されてしまわない様に、''(シングルクォート)でかこんでください。正規表現がわからないひとでも、ただ単に名前を羅列すればたいていはうまくいくはずです。
user@host% alngrep.pl 'sequence1' 'sequence2'< test.aln
ただし、特殊な文字を用いている場合は誤操作をする可能性がありますし、リストを手入力するのは面倒です。後述の-fを使うと、list fileをつかってこれを簡略化できます。
-vを指定するとalngrep.plはパターンに合わないシーケンスを抽出します。-vと-vを指定しない出力は、たがいに相反するものになります。この指定は、他のすべてのオプションで有効です。
-sを指定するとalngrep.plはパターンをクローン名ではなく、sequence本体に対して適応させます。1回のコマンドでsequenceとクローン名の両方を検索対象にすることは出来ません。このようなことをしたいときには、パイプを使って下さい。aongrep.plはフィルタとして作ってあり、パイプ処理がしやすくできています。
-lを指定するとalngrep.plは標準出力に出されるファイルを、リストファイルの形式に変えます。この機能は、すでにマトリクスを計算してある場合に便利でしょう。
-fの直後に(スペースを入れずに)list fileの名前を入力すると、alngrep.plはlistfileも見て、そこにあげられたクローン名も検索の対象とするようになります。list fileには正規表現は使えません。またこのとき、正規表現が記述されていると、両方の結果を合わせたものを出力します。
正規表現
alngrep.plの機能を充分に発揮させる為には、やはり正規表現を理解する必要があります。alngrep.plの正規表現は、Perlのものと同じです。正規表現は奥が深く、このページだけで説明するのはちょっとできません。Perlの入門書(Learning Perl (ソフトバンク))等をよむかUNIXの入門書で勉強してください。ここでは、alngrep.plの使うおもなメタキャラクタと簡単な使用例を書きます。
. 改行以外の任意の1文字です。
* 直前の1文字の0回以上の繰り返しです。
+ 直前の1文字の1回以上の繰り返しです。
? 直前の1文字があるかないかどちらかであることを示します。
^ 行頭に置くと、行の先頭を示します。
$ 行末に置くと、これで行が終わることを示します。
例1)最初の文字が1で最後がVでおわるクローンのみを抽出
user@host% alngrep.pl '^1.*?V$' < test.aln
       
[...] 囲まれている文字のどれかひとつ
[.-.] 指定範囲のどれかの文字
[^ ] 囲まれている文字以外
例2)最初の文字が1から5までの数字のクローンのみを抽出
user@host% alngrep.pl '^[1-5].*' < test.aln
       
\ バックスラッシュの後のメタキャラクタは、メタキャラクタとして扱わない
\d 数字。[0-9]と同じ
\D 数字以外。[^0-9]と同じ
\w ワードを作る文字。[a-zA-Z_0-9]と同じ
\W ワードを作らない記号文字
\b 単語の区切り(\wと\Wの境)
例3)2桁の番号+アルファベットのクローン名を抽出
user@host% alngrep.pl '^\d\d\+\w*$' < test.aln
       
{n,m} n回以上m回以下出現する
{n} ちょうどn回出現する
例4)アデニンが10回以上つづく配列を抽出する
user@host% alngrep.pl -s 'A{10,}' < test.aln
       

注釈:

grep

grepはUNIXユーザに親しまれている、検索コマンドです。grepは、 正規表現と呼ばれるパターンマッチングの記述法を用いてファイルの中身から、 パターンに合った部分だけを抽出します。