介绍

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比对到另一个同源物种的数据库(基因组),来确定同源区域;
  • 确定基因的外显子和内含子在基因上的分布等。

运行

参数说明

  1. blat
  2. ## blat - Standalone BLAT v. 37x1 fast sequence search command line tool
  3. ## usage:
  4. ## 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序列与基因组进行比较。

  1. cat test.cds.fa
  2. ## >AT1G01010
  3. ## ATGGAGGATCAAGTTGGGTTTGGGTTCCGTCCGAACGACGAGGAGCTCGTTGGTCACTATCTCCGTAACAAAATCGAAGGAAACACTAGCCGCGACGTTGAAGTAGCCATCAGCGAGGTCAACATCTGTAGCTACGATCCTTGGAACTTGCGCTTCCAGTCAAAGTACAAATCGAGAGATGCTATGTGGTACTTCTTCTCTCGTAGAGAAAACAACAAAGGGAATCGACAGAGCAGGACAACGGTTTCTGGTAAATGGAAGCTTACCGGAGAATCTGTTGAGGTCAAGGACCAGTGGGGATTTTGTAGTGAGGGCTTTCGTGGTAAGATTGGTCATAAAAGGGTTTTGGTGTTCCTCGATGGAAGATACCCTGACAAAACCAAATCTGATTGGGTTATCCACGAGTTCCACTACGACCTCTTACCAGAACATCAGAGGACATATGTCATCTGCAGACTTGAGTACAAGGGTGATGATGCGGACATTCTATCTGCTTATGCAATAGATCCCACTCCCGCTTTTGTCCCCAATATGACTAGTAGTGCAGGTTCTGTGGTCAACCAATCACGTCAACGAAATTCAGGATCTTACAACACTTACTCTGAGTATGATTCAGCAAATCATGGCCAGCAGTTTAATGAAAACTCTAACATTATGCAGCAGCAACCACTTCAAGGATCATTCAACCCTCTCCTTGAGTATGATTTTGCAAATCACGGCGGTCAGTGGCTGAGTGACTATATCGACCTGCAACAGCAAGTTCCTTACTTGGCACCTTATGAAAATGAGTCGGAGATGATTTGGAAGCATGTGATTGAAGAAAATTTTGAGTTTTTGGTAGATGAAAGGACATCTATGCAACAGCATTACAGTGATCACCGGCCCAAAAAACCTGTGTCTGGGGTTTTGCCTGATGATAGCAGTGATACTGAAACTGGATCAATGATTTTCGAAGACACTTCGAGCTCCACTGATAGTGTTGGTAGTTCAGATGAACCGGGCCATACTCGTATAGATGATATTCCATCATTGAACATTATTGAGCCTTTGCACAATTATAAGGCACAAGAGCAACCAAAGCAGCAGAGCAAAGAAAAGGTGATAAGTTCGCAGAAAAGCGAATGCGAGTGGAAAATGGCTGAAGACTCGATCAAGATACCTCCATCCACCAACACGGTGAAGCAGAGCTGGATTGTTTTGGAGAATGCACAGTGGAACTATCTCAAGAACATGATCATTGGTGTCTTGTTGTTCATCTCCGTCATTAGTTGGATCATTCTTGTTGGTTAA
  4. ## >AT1G01020
  5. ## ATGGCGGCGAGTGAACACAGATGCGTGGGATGTGGTTTTAGGGTAAAGTCATTGTTCATTCAATACTCTCCGGGTAACATTCGTCTCATGAAATGCGGAAATTGCAAGGAAGTAGCAGATGAGTACATCGAGTGTGAACGCATGATTATTTTCATCGATTTAATCCTTCACAGACCAAAGGTATATAGACACGTCCTCTACAATGCAATTAATCCAGCAACTGTCAATATTCAGCATCTGTTGTGGAAGTTGGTCTTCGCCTATCTTCTTCTAGACTGTTATAGAAGCTTGCTACTGAGAAAAAGTGATGAAGAATCGAGCTTTTCTGATAGCCCTGTTCTTCTATCTATAAAGGTTCTGATTGGTGTCTTATCTGCAAACGCTGCATTTATCATCTCTTTTGCCATTGCGACTAAGGGTTTGCTAAATGAAGTTTCCAGAAGAAGAGAGATTATGTTGGGGATATTCATCTCTAGTTACTTCAAGATATTTCTGCTTGCGATGTTGGTATGGGAATTCCCAATGTCAGTGATTTTTTTTGTCGATATACTTCTCTTAACATCAAACTCCATGGCTCTTAAAGTGATGACTGAATCAACAATGACCAGATGCATAGCCGTATGCTTAATCGCGCACTTGATTAGATTCTTGGTGGGTCAGATTTTTGAGCCGACAATATTTTTGATACAAATTGGATCTCTGTTGCAATATATGTCTTATTTTTTCAGAATCGTATGA
  1. blat test.cds.fa Arabidopsis_thaliana.genome.fa output.psl

结果

通过比较可以发现,BLAT基本可以找到CDS序列各外显子的位置。

  1. cat output.psl
  2. ## psLayout version 3
  3. ##
  4. ## 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
  5. ## match match count bases count bases name size start end name size start end count
  6. ## ---------------------------------------------------------------------------------------------------------------------------------------------------------------
  7. ## 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,
  8. ## 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。

参考

  1. 《生物信息学》樊龙江
  2. https://github.com/djhshih/blat
  3. https://github.com/seqan/seqan/tree/main/apps/razers3
  4. 公众号 | universebiologygirl | 序列比对,不止BLAST
  5. 公众号 | 林木科学评论 | BLAT比对(完美解决scaffold顺序问题)

以上可能会有错误,欢迎交流。