remotes::install_github("gaospecial/cailab.utils")13 Design specific primer with cailab.utils
根据我的研究,16S rRNA 基因特异性引物的设计实际上没有很好的工具,更多时候要凭借多序列比对的结果,自己观察序列之间的差异,从中选择不保守的区域进行设计。
我开发了一个叫做 cailab.utils,其中包含了一个实验性的函数 design_specific_primer(),来帮助设计特异性引物。
要使用该软件包,首先需要安装该软件包以及相关的依赖。
13.1 安装软件包及 R 包的依赖
因为这是一个开发版本,所以需要通过 remotes::install_github("gaospecial/cailab.utils") 安装。
13.2 安装 DECIPHER 的系统依赖
design_specific_primer() 的功能主要通过 DECIPHER 包来实现。它将 DECIPHER 中引物设计的流程打包成了一个函数,方便傻瓜式的调用。如果你了解 DECIPHER 的原理,那么可以不用这个函数。
需要注意的时,DECIPHER 运行时需要有一个来自于 oligoarrayaux 软件的系统可执行程序 hybrid-min,这个软件需要自己安装好。
The program OligoArrayAux (http://www.unafold.org/Dinamelt/software/oligoarrayaux.php) must be installed in a location accessible by the system. For example, the following code should print the installed OligoArrayAux version when executed from the R console:
对于 Windows 用户,需要下载软件的可执行程序,并将其放在环境变量 PATH 包含的路径下。
对于 Linux/MacOS 用户则需要自己编译源代码安装。
To install OligoArrayAux from the downloaded source folder on Unix-like platforms, open the shell (or Terminal on Mac OS) and type:
cd oligoarrayaux # change directory to the correct folder name
./configure
make
sudo make install
安装成功后,在 R 终端中运行 system("hybrid-min -V") 应该会出现类似地结果。
system("hybrid-min -V")hybrid-min (OligoArrayAux) 3.8.1
By Nicholas R. Markham and Michael Zuker
Copyright (C) 2006
Rensselaer Polytechnic Institute
Troy, NY 12810-3590 USA
13.3 引物设计
design_specific_primer() 函数的用法很简单。给它一个包含多个序列的 FASTA 格式文件,它就会返回特异性的引物。这里的特异性引物指的是仅能与 FASTA 文件中一条序列特异性扩增,而同时不能与另外所有序列特异性扩增的 DNA 片段。
library(cailab.utils)
fasta_file = system.file("sequence.fa", package = "rPrimer3")
design_specific_primer(fasta_file, 20, 20, 100, 1500, TRUE)Adding 3 sequences to the database.
3 total sequences in table Seqs.
Time difference of 0.03 secs
================================================================================
Time difference of 2.86 secs
seqA (655 candidate primers):
================================================================================
Determining Best Primer Pair:
================================================================================
Time difference of 0.61 secs
seqB (777 candidate primers):
================================================================================
Determining Best Primer Pair:
================================================================================
Time difference of 0.6 secs
seqC (879 candidate primers):
================================================================================
Determining Best Primer Pair:
================================================================================
Time difference of 0.74 secs
# A tibble: 3 × 4
identifier forward_primer reverse_primer product_size
<I<chr>> <I<chr>> <I<chr>> <I<dbl>>
1 seqA TCATTCTGACTGCAACGGGC TGTCTGTGCGCTATGCCTAT 155
2 seqB GAGCAGTAAAATGGCGGTCA GGTCATCGGCGGCACCTTGC 103
3 seqC ATCATTGCCGCTATCCTGGC GTGAACCAACCCGGAGCTGA 103
需要注意的是,该函数并不总是能设计出来特异性引物。如果长时间没有反应,那么请强制结束它的运行,调整参数后再试。它可用的参数参见函数的帮助文档。
?design_specific_primer| design_specific_primer | R Documentation |
Design specific primer
Description
Design specific primer
Usage
design_specific_primer(
fasta_file,
minLength = 20,
maxLength = 25,
minProductSize = 150,
maxProductSize = 500,
verbose = FALSE
)
Arguments
fasta_file |
fasta format |
minLength |
primer min length |
maxLength |
primer max length |
minProductSize |
product min length |
maxProductSize |
product max length |
verbose |
if TRUE, will print progress during the run |
Value
primers