文章目录
blast
blast
包含核酸序列比对,蛋白序列比对等。
主要有两个步骤:
- 建库 (makeblastdb)
- 比对 (blast)
mdkebalstdb
和blast
的参数
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。
备注:
调换query
和reference
的顺序,比对的结果是不一样的。因为中间有建库的步骤,所以会导致差异。
一般来说,我们将大数据建库作为reference
,将小数据作为query
来比对。
补充:
blastn和blastp:
-db: 指定blast搜索用的数据库,详见上篇文章
-query:用来查询的输入序列,fasta格式
-out:输出结果文件
-evalue: 设置e值cutoff
-max_target_seqs:设置最多的目标序列匹配数
-num_threads:指定多少个cpu运行任务(依赖于你的系统,同于以前的-a参数)
-outfmt:一般设置为6,(0-10之间的数都可以)