寫在前面
引物設(shè)計幾乎是每個分子實驗室的研究生必備的一項技能。目前,已經(jīng)有許多成熟的引物設(shè)計軟件供大家使用,如本地版的Primer5以及NCBI上的Primer-BLAST等等。
但是這些軟件大部分都需要用戶提供目標(biāo)基因序列,才能進行設(shè)計,對新手來說,還得先學(xué)會如何獲取目標(biāo)基因序列(如果做的物種比較小眾,絕大部分都沒有現(xiàn)成數(shù)據(jù)庫可以搜索序列,需要自己做比對鑒定)。
這里推薦一個軟件PrimerServer2,其支持用戶自定義物種進行引物設(shè)計,可以根據(jù)GeneID設(shè)計任意基因的引物。此外還提供了用戶友好的Web UI界面,搭建在實驗室網(wǎng)站或基因組數(shù)據(jù)庫網(wǎng)站,確實是個不錯的選擇~
一、安裝
- 下載PrimerServer2
git clone https://github.com/billzt/PrimerServer2.git
- PrimerServer2是基于python3開發(fā)的軟件,因此需要安裝python3
- 編譯安裝,直接conda也不錯 更方便
wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1rc2.tgz
tar -zxf Python-3.7.1rc2.tgz
./configure --with-ssl
make
make install
- 安裝samtools(Samtools >=1.9)
wget https://github.com/samtools/samtools/releases/download/1.15.1/samtools-1.15.1.tar.bz2
- 解壓
tar jxvf samtools-1.15.1.tar.bz2
- 安裝
./configure --prefix=/tools/samtools/samtools-1.15.1
make
make install
- 進入PrimerServer2文件夾
cd PrimerServer2
- 建議在虛擬環(huán)境中運行,創(chuàng)建虛擬環(huán)境
python3 -m venv venv
. venv/bin/activate

- 運行安裝腳本,下載并安裝一系列需要的環(huán)境(有點久。。。)
python3 setup.py develop
- 遇到報錯,有個模塊沒安裝上
ModuleNotFoundError: No module named 'markupsafe'
- 手動安裝
#如果pip版本太低,會報錯 ,需要升級再安裝模塊
pip install --upgrade pip
#安裝markupsafe模塊
pip install markupsafe

- 重新運行安裝腳本,安裝成功
python3 setup.py develop

二、配置示例數(shù)據(jù)
- 首先配置示例數(shù)據(jù)
primerserver-config

- 執(zhí)行完之后會配置一個默認(rèn)的示例
json配置文件,需要修改文件里面的內(nèi)容,指定示例數(shù)據(jù)所在目錄
vim ~/.primerserver.json
{
"cpu": 2,
"templates_directory": "示例數(shù)據(jù)路徑(即tests文件夾路徑)",
"templates": {
"example.fa": {
"IDs": "seq1, seq2",
"description": "Example Database",
"group": "example"
},
"example2.fa": {
"IDs": "seq1, seq2",
"description": "Example Database 2",
"group": "example"
}
}
}
- 配置完成之后運行primerserver2
flask run

- 運行成功,可用瀏覽器訪問,默認(rèn)端口為5000,如果訪問不了(比如租用的華為云或者騰訊云,有安全組) 需要自行開放5000端口
http://your.IP.address:5000

三、配置用戶數(shù)據(jù)
- 首先創(chuàng)建數(shù)據(jù)目錄,并將需要提取好的cds序列移動到該目錄,這里以荔枝為例
mkdir litchi_data
- 建立blast databases
makeblastdb -input_type fasta -dbtype nucl -in litchi.cds.fa -parse_seqids 2>/dev/null
- 建立samtools索引
samtools faidx litchi.cds.fa
- 修改配置文件,這邊只配置了一個物種的數(shù)據(jù),如有多個物種,直接在json上依次添加多個物種信息即可,可用“group”定義分組
vim ~/.primerserver.json - "templates_directory":數(shù)據(jù)存儲路徑
- "litchi.cds.longest.fa":用戶數(shù)據(jù)文件名(fasta格式)
- "IDs":給出序列中的兩個基因ID作為示例數(shù)據(jù),在web UI中顯示
- "description":對數(shù)據(jù)的一些描述,用戶自定義
- "group":分組,如果有不同的物種數(shù)據(jù)可以自定義分組
{
"cpu": 2,
"templates_directory": "數(shù)據(jù)存儲路徑",
"templates": {
"litchi.cds.longest.fa": {
"IDs": "LITCHI014204, LITCHI014242",
"description": "Litchi Database",
"group": "Sapindaceae"
}
}
}
- 配置完成之后,重新運行primerserver2
flask run

- 平時用tmux將primerserver2掛在后臺運行就好,方便
寫在最后
疫情反反復(fù)復(fù),大家五一出門注意安全
假期見見老友吃吃飯,舒服~