トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

GenBank形式配列から特定遺伝子を切り出す

[系統解析のための色々]

GenBank形式配列から特定遺伝子を切り出す

 GenBankからGenBank形式でダウンロードした配列には、FEATURESフィールドに配列の様々な情報が記述されており、この情報に基づいて特定の遺伝子のみを取り出すことが可能です。もちろん、そのような情報がきちんと記述されているファイルしか処理することができませんが、無いよりはずっと便利です。ミトコンドリアや葉緑体、特定の染色体の完全配列から特定の遺伝子のみを取り出す際に威力を発揮します。

切り出す対象を決める

 まずはエディタなりページャなりでGenBank形式ファイルの中を見て切り出す対象を探します。「FEATURES」フィールドのtRNA・rRNA・CDS(タンパクコード領域)という記述と、その領域の配列内での位置を表している「数字..数字」や/product・/geneといったタグなど、目印になる記述を探します。EMBOSSのshowfeatコマンドを以下のように実行してできるテキストファイルを閲覧するのも良いでしょう。

showfeat -tags -position input-file-name output-file-name

出力にstdoutを指定すれば画面に出力することもできますが、たいていの場合ターミナルの横幅が足りずに見づらくなるので一旦ファイルに書き出す方が良いでしょう。

数値で範囲指定して切り出す

 切り出す位置を数値で範囲指定する場合にはEMBOSSのextractseqコマンドを使います。以下のように実行して下さい。

extractseq -regions start-end input-file-name output-file-name

範囲指定は「1-1000,1500-2000」などとカンマで区切って複数指定できます。ハイフン「-」の代わりに「..」でも構いません。複数指定した範囲を別の配列としたい場合は「-separate」オプションを指定しておきます。

タグのキーワードに基づいて切り出す

 切り出す対象のタグに特定のキーワード(遺伝子名や産物名)が見つかったら、それを利用して配列を切り出します。それにはEMBOSSのextractfeatコマンドを用います。以下のようにコマンドを実行して下さい。

extractfeat -tag product -value 16S input-file-name output-file-name

これは16S rRNA領域を切り出す例です。切り出し元のデータには/productタグに16Sというキーワードが含まれているという前提です。/geneタグにND1というキーワードを含む領域を切り出す場合は以下のようにします。

extractfeat -type CDS -tag gene -value ND1 input-file-name output-file-name

ここで-typeオプションを追加しているのは、タンパクコード領域ではgeneとCDSで二重にFEATURESが記述されているため、これが無いと同じ配列が二つ書き出されてしまうためです。前述のrRNA領域の場合、「-type rRNA」が付いていても構いません。

特定遺伝子領域を前後100bpを含めて切り出す

 extractfeatの「-before」「-after」オプションでできるようです。

 複数配列を一度に処理したくなりますが今のところスクリプト無しで一発でやる方法は分かりません。アライメント済配列ファイルから特定のOTUの未アライメント時の範囲を指定して相当部分を切り出すとかができれば最高なんですけどねぇ・・・。

最終更新時間:2007年03月11日 12時26分05秒