生物信息学分析-blast序列比对及结果详细说明

本文介绍了Blast,一种常用的生物序列比对工具,包括其Web版和本地安装版本,下载步骤,以及如何使用Linux版本进行软件下载、解压和配置。还提到如何构建参考数据库,以及与快速比对工具diamond的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 软件说明

Blast是一种基于序列比对的分析工具,可以用于寻找生物序列之间的同源性,它的全称是Basic Local Alignment Search Tool。

Blast有多种版本和用途,最常见的是基于Web的Blast和本地安装的Blast程序。Web版Blast可以直接在NCBI网站上使用,而本地安装的Blast程序需要下载和安装在计算机上。

Blast的使用流程一般为输入一个查询序列,与数据库中的序列进行比对,输出比对结果。

2. 软件下载

这里使用linux版本,直接下载二进制的程序,注意如有报错,请按报错配置好gcc等依赖环境即可(一般是gcc版本问题)。

这里是对应工具的介绍页面,可直接使用页面提交比对任务

 BLAST: Basic Local Alignment Search Tool

下载链接:

https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.14.1+-x64-linux.tar.gz

解压安装:

###解压
tar -xzvf ncbi-blast-2.14.1+-x64-linux.tar.gz
###进入解压目录
cd ncbi-blast-2.14.1+
###查看解压目录内的文件,感兴趣的就读一下README吧。
ls
[root@vmgmt ncbi-blast-2.14.1+]# ls
bin  BLAST_PRIVACY  ChangeLog  doc  LICENSE  ncbi_package_info  README

###可直接使用的文件在bin目录下
cd bin
###查看目录下的文件
ls
[root@vmgmt bin]# ls
blastdb_aliastool  blast_formatter      blastn_vdb     blastx                      deltablast             legacy_blast.pl  makeprofiledb  rpstblastn  tblastn_vdb        windowmasker
blastdbcheck       blast_formatter_vdb  blastp         cleanup-blastdb-volumes.py  dustmasker             makeblastdb      psiblast       segmasker   tblastx
blastdbcmd         blastn               blast_vdb_cmd  convert2blastmask           get_species_taxids.sh  makembindex      rpsblast       tblastn     update_blastdb.pl

###上面目录的文件默认已经可以直接执行,未配置未系统目录时需要加上指定命令的路径
#如:
./blastn -help
[root@vmgmt bin]# ./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] [-negative_seqidlist filename]
    [-taxids taxids] [-negative_taxids taxids] [-taxidlist filename]
    [-negative_taxidlist 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] [-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] [-subject_besthit]
    [-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] [-sorthits sort_hits]
    [-sorthsps sort_hsps] [-max_target_seqs num_sequences]
    [-num_threads int_value] [-mt_mode int_value] [-remote] [-version]

DESCRIPTION
   Nucleotide-Nucleotide BLAST 2.14.1+

Use '-help' to print detailed descriptions of command line arguments
========================================================================

###如果想直接使用的话注意将本目录加入到profile环境中去(推荐,),或者将本目录下的所有命令复制到/usr/bin下(不建议)
vim /etc/profile.d/blast.sh
##前面的/opt根目录请根据自己的实际路径修改
export PATH="/opt/ncbi-blast-2.14.1+/bin":$PATH  

###配置环境路径生效
source /etc/profile.d/blast.sh
#或
source /etc/profile

#直接运行命令测试
blastn -h

使用方法

###基于基于核酸序列-参考核酸序列的比对功能
blastn -db database -query input.fasta -out output -outfmt 6
### db 后面接比对的数据库, query后面接核酸序列,out接想要输出的文件名,outfmt输出格式,6表示表格输出,如下:
-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

###这个序列比对速度有点慢,建议多核跑加上threads参数, outfmt是大家通用的表格格式,使用6,7都不错。
###输出后看表格头部,大致字段表示如下:

outfmt,格式6输出(无表头,适合文件合并拼接处理)结果如下,没有表头,需要表头说明的采用7输出,从第一列到最后一列解释分别如下:

1、Query id:查询序列ID标识

2、Subject id:比对上的目标序列ID标识

3、% identity:序列比对的一致性百分比

