GenBank から遺伝子配列を集める方法

2024 年 4 月 7 日 井上 潤
学名から分類を得る

NCBI の Taxonomy Browser を使います.

Taxonomy name/id のページ
に以下のサンプルを入れると,右の画面のように番号が得られます.これらの番号は,分類群名を示します.Taxonomy Brower の HP に番号を入れることで (図下),分類群名を得られます (2013 年 8 月).

Percina macrolepida
Minytrema melanops
Iberochondrostoma lemmingii
Phenacobius mirabilis
Gila robusta





特定の配列を集めてダウンロードする
ミトコンドリアゲノムであれば,ふつうは簡単です.

例えば脊椎動物なら,こちらのページから Accession number を押して GenBank format のページまでたどって,1 種づつ GenBank format をあつめても良いでしょう.あとはこのページの下方で紹介している GenBankStrip.pl で GenBank format を処理して遺伝子データセットを得れば良いです.Accession number を一つのファイルに保存しておけば,以下の「学名をリストアップして一気にデータを集める」に書いている Batch Entrez を使った方法で GenBank format になってミトコンドリアゲノムをたくさんの種から一気に集めることができます.

以上の方法で集められない場合は,これから紹介する方法が考えられます.

Entrez を使って,必要な配列を検索して一気にダウンロードすることもできます.まずは TOGO TV を見た方が良いです.

以下にいくつかの検索例を示します.例題で用いたコマンドの説明は,Entrez Nucleotide, Help に行くと Entrez Help (PDF ファイル) として配信されています.PDF であれば,12 ページの "Range Searching" あたりを見ると,だいたい把握できると思います.それ以外は Acrobat Reader の find を使って,"PDAT" などを検索して拾い読みして下さい.便利そうな例をマニュアルで見つけたので,以下のコラムに張っておきます.
Example searches:
Range of accession numbers:
AF114696:AF114714[ACCN]

Note: It is not possible to search for a range of sequence identification numbers (known as GI numbers and Version) numbers.

Range of sequence lengths:
3000:4000[SLEN]

Range of molecular weights can be searched in the Protein database:
2002:2009[MOLWT]

Note: Additional information about Searching by Molecular Weight is included above.

A range search can also be combined with other Entrez search terms, for example, to limit by organism:

Select a protein database, enter this search in the query box: 2002:2009[MOLWT] AND human[ORGN]

In either the nucleotide or protein database: 3000:4000[SLEN] AND human[orgn]
To create a range, search for 11 through 999,999 nucleotide bases. Enter: 11:999999[SLEN]

Range of dates: 1998/02:2000/01/25[MDAT]



700 個体以上のヒト・ミトコンドリアゲノムデータを集める
たとえば,ヒトのミトコンドリア全長配列だけを集めたい場合は,以下のコマンドを赤い丸で囲ったウィンドウに入力して下さい.ポップアップメニューは "Nucleotide" にします.リンクの張られた数字 (705) をクリックすると,リストが表示されます.クエリフィールドについてはこちらをご覧下さい.

Homo[Organism] AND mitochondri*[Title] AND 16000:17000[SLEN] NOT partial[All Fields] NOT pseudogene[All Fields]


リストアップされた全てのファイルをダウンロードするには,ポップアップメニューを "GeneBank" にして画面が変わるのを待ち,"Send to" となっているポップアップメニューを File にして下さい."sequences.gb" というファイルがダウンロードされます.GeneBank フォーマットから遺伝子を切り出すには,GenBankStrip.pl を使うと良いでしょう.詳しくはすぐ下のコラムを参照して下さい.


ある期間に登録されたミトコンドリアゲノムデータを集める


2007 年 4 月 1 日から 2007 年 7 月 31 日までに更新された,脊椎動物ミトコンドリアゲノム配列を集める場合は,以下のコマンドです.

Vertebrata[Organism] AND mitochondri*[Title] AND 16000:17000[SLEN] NOT partial[All Fields] NOT pseudogene[All Fields] 2007/04/01:2007/07/31[PDAT]



条鰭類のミトコンドリア遺伝子配列データを集める
"NOT Nuclear[Title]" を入れないと,核にコードされていると思われる余分な配列を集めてしまうようです.

Actinopterygii[Organism] AND mitochondri*[Title] NOT Nuclear[Title] AND 500:20000[SLEN] NOT pseudogene[All Fields]

GenBankStrip.pl で処理すると,以下のような結果が得られました.ここで注意したいのが,"500:20000[SLENG] です.500〜20000 bp の部分配列を含めた配列を示しますが,〜10000bp と設定してしまったりすると,ミトコンドリアゲノム配列として登録されている配列が除外されてしまいます.

数レコードしか得られなかった遺伝子は除いてあります (たくさんありました).また,12S が 5 個しか得られないなど,後で改善すべき問題点もあります.



ミトコンドリアゲノム配列だけを集める場合は,Search のポップアップメニューを Genome にすれば,より精度良く分類群を指定してデータを集められます.ただし,Genome にするとヒトのように同種の個体別データを集められなくなります.通常のミトコンドリアゲノム解析であれば,種ごとにデータを集めることになるので,Genome にしてデータ収集を行った方が楽です.ここでも期間限定などの制約をかけてデータを集めることができます."mitochondri*[TItle]" を入れないと,核ゲノムのデータも出てくるので注意して下さい.

mitochondri*[Title] Mammalia[Organism] 2007/04/01:2007/07/31[PDAT]

目的とする数のデータが集められたかどうかは,Organelle Genome Resources のページで確認すると良いです.




学名をリストアップして一気にデータを集める

