バイオインフォマティクスでゲノムワイド関連解析(GWAS)

バイオインフォマティクスを頑張っている方が、本ブログの内容を真似することで、自分のデータで解析ができる情報を提供することが目標です! 今はGATKの解説をメインテーマにしています。

MENU

Local blastの使い方 [blastn]

コマンドラインでのblastの使い方

導入難易度★☆☆☆☆
使用難易度★★☆☆☆

このツールで何ができる?
BLAST(Basic Local Alignment Search Tool) は、類似性のある配列を持つ領域を見つけるツールです。このプログラムは、核酸やタンパク質の配列を任意の配列データベースと比較し、一致した部分の統計的有意性を計算します。BLASTは、配列間の機能的および進化的な関係を推測したり、ファミリー遺伝子の仲間を特定したりすることにも使えます。

私の使用感
BLAST にはNCBI Blastで利用できる ウェブ上のプラグラムがあります。ローカルで実施するBLASTでは、独自のデータベースを対象に設定することのできる点、大量のクエリ(解析する配列)を同時に処理することができる点、結果をその後の解析に組み込みやすい点など色々な長所があります。普段、バイオインフォマティクスを使っていない研究者の方でも、やってみると意外と簡単に実行できるので、ぜひ習得して役立てて下さい。

その他の詳細はMetagenomicsのHPを確認してみてください。

www.metagenomics.wiki


Twitterで記事の更新をお知らせしているので、興味を持たれた方は是非フォローをお願いします。

1. blastをインストールする。

conda install -c bioconda blast

インストールが正しく導入されたか確認する。

blastn --help

正しく導入されていれば、下記が表示される。

USAGE
  blastn [-h] [-help] [-import_search_strategy filename]
    [-export_search_strategy filename] [-task task_name] [-db database_name]
    [-dbsize num_letters] [-gilist filename] [-seqidlist filename]
    [-negative_gilist filename] [-entrez_query entrez_query]
    [-db_soft_mask filtering_algorithm] [-db_hard_mask filtering_algorithm]
    [-subject subject_input_file] [-subject_loc range] [-query input_file]
    [-out output_file] [-evalue evalue] [-word_size int_value]
    [-gapopen open_penalty] [-gapextend extend_penalty]
    [-perc_identity float_value] [-qcov_hsp_perc float_value]
    [-max_hsps int_value] [-xdrop_ungap float_value] [-xdrop_gap float_value]
    [-xdrop_gap_final float_value] [-searchsp int_value]
    [-sum_stats bool_value] [-penalty penalty] [-reward reward] [-no_greedy]
    [-min_raw_gapped_score int_value] [-template_type type]
    [-template_length int_value] [-dust DUST_options]
    [-filtering_db filtering_database]
    [-window_masker_taxid window_masker_taxid]
    [-window_masker_db window_masker_db] [-soft_masking soft_masking]
    [-ungapped] [-culling_limit int_value] [-best_hit_overhang float_value]
    [-best_hit_score_edge float_value] [-window_size int_value]
    [-off_diagonal_range int_value] [-use_index boolean] [-index_name string]
    [-lcase_masking] [-query_loc range] [-strand strand] [-parse_deflines]
    [-outfmt format] [-show_gis] [-num_descriptions int_value]
    [-num_alignments int_value] [-line_length line_length] [-html]
    [-max_target_seqs num_sequences] [-num_threads int_value] [-remote]
    [-version]

DESCRIPTION
   Nucleotide-Nucleotide BLAST 2.6.0+

・
・
・
  * Incompatible with:  gilist, seqidlist, negative_gilist, subject_loc,
   num_threads

eupatho-bioinfomatics.hatenablog.com

2. 解析の準備に必要な手順

本ブログの過去記事↓

eupatho-bioinfomatics.hatenablog.com

で取得したマラリア原虫のリファレンス配列(3D7_genomes/PlasmoDB-52_Pfalciparum3D7_Genome.fasta)を例として用いる。

まず、クエリ配列を記載したfastaファイルを準備する。

今回は、以前にも使用したPlasmodium falciparumのMAF1遺伝子の配列を用いる。

eupatho-bioinfomatics.hatenablog.com

上の記事の2を参照に、Genomic Sequence (UTRs highlighted)の塩基配列(ATG-TAA)をコピーする。 f:id:Harry-kun:20210704062508p:plain

好きな方法で構わないが、120bpおきの配列を取得して、Fasta形式のテキストファイルとする。
例えば、指定した文字数でテキスト改行ツールであるCuttpicにコピーした配列を貼り付ける。 改行が間に挟まっている場合、位置がずれてしまうので改行は消去しておく。下にあるバーを動かして、任意の文字数を指定する。クリップマークを選択してコピーする。 最終的に、以下のfastaファイルをquery.fastaとして作業ディレクトリに保存する。

