13  Design specific primer with cailab.utils

根据我的研究,16S rRNA 基因特异性引物的设计实际上没有很好的工具,更多时候要凭借多序列比对的结果,自己观察序列之间的差异,从中选择不保守的区域进行设计。

我开发了一个叫做 cailab.utils,其中包含了一个实验性的函数 design_specific_primer(),来帮助设计特异性引物。

要使用该软件包,首先需要安装该软件包以及相关的依赖。

13.1 安装软件包及 R 包的依赖

因为这是一个开发版本,所以需要通过 remotes::install_github("gaospecial/cailab.utils") 安装。

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