Batch Entrez に行って手順通りやれば簡単にできます.
学名 (アクセッション No. でも OK です) を改行で区切ったリストをテキストファイルとしてデスクトップに保存します.スペースはアンダースコアにして下さい.「ファイルを選択」を押してこれ (Batch ファイル) を選び,Retrieve を押すだけです.ミトコンドリアゲノムの場合は,Database のポップアップメニューを Genome にしておきます.

Batch ファイルの例です.

Polyodon_spathula
Psephurus_gladius
Acipenser_transmontanus
Huso_huso


Accession number をリストアップして一気にデータを集める
以上と同様の手順です.

NC_002707.2
AB038556



その他

Edwards Lab

Perl を用いた方法や,browser のアドレス欄にアクセッション番号を直接入力する方法等が紹介されています.

MITOMAP

 

Perl scripts: GeneBank format から配列を切り出す

系統解析を行う際に,GenBank にある配列データを切り出して,遺伝子ごとに並べることが良くあると思います.これを少しでも楽にできないかと考えていたところ,便利な perl script が最近になって公開されているのを見つけたので,ここで紹介します.

Perl script.複数種の GeneBank フォーマットから,遺伝子別に配列を切り出します.それほど詳細ではないですが,使用方法は script の最初に書いてあります.

Perl (v5.34.1) では動かなかったです。以下のエラーメッセージがでます。
"Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at GenBankStrip.pl line 280."
Perl の仕様が変化したためらしいです。 以下、GenBankKiridashi.tar.gz で代用できるかお試しください (2024 年 4 月)。

1)
NCBI の webpage にある Search (Nucleotide などに設定) を使って,"Actinopterygii RAG1" あるいは,"Actinopterygii mitochondrion"のように遺伝子配列をキーワード検索します.

2)
GenBank フォーマットで検索結果をダウンロードします.NCBI のサイトの pull down メニューを操作することで,まとめたファイルを自動的にダウンロードできるので,手動でテキストファイルに copy & paste する必要はありません.

3)
GenBankStrip.pl を走らせます.
ダウンロードした seqences.gb と GenBankStrip.pl を同じフォルダに入れておき,以下のコマンドをターミナルに入力します.

perl GenBankStrip.pl -fsequences.gb

切り分けた結果は,seq_gbs.striplist.txt に書かれているので,まずはこれを見てねらい通りのデータセットが作成されたかを確認します.

遺伝子の名前の付け方などが異なるので,ねらい通りのデータセットが得られないこともあります.この場合は,エディタの検索置換機能をつかって infile の遺伝子名を書き換えて,解析し直します.

* 自作の Perl script ですが,GenBank format に書かれているアミノ酸配列を集めるスクリプトを作りました.この辺りを探してください.


GenBankKiridashi.tar.gz

GenBankStrip.pl の条鰭類 mtGenome 限定バージョンです.分類群情報が、アウトプットとして得られる fasta の name line に入ります (2015 年 2 月 井上).




例題:GenBank フォーマットから,RAxML インファイルをつくる
こちらに書きました (2018 年 8 月).
 

Olaf R.P. Bininda-Emonds さんが作成した perl script.Nexus 形式で保存したシーケンスファイルを fasta 形式にしてくれます.MacClade を用いて遺伝子配列を concatenate するには,fasta から NBRF 形式にする必要があります (最近は fast でも concatenete できるようになりました).MacClade でもできますが,unix (ターミナル) を用いた方が簡単にできます.


基本的な操作

seqConverter と Nexus 形式の infile を同じフォルダに入れておきます.terminal でこのフォルダに移動し,

./seqConverter.pl -ri -in -on -dinfile

と入力します.infile.phylip というファイルが作成されるので,これを BBEdit などのエディターを用いて改行コードを変換します.

改行コードは unix から mac に変換しないと,MacClade に Drag & Drop することができません (perl で \n を \r にするだけです.こちらを参考にしてください).改行コードを変更しても,MacClade に持って行って,開く前に再度どのファイルか聞かれるようなことがあります.あきらめないで指示通りやればファイルは開きます ([MacClade 4.08 registered to Your Name, Mxxxxx] にあたる行があると,すんなり読み込んでくれるようです).

Phylip 形式の infile は,OTU の名前が 10 文字になっている必要があります.

Interleaved と Sequential の両方の形式を読み込みます.

outfile で OTU の順序を infile の順序にするには,-ri というオプションを使うのですが,少しおかしな順序になります.しかし outfile を手作業で修正することが可能です.



Fasta 形式の output を得る
seqConverter. pl を用いて fasta 形式を作成するには,バグがあるのでソースコードを少しだけ書きかえる必要があります.以下の行を script に加える必要があります (説明を読む限りはできる操作なのですが,作者が忘れたのだと思います).
344 行 [}]と 345 行 [elsif ($ARGV[$i] eq "-ra")] の間に,

elsif ($ARGV[$i] eq "-of")
{
$fastaPrint = 1;
}

を加えます.




BioPerl を使って,GenBank からミトコンドリア遺伝子の配列を自動的に切り出してダウンロードしてくれるソフトウェア.私は Perl 初心者なのでまだうまく動かせないでいますが,ミトコンドリア遺伝子を扱う研究者にとっては便利なアプリケーションなのではと期待しています.以下の論文で登場を知りました.

Federico Abascal, David Posada, and Rafael Zardoya
MtArt: A New Model of Amino Acid Replacement for Arthropoda
MBE Advance Access published on October 16, 2006.
http://mbe.oxfordjournals.org/cgi/content/abstract/msl136v1