>MAF120
ATGATTAATTTAGATATTGAAATATTGAATGATGTCAATTTAATATTAGAAAAATTAGATGCCCACGATCGTTTTATTGAAGCAAAAATAGAACTGTTCGAAGATATAGACAAAACGAAAA
>MAF240
ATGGTTATAGTACTACTTTAAATAATGAAGAAAATATAAGCAATACACAAATATTTAGCTCCGAATTGGATATTAATAACAAACTAGATGAAGAAAATAATATGAGCCCTTTTTATGATAA
>MAF360
TAGAAATATTATCTCACAAATCAACGAAAATAATGTTAAACATTTGGACCCTTTGAATCCTTTTGATAATGAAAATAATATATCAAAAGAAATACACAATAATAAGGAAATAGAGGAAAAT
>MAF480
GAAGAAAAGAAAGACAAGAACGATAATCAATATTATGATAACGAAAATATAAATAATGATAATAATAAATATAATGATAACGAACATATAAATAATGATAATAATAAATATAATGATAATA
>MAF600
ATAAATATAATGATAACGAAAATATAAATAATGATAAGAATAAATATTATGATAACGAAAATATAAATAATGATAAGAATAAATATAATGATAACGAAAATATAAATAATGATAATAATAA
>MAF720
CACTTGCTATATTAATATCCCAGATAGTATTCTTACCAATAAAAATGTAAAAAAAAAAAAAATTCCTGAAGTTATTAATAATAATGGAAAAGAAAAAAAAAGCATTTTGACTAATATTATT
>MAF840
AATATCTTAAATTATGTTTTTCCAGATTATGAATTTAAATACTTAAATAATTCAAACTATAAATATATAAAAAATATCAATAGTGTTATTGATAATATAAACTATAACTTATTTTATATTA
>MAF960
TTGAAAATATTTATAGAGGATTCAATAAAAAAATATGGAAAATATTAAAAGAACTTATAGATTTCAAATATTGTGATGTCTATACTTATTTAAACGATACAGATAACGATCCATATGTTGA
>MAF1080
TAAAGAAAGTATATCAAGTTTTAATTACTTCTTCTTTGCAAAAAAAAATAAAAGAATTCTTTTCATATCTTGTATAACCAAACCAAAATATAAAAATCAAAAAAATGATGAAGATTTTAAT

3. データベースを作成する。

makeblastdbを使って、データベースを作成する。

#ゲノム配列は3D7_genomesの中に格納している。
makeblastdb -in 3D7_genomes/PlasmoDB-52_Pfalciparum3D7_Genome.fasta -dbtype nucl -parse_seqids

すると、以下のファイルが生成される。

ls 3D7_genomes
PlasmoDB-52_Pfalciparum3D7_Genome.fasta.nhr PlasmoDB-52_Pfalciparum3D7_Genome.fasta.nsd
PlasmoDB-52_Pfalciparum3D7_Genome.fasta.nin PlasmoDB-52_Pfalciparum3D7_Genome.fasta.nsi
PlasmoDB-52_Pfalciparum3D7_Genome.fasta.nog PlasmoDB-52_Pfalciparum3D7_Genome.fasta.nsq

4. ローカルBlastを実行する。

今回は塩基配列を用いるので、blastnを使用する。なお、blastには以下のような機能がある。

f:id:Harry-kun:20210704070638p:plain
本図はhttps://bi.biopapyrus.jp/seq/blast/を参考に作成した。

blastn -db 3D7_genomes/PlasmoDB-52_Pfalciparum3D7_Genome.fasta -query query.fasta -out result.txt

-db 参照するデータベース名を指定する。
-query クエリ配列を入力したファイル名を指定する。
-out 結果を出力するファイル名を指定する。

すると、result.txtが生成される。 f:id:Harry-kun:20210704071621p:plain

5. outfmtで出力形式を変更する。

デフォルトの出力形式だと、後の解析に結果を使用しづらい。
そこでoutfmtを使用すると、さまざまな形式で結果を出力することができる。

*** Formatting options
 -outfmt <String>
   alignment view options:
     0 = pairwise,
     1 = query-anchored showing identities,
     2 = query-anchored no identities,
     3 = flat query-anchored, show identities,
     4 = flat query-anchored, no identities,
     5 = XML Blast output,
     6 = tabular,
     7 = tabular with comment lines,
     8 = Text ASN.1,
     9 = Binary ASN.1,
    10 = Comma-separated values,
    11 = BLAST archive format (ASN.1) 

実際に-outfmt 6を実行してみると、

blastn -db 3D7_genomes/PlasmoDB-52_Pfalciparum3D7_Genome.fasta -query query.fasta -out result.txt -outfmt 6


MAF120   Pf3D7_04_v3 100.000 121 0   0   1   121 724242  724122  5.79e-59    224
MAF240  Pf3D7_04_v3 100.000 121 0   0   1   121 724121  724001  5.79e-59    224
MAF360  Pf3D7_04_v3 100.000 121 0   0   1   121 724000  723880  5.79e-59    224
MAF720  Pf3D7_04_v3 100.000 121 0   0   1   121 723637  723517  5.79e-59    224
MAF840  Pf3D7_04_v3 100.000 121 0   0   1   121 723516  723396  5.79e-59    224
MAF960  Pf3D7_04_v3 100.000 121 0   0   1   121 723395  723275  5.79e-59    224
MAF1080 Pf3D7_04_v3 100.000 121 0   0   1   121 723274  723154  5.79e-59    224

となる。この場合、クエリ配列名、一致した塩基数、データベース上での領域などが羅列したファイルが得られる。

お疲れ様でした、今回はこれで終わりです。

よければ他の記事も見ていってください。