Biostar_handbook||charpter 12. BLAST

BLAST: basic local alignment search tool。包括:blastn, blastp, blastx, tblastn, tblastx

BLAST 基本步骤

  1. 准备数据库:makeblastdb
  2. 选择blast工具:包括blastn, blastp等
  3. 运行得到结果,对输出进行修饰

Blast工具类型:

Blast 术语 terminology

  • Query: 检索的序列
  • Target:需要比对的数据集合,数据库。
  • Subject:how we refer to an entry that matches.
  • Score:比对的得分
  • E-value:期望值阈值。1.E值适合与有一定长度,且复杂度不能太低的序列。2. 当E值小于10-5时,表明序列有较高的同源性,而非因计算错误。3.当e值小于10-6表明两序列的同源性非常高,几乎没有必要再做确认。

建库

以水稻cds数据为例,搜索拟南芥REV的同源基因

### 下载水稻cds和pep数据
wget ftp://ftp.ensemblgenomes.org/pub/plants/release-39/fasta/oryza_sativa/cds/Oryza_sativa.IRGSP-1.0.cds.all.fa.gz
ftp://ftp.ensemblgenomes.org/pub/plants/release-39/fasta/oryza_sativa/pep/Oryza_sativa.IRGSP-1.0.pep.all.fa.gz
gunzip *.gz

### 建库
makeblastdb -in Oryza_sativa.IRGSP-1.0.cds.all.fa -dbtype nucl -out oriza.cds.fa
makeblastdb -in Oryza_sativa.IRGSP-1.0.pep.all.fa -dbtype prot -out oriza.pep.fa

### bio_handbook示例
esearch -db protein -query PRJNA257197|efetch -format=fasta >index/all-protein.fa 
makeblastdb -in all-protein.fa -dbtype nucl -parse_seqids
blastdbcmd -db all-protein.fa -entry 'all' -outfmt '%a' |les

检索比对

BLAST 常用命令

  • task命令: 指不同的检索算法,目的为适应某些特殊的序列(短序列等)其中blastn包括以下task
    • blastn:更为宽松的检索,find more divergent sequences
    • megablast:较为严格的检索,此为blastn的默认检索算法,find less divergent sequences
    • blastn-short:对短序列进行的检索
  • db:数据库位置
  • query:检索的文件
  • out:输出的文件
  • evalue:期望值阈值1e-5
  • perc_identity:根据相似度对输出结果过滤
  • remote:远程NCBI的数据库 ,需-db nr
  • query_loc:检索的位置
  • outfmt:输出的数据格式,常用的为6,7
    • qaccver: 检索序列的ac号
    • saccver: 目标序列的ac号
    • pident:完全匹配百分比
    • length:联配的长度
    • mismatch:错配数目
    • gapopen:gap的数目
    • qstart:检索序列的起始
    • sstart:目标序列起始
    • send:目标序列起始
    • evalue:期望值
    • bitscore:BIT得分
    • score:原始得分
### 检索
blastn -db oriza.cds.fa -query ath_REV.fa -outfmt 7 ###无检索结果

blastn -task blastn -db oriza.cds.fa -query ath_REV.fa -outfmt 7 ###较为宽松,结果很多。


### 指定输出格式 pident 为identity值
blastn -task blastn -db oriza.cds.fa -query ath_REV.fa -outfmt "6 qseqid sseqid pident" 

## 书中按照identity值进行排序
blastn -task blastn -db oriza.cds.fa -query ath_REV.fa -outfmt "6 qseqid sseqid pident" | sort -k3 -rn |head 5

  • 对于低复杂度的序列(low complexity,重复序列较多),加上参数-dust no
  • 序列联配,两两比对加参数-subject
efectch -id NC_001133 -db nucleotide -format fasta > NC_001133.fa

blastn -query start.fa -subject NC_001133.fa

其它的一些BLAST-like的程序

  • Diamond快速blast
  • RAPSearch2:A memory-efficient implementation of RAPSearch algorithm for protein similarity search with a large database and a large queryset.

一些diamond命令

###建库
diamond makedb --in nr.faa -d nr

##比对
diamond blastp -d nr -q reads.fa -o align.txt -f 6

快速是会以准确性为代价的,尚不知道diamond的准确度有多好?

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容