blast

blast包含核酸序列比对,蛋白序列比对等。
主要有两个步骤:

  1. 建库 (makeblastdb)
  2. 比对 (blast)
mdkebalstdbblast的参数
makeblastdb 
-in input_file
-input_type type   #输入的文件类型:String, `asn1_bin', `asn1_txt', `blastdb', `fasta'
-dbtype molecule_type #要生成的数据库类型:String, `nucl', `prot'
-title database_title
-parse_seqids  #保持fasta文件内的序列名,否则程序会给它重新安排一个名词。
-out database_name
# 一般只要三个参数(-in,-dbtype,-out)

blastn/blastp
-query #要比对的文件,接收fasta文件。
-db #要比对的数据库,用makeblastdb生成数据库会产生6个文件,只要写数据库的名词即可,后缀不要写。
-out #输出文件
一VS一比对示例
1. 核酸序列比对 blastn

假如有两个序列:a.fasta 和 b.fasta


# 将a.fastq作为reference建立库,然后用b.fasta比对
# 建立库 (将其中一条序列建库,作为reference)
makeblastdb -in a.fasta -dbtype nucl -out a_db

# 比对 (b.fasta作为query)
# -db 就是上一步建库的名字(-out的参数)
blastn -query b.fasta -db a_db -out result 
2. 蛋白序列比对 blastp

假如有两个蛋白序列:a.faa 和 b.faa


# 将a.fastq作为reference建立库,然后用b.fasta比对
# 建立库 (将其中一条序列建库,作为reference)
makeblastdb -in a.fasta -dbtype prot -out a_db

# 比对 (b.fasta作为query)
# -db 就是上一步建库的名字(-out的参数)
blastp -query b.fasta -db a_db -out result 
一VS多比对示例
1. 核酸序列比对 blastn

有序列a.fasta需要跟b_1.fasta, b_2.fasta进行比对。

# 将所有的b文件合并
cat b_1.fasta, b_2.fasta > b_all.fasta
# 建库
makeblastdb -in b_all.fasta -dbtype nucl -out b_all_db
# 比对 (b.fasta作为query)
# -db 就是上一步建库的名字(-out的参数)
blastn -query a.fasta -db b_all_db -out result 

建立库时会出现下面的文件:
在这里插入图片描述
比对结果:
主要看Identities,Gaps, 这里有99%的一致性和4个gaps。
在这里插入图片描述

备注:

调换queryreference的顺序,比对的结果是不一样的。因为中间有建库的步骤,所以会导致差异。
一般来说,我们将大数据建库作为reference,将小数据作为query来比对。

补充:

blastn和blastp:

-db: 指定blast搜索用的数据库,详见上篇文章

-query:用来查询的输入序列,fasta格式

-out:输出结果文件

-evalue: 设置e值cutoff

-max_target_seqs:设置最多的目标序列匹配数

-num_threads:指定多少个cpu运行任务(依赖于你的系统,同于以前的-a参数)

-outfmt:一般设置为6,(0-10之间的数都可以)
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