查阅文献或者专利时,有一个序列是你非常需要,但是相关文献/专利只提供了相关引物以及该引物所在基因名,并没有提供可扩增得到的具体序列以及位置信息,当然可以进行PCR实验扩增出目标序列,再进行测序即可得到目标序列。但是这有些麻烦了,下面介绍一下我是如何通过生信的手段只根据双端引物来一步一步确定该引物可扩增得到的目标序列以及在目标序列人类基因组上的具体坐标的:
这里我介绍了两种方法:
1. 基于UCSC的In-Silico PCR工具(http://genome.ucsc.edu/cgi-bin/hgPcr):适合小数据量操作,一般足够使用,适合生信小白。
2. 基于手动Blast对比寻找:适合批量操作,有很多使用In-Silico PCR不能找到的序列,可以使用该方法查找到,但是该方法需要有较强的生信基础(会操作linux,会使用相关脚本语言python或perl)。
那就像专利似的搞一个实施例吧:
比如在文献中找到的下表的某一个序列,你非常需要该序列在基因组的具体位置信息,但是文献中只提供了前后两个引物Primer1/Primer2,基因名还有目标产物的长度:
Gene:HS3ST2
PCR product size:140bp
Primer-1:ATAATTTCCAGAAAG
Primer-2:AGCATGAGAAAGAGGGACA
首先使用UCSC的 In-Silico PCR工具,将两个序列分别输入(一定要勾选Flip Reverse Primer框,因为文献/专利提供引物方向不确定):
然后点击submit即可,如果成功,会显示以下的结果(给出了序列的位置和具体的序列信息,还提供了退火温度等):
但是该工具难以批量操作,那么接下来我介绍一下第二种方法是如何进行批量操作的:
1. 将所选序列存成Fasta文件格式
2. 进行Blast,见具体代码:
blastn -task blastn-short -query Target.fasta -evalue 100 -word_size 4 -db hg19_genome -outblast.xls -outfmt 7 -num_threads 20 >CT.log2>&1 &
因为引物序列较短,因此blastn使用blastn-short模式,Target.fasta存储了上一步的序列信息,-db 后边输入的是人hg19的参考基因组,-out是输出信息,-outformat是输出文件格式,其中7是tab分隔文件。
最关键的除了blastn-short模式,另外两个参数是-evalue和-wordsize
其中evalue就是期望值,该值设置越小说明比对结果越准确,但是结果数目也越少;wordsize表示length of best perfect match,即最佳匹配的长度,该值设置越大,得到结果越准确,得到匹配结果也越少。
为了得到尽量多的比对结果,因此尽量要把两个条件设的宽松一些,根据测试结果最后将evalue设为了100(blastn默认该值为10),wordsize设为了4。
3. blast结果汇总
blastn得到的结果:有表头和Primer1,Primer2比对到的所有结果:结果中有详细的比对位置等信息
Primer1候选结果1153个,Primer2候选结果524个,那么如何从这么多候选结果中找到目标组合呢:
具体的脚本有些复杂,我就不放在这里了,主要说一下操作的思路:
a. 下载hg19的参考基因区间信息文件(rsync -a -P rsync://hgdownload.soe.ucsc.edu/goldenPath/hg19/database/refGene.txt.gz ./),该文件列出了hg19所有基因及其相关转录本的位置信息;b. 下载经典转录本文件(参考https://github.com/fanyucai1/canonical_transcript);c. 根据以上两个文件写脚本筛选出位于目标基因(HS3ST2)所在经典转录本位置区间上下游5kb之内的所有比对结果
4. 结果
上一步最终筛选得到的结果如下表:虽然上述初始比对结果很多,但是位于目标基因区间只有以下18个比对结果,将比对结果按照比对的Start位置从低到高排序,然后挑选PrimerID一列中上下两列不同的组合,最后根据Length(后一列的Start减去前一列的End得到)确定最终的组合(标黄),所得组合产物长度(141bp)与文献中所给(140bp)相吻合(经多个引物测试一般最后得到的组合的长度与文献中所给的目标产物长度相差在5bp之内)
这就得到了你想要的PCR产物所在位置!!至于具体序列使用samtools faidx获取即可。