介绍
BLAT(BLAST-Like alignment tool)即类BLAST联配工具,由James Kent于2002年开发。当时随着人类基因组计划的进展,需要在短时间内将大量表达序列标签(EST)比对到人类基因组来进行注释,BLAST针对这种需求存在几个明显的缺陷(1. BLAST处理速度较慢,而且运算得到的结果难以处理,2. BLAST无法表示出内含子的基因位置信息),BLAT应运而生[1]。
BLAT已成为一个没有得到积极开发的遗留工具[2],github中建议新用户使用razers3[3]。
但是我经常还是可以看到很多人在用,我们简单了解一下BLAT。BLAT和BLAST主要区别[1]:
- BLAST是将查询序列索引化,而BLAT是将庞大的目标数据库索引化,然后线性搜索查询序列。所以BLAT要比BLAST快很多。
- BLAST是将搜索数据库中所有与子序列精确匹配的序列(hit)向两个方向继续延伸,即延伸发生在一两个相邻位置的hit之间;BLAT则可以扩展任何数目的hit。
- BLAST将两个序列之间的每个同源区域作为单独的比对结果返回,而BLAT则将它们“缝合”在一起,返回一个大的联配结果。BLAT有特殊的代码处理RNA/DNA比对过程中的内含子。因此在RNA/DNA比对中,BLAST返回的是一个包含每个外显子的联配结果,而BLAT返回的是一个大的完整的基因联配结果,可以给出正确的剪接位点。
注意:因为BLAT的算法,是将整个数据库全部读入内存进行比对。因此如果服务器内存不够大,不建议使用BLAT进行nt/nr等大数据库的比对[4]。
BLAT的典型用途包括:
- 将mRNA比对到同种基因组来预测其在基因组上的位置;
- 在进化关系较近的物种之间,可以将一个物种的蛋白质或mRNA比对到另一个同源物种的数据库(基因组),来确定同源区域;
- 确定基因的外显子和内含子在基因上的分布等。
运行
参数说明
blat
## blat - Standalone BLAT v. 37x1 fast sequence search command line tool
## usage:
## blat database query [-ooc=11.ooc] output.ps
blat
:
database
: 可以是.fa
、.nib
或.2bit
文件,或者是每行一个文件名的文本文件-ooc=11.ooc
: 包含所有需要排除的长度为11的k-mer的文件,不需要指定改参数output.psl
: 输出文件名-t
:指定数据库的类型,dna
/prot
/dnax
-q
: 指定序列类型,dna
/rna
/prot
/dnax
/rna
-noHead
: 不输出表头信息,有助于结果文件的后续处理-out
:指定输出的文件格式,psl
/pslx
/sxt
/maf
/sim4
/wublast
/blast
/blast8
/blast9
因此,
blat database query output.psl
不加任何其他参数的情况下就是比对核酸序列。
实操
我选择Arabidopsis thaliana的两个基因AT1G01010和AT1G01020的CDS序列与基因组进行比较。
cat test.cds.fa
## >AT1G01010
## ATGGAGGATCAAGTTGGGTTTGGGTTCCGTCCGAACGACGAGGAGCTCGTTGGTCACTATCTCCGTAACAAAATCGAAGGAAACACTAGCCGCGACGTTGAAGTAGCCATCAGCGAGGTCAACATCTGTAGCTACGATCCTTGGAACTTGCGCTTCCAGTCAAAGTACAAATCGAGAGATGCTATGTGGTACTTCTTCTCTCGTAGAGAAAACAACAAAGGGAATCGACAGAGCAGGACAACGGTTTCTGGTAAATGGAAGCTTACCGGAGAATCTGTTGAGGTCAAGGACCAGTGGGGATTTTGTAGTGAGGGCTTTCGTGGTAAGATTGGTCATAAAAGGGTTTTGGTGTTCCTCGATGGAAGATACCCTGACAAAACCAAATCTGATTGGGTTATCCACGAGTTCCACTACGACCTCTTACCAGAACATCAGAGGACATATGTCATCTGCAGACTTGAGTACAAGGGTGATGATGCGGACATTCTATCTGCTTATGCAATAGATCCCACTCCCGCTTTTGTCCCCAATATGACTAGTAGTGCAGGTTCTGTGGTCAACCAATCACGTCAACGAAATTCAGGATCTTACAACACTTACTCTGAGTATGATTCAGCAAATCATGGCCAGCAGTTTAATGAAAACTCTAACATTATGCAGCAGCAACCACTTCAAGGATCATTCAACCCTCTCCTTGAGTATGATTTTGCAAATCACGGCGGTCAGTGGCTGAGTGACTATATCGACCTGCAACAGCAAGTTCCTTACTTGGCACCTTATGAAAATGAGTCGGAGATGATTTGGAAGCATGTGATTGAAGAAAATTTTGAGTTTTTGGTAGATGAAAGGACATCTATGCAACAGCATTACAGTGATCACCGGCCCAAAAAACCTGTGTCTGGGGTTTTGCCTGATGATAGCAGTGATACTGAAACTGGATCAATGATTTTCGAAGACACTTCGAGCTCCACTGATAGTGTTGGTAGTTCAGATGAACCGGGCCATACTCGTATAGATGATATTCCATCATTGAACATTATTGAGCCTTTGCACAATTATAAGGCACAAGAGCAACCAAAGCAGCAGAGCAAAGAAAAGGTGATAAGTTCGCAGAAAAGCGAATGCGAGTGGAAAATGGCTGAAGACTCGATCAAGATACCTCCATCCACCAACACGGTGAAGCAGAGCTGGATTGTTTTGGAGAATGCACAGTGGAACTATCTCAAGAACATGATCATTGGTGTCTTGTTGTTCATCTCCGTCATTAGTTGGATCATTCTTGTTGGTTAA
## >AT1G01020
## ATGGCGGCGAGTGAACACAGATGCGTGGGATGTGGTTTTAGGGTAAAGTCATTGTTCATTCAATACTCTCCGGGTAACATTCGTCTCATGAAATGCGGAAATTGCAAGGAAGTAGCAGATGAGTACATCGAGTGTGAACGCATGATTATTTTCATCGATTTAATCCTTCACAGACCAAAGGTATATAGACACGTCCTCTACAATGCAATTAATCCAGCAACTGTCAATATTCAGCATCTGTTGTGGAAGTTGGTCTTCGCCTATCTTCTTCTAGACTGTTATAGAAGCTTGCTACTGAGAAAAAGTGATGAAGAATCGAGCTTTTCTGATAGCCCTGTTCTTCTATCTATAAAGGTTCTGATTGGTGTCTTATCTGCAAACGCTGCATTTATCATCTCTTTTGCCATTGCGACTAAGGGTTTGCTAAATGAAGTTTCCAGAAGAAGAGAGATTATGTTGGGGATATTCATCTCTAGTTACTTCAAGATATTTCTGCTTGCGATGTTGGTATGGGAATTCCCAATGTCAGTGATTTTTTTTGTCGATATACTTCTCTTAACATCAAACTCCATGGCTCTTAAAGTGATGACTGAATCAACAATGACCAGATGCATAGCCGTATGCTTAATCGCGCACTTGATTAGATTCTTGGTGGGTCAGATTTTTGAGCCGACAATATTTTTGATACAAATTGGATCTCTGTTGCAATATATGTCTTATTTTTTCAGAATCGTATGA
blat test.cds.fa Arabidopsis_thaliana.genome.fa output.psl
结果
通过比较可以发现,BLAT基本可以找到CDS序列各外显子的位置。
cat output.psl
## psLayout version 3
##
## match mis- rep. N's Q gap Q gap T gap T gap strand Q Q Q Q T T T T block blockSizes qStarts tStarts
## match match count bases count bases name size start end name size start end count
## ---------------------------------------------------------------------------------------------------------------------------------------------------------------
## 1290 0 0 0 5 581 0 0 + Chr1 30427671 3759 5630 AT1G01010 1290 0 1290 6 154,278,125,388,155,190, 3759,3995,4482,4707,5173,5440, 0,154,432,557,945,1100,
## 738 0 0 0 8 1014 0 0 - Chr1 30427671 6914 8666 AT1G01020 738 0 738 9 96,48,87,49,72,85,69,77,155, 30419005,30419207,30419346,30419681,30419836,30420020,30420218,30420438,30420602, 0,96,144,231,280,352,437,506,583,
- 第1~8列:通体的比对统计,包括精确比对碱基数、错配、query和subject上的gap个数与gap总长等;
- 第9~17列:比对位置信息,包括比对方向、query和subject的名字、长度、比对起止位置;
- 第18~21列:显示每一个精确比对的block的信息,包括blocks数、每个block的长度和在query、subject上的位置。
注意:结果里面碱基位置的计算是从0开始的而不是1。
参考
- 《生物信息学》樊龙江
- https://github.com/djhshih/blat
- https://github.com/seqan/seqan/tree/main/apps/razers3
- 公众号 | universebiologygirl | 序列比对,不止BLAST
- 公众号 | 林木科学评论 | BLAT比对(完美解决scaffold顺序问题)
以上可能会有错误,欢迎交流。