4、alignment length:符合比对的比对区域的长度

5、mismatches:比对区域的错配数

6、gap openings:比对区域的gap数目

7、q. start:比对区域在查询序列(Query id)上的起始位点

8、q. end:比对区域在查询序列(Query id)上的终止位点

9、s. start:比对区域在目标序列(Subject id)上的起始位点

10、s. end:比对区域在目标序列(Subject id)上的终止位点

11、e-value:比对结果的期望值

12、bit score:比对结果的bit score值

一般情况我们看第3、11、12两列,e值越小越可靠

其他blastx,blastp等使用方式基本一致,但需要注意对比的数据库和比对序列是核酸还是蛋白序列。

blastp         基于蛋白序列-参考蛋白序列的比对功能

blastx         基于核酸序列-参考蛋白序列的比对功能

3. 参考数据库构建

这里以NCBI官网的nr数据库为例,大家根据需要下载对应参考库或者自己收集自定义的参考序列库,保持fasta格式即可

下载数据库: 

ftp://ftp.ncbi.nlm.nih.gov/blast/db/FASTA/

建议用ftp下载,文件有点大,需要比较长的时间。

有条件的配置Aspera进行传输,速度比ftp要快很多。

构建数据库,时间消耗与fasta文件大小相关,nr完整文件建库需要时间较长,一般半年左右更新一次即可:

# 构建参考数据库
makeblastdb -in nr.fa -dbtype nucl -out nrdb
# in        参考数据库fasta序列文件,可以加入自己已经注释的序列库,只要是fasta格式就行
# dbtype    接序列类型nucl表示核酸序列,prot表示蛋白序列
# out       输出数据库的名称,也就是后面blast命令后面的 db参数后接的数据库名

4. 其他工具对比说明

blast系列工具一般速度比较慢,一般用于小的样品序列和小的参考序列库进行对比,不适合大量序列的比对,需要大量序列比对的可参考本人博客 diamond 快速比对工具,速度最大加速20000倍。

diamond的使用方法与blast基本相近,输出格式及表头字段完全一致。

diamond大基因序列快速比对工具使用详解-包含超算集群多节点计算使用方法-CSDN博客

这段代码是用于执行Blastn比对,并处理Blastn比对结果的操作。下面是它的详细解释: 1. `blastn -query ${Diamond_file_in} -db "/home/Reference_database/NCBI_db_nt/" -out ${Blast_out}${SampleID}_blastn.out -num_threads 12 -outfmt 6 qseqid qlen saccver salltitles slen pident length qcovs bitscore evalue staxids -evalue 1e-5`:这是Blastn的命令行,其中`${Diamond_file_in}`是输入的序列文件路径,`/home/Reference_database/NCBI_db_nt/`是参考数据库的路径,`${Blast_out}${SampleID}_blastn.out`是输出结果文件的路径和文件名,`-num_threads 12`表示使用12个线程进行比对,`-outfmt 6`指定输出格式为表格格式,接下来的各个参数指定了输出表格中每一列的息。 2. `awk -F$'/t' '!seen[$1]++' ${Blast_out}${SampleID}_blastn.out > ${Blast_out}${SampleID}_blastn.out.unique`:这是用于处理Blastn比对结果的操作,其中`${Blast_out}${SampleID}_blastn.out`是Blastn比对输出的结果文件,`> ${Blast_out}${SampleID}_blastn.out.unique`表示将处理结果输出到`${Blast_out}${SampleID}_blastn.out.unique`文件中。`awk -F$'/t' '!seen[$1]++'`是一个awk命令,它的作用是将`${Blast_out}${SampleID}_blastn.out`文件中的重复行去除,只保留第一次出现的行。其中`-F$'/t'`指定了表格文件的分隔符为制表符,`!seen[$1]++`表示只输出第一次出现的行,去除重复行。 因此,这段代码的作用是将`${Diamond_file_in}`中的序列文件与参考数据库中的核酸序列进行比对,并将比对结果输出到`${Blast_out}${SampleID}_blastn.out`文件中,然后使用awk命令去除比对结果中的重复行,并将处理结果输出到`${Blast_out}${SampleID}_blastn.out.unique`文件中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小果运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值