kuroの覚え書き

96の個人的覚え書き

BLASTでトップヒットだけを抽出する

アノテーションデータベースが作りたいので、A種のgene aについてB種の遺伝子をBLASTで調べて、一番上に来るものを1:1対応させたい。

http://bioinfo-dojo.net/2016/03/25/blast_besthit_outfmt7/
ここにあるように、blastの結果から1行目だけをawkで取り出す。
その上でcutで先頭の2カラムを抽出すればいけるよね。
ワンライナーなら

$ blastn -query test.fasta -db mydb -outfmt 7 | awk '/hits found/{getline;print}' | grep -v "#" | cut -f 1,2 > anno.txt

これでばっちり。
あとはA種のgeneのfastaからすべての配列を順にblastにかけてannotationを作るスクリプトを考えないと。
と思ったけど、考えるまでもなく、普通に複数の遺伝子の並んだfastaを上のワンライナーにかけるだけで、目的のリストが完成してしまった。かかった時間も数十秒。ほんとにちゃんとできているのか心配になるな。