彭 景,許 杰,程 威,尹重超,陳恒玲
(中南民族大學(xué) 生物醫(yī)學(xué)工程學(xué)院,湖北 武漢 430074)
CRISPR/Cas系統(tǒng)是一種獲得性免疫系統(tǒng),最初被發(fā)現(xiàn)來(lái)源于細(xì)菌。它能識(shí)別并結(jié)合特定的DNA片段,cas9蛋白可以在其轉(zhuǎn)錄產(chǎn)物crRNA的介導(dǎo)下對(duì)靶基因進(jìn)行剪切,實(shí)現(xiàn)對(duì)外源DNA的防御[1~3]。CRISPR/Cas的功能過(guò)程可以概括如下:得到CRISPR的間隔區(qū)序列、CRISPR基因座的表達(dá)、相關(guān)復(fù)合體對(duì)靶DNA進(jìn)行剪切。精確有效的基因組編輯是基因功能鑒定的關(guān)鍵。到目前為止,CRISPR相關(guān)系統(tǒng)已成功地應(yīng)用于動(dòng)物和植物[4~7]。
在上述理論基礎(chǔ)上,一種新穎高效的基因編輯技術(shù)應(yīng)運(yùn)而生,它是由Wiedenheft等設(shè)計(jì)出的,具體內(nèi)容包括:設(shè)計(jì)出的sgRNA可以識(shí)別并結(jié)合Cas9蛋白,并介導(dǎo)cas9蛋白對(duì)靶基因進(jìn)行剪輯(圖1),其中sgRNA是根據(jù)crRNA與tracrRNA的復(fù)合體設(shè)計(jì)出來(lái)的[2~4]。由細(xì)菌中復(fù)雜的CRISPR/Cas9系統(tǒng)精簡(jiǎn)為sgRNA與Cas9作用結(jié)構(gòu)模式,使得只需要簡(jiǎn)單地將其導(dǎo)入到細(xì)胞便可實(shí)現(xiàn)對(duì)靶基因進(jìn)行定點(diǎn)編輯,很大程度上提高了基因編輯效率。因?yàn)樵摷夹g(shù)具備高效性、低成本性和簡(jiǎn)易性等優(yōu)點(diǎn),所以生物研究界對(duì)CRISPR/Cas9系統(tǒng)十分關(guān)注,并應(yīng)用到了更廣闊的研究領(lǐng)域[1,3]。
圖1 sgRNA指導(dǎo)的CRISPR/Cas9基因剪切系統(tǒng)(圖片來(lái)源于《一種新型的構(gòu)建CRISPR/Cas9 KnockOut載體的方法》)
Cas9可以被引導(dǎo)到一個(gè)與sgRNA互補(bǔ)的20 mer基因組位點(diǎn),介導(dǎo)DNA雙鏈斷裂。5’-NGG原引物鄰近基序(PAM)必須位于目標(biāo)序列的鄰近位置[8,9]。為了選擇合理的目標(biāo)位置和最小化偏離目標(biāo)的影響,已經(jīng)建立了一些優(yōu)化sgRNA選擇的計(jì)算工具。在獲得sgRNA序列的基礎(chǔ)上,普遍采用的Zhang Lab寡核苷酸序列設(shè)計(jì)的方法(圖2)來(lái)設(shè)計(jì)oligo的生成(概括起來(lái)就是:在設(shè)計(jì)oligo時(shí),首先要保證模板序列的開(kāi)頭為G,以確保穩(wěn)定性。oligo1是在上述序列基礎(chǔ)上在其5’端加上CACC形成的,而oligo2則是在堿基配對(duì)所得的反轉(zhuǎn)序列的5’端加上AAAC形成的)[4,5]。然而,從sgRNA生成oligo非常需要有效的計(jì)算工具。在當(dāng)前的分析中,創(chuàng)建了一個(gè)基于Python的Crispr/cas9 oligos生成器的本地應(yīng)用程序工具,允許用戶批量地在輸入sgRNA序列中設(shè)計(jì)oligos。Crispr/cas9 oligos生成器可以免費(fèi)下載。該軟件是專門設(shè)計(jì)用于引物序列變換的工具,能有效解決人工自反轉(zhuǎn)問(wèn)題,很大程度地提高設(shè)計(jì)精度,節(jié)省時(shí)間。
圖2 oligo序列設(shè)計(jì)示意圖(圖片來(lái)源于 zhanglabcloningprotocol引用張鋒的文章)
由于python語(yǔ)言的簡(jiǎn)潔、易懂、易開(kāi)發(fā)等特點(diǎn),十分適合用來(lái)編寫(xiě)本課題的生成器[10,11]。Python內(nèi)有常用于科學(xué)研究的科學(xué)數(shù)據(jù)包anaconda和數(shù)據(jù)庫(kù)tkinter,這為本次程序編寫(xiě)提供了研究背景[13],其中tkinter是tk的python接口,而tk原本是Tcl的graphical user interface(GUI),就是圖形界面用戶接口,可以類比于許多編程語(yǔ)言涉及到的“控制臺(tái)”的命令行化分的編輯模式[12,13]。因此,該軟件是基于python環(huán)境下,以PyCharm為編輯代碼工具,主要利用anaconda和tkinter開(kāi)發(fā)完成的[15]。設(shè)計(jì)流程主要包括:軟件前期的設(shè)想與準(zhǔn)備、搭建操作平臺(tái)、導(dǎo)入所需要的數(shù)據(jù)庫(kù)和函數(shù)、編寫(xiě)功能函數(shù)、設(shè)計(jì)用戶界面、軟件的測(cè)試與改良。主要功能是檢驗(yàn)靶序列是否正確,完成靶序列的轉(zhuǎn)換和存儲(chǔ),最終獲得oligo1和oligo2兩個(gè)序列。
2.2.1 軟件界面
軟件界面如圖3所示。
圖3 軟件界面
圖3中有5個(gè)功能框:引物名稱、靶序列、+G、oligo1、oligo2,包含3個(gè)功能鍵:start、clear、save。其中引物名稱、靶序列是必填項(xiàng),+G、oligo1、oligo2是按start后自動(dòng)生成的,
這個(gè)軟件可以進(jìn)行批量生產(chǎn),最后可將所得到的數(shù)據(jù)保存成Excel格式。
2.2.2 軟件功能
軟件正常操作及結(jié)果如圖4所示。
圖4 軟件功能實(shí)例
圖4中所示為對(duì)3個(gè)引物:A18、G14、D3進(jìn)行引物處理。start鍵的功能是檢查序列是否符合規(guī)范,它能檢查到每一位堿基是否符合規(guī)定,并且能精確到每一位,并對(duì)靶序列進(jìn)行操作。只有當(dāng)檢查到序列滿足要求時(shí),才能進(jìn)行下步操作,編輯出符合規(guī)定的+G、oligo1、oligo2序列,并顯示在功能框中。clear鍵的功能是清除方框中的數(shù)據(jù),并可以接著進(jìn)行下一序列的設(shè)計(jì)。save鍵的功能是將運(yùn)行后的結(jié)果選擇存儲(chǔ)位置,并將該數(shù)據(jù)以Excel格式進(jìn)行保存。引物名稱框需要用戶輸入靶序列的名稱。靶序列框需要用戶輸入將要處理的靶序列。+G框內(nèi)是可以判斷靶序列的頭端是否包含“G”,若包含“G”則不處理,若不包含,則需要在序列開(kāi)頭+G。oligo1框內(nèi)功能是把+G后的靶序列前端加上“5-CACC”,在最后端加上“-3”。oligo2框內(nèi)功能是在序列前端加上“5-AAAC”,然后連接對(duì)oligo1從3端按照堿基互補(bǔ)配對(duì)原則進(jìn)行匹配的序列,最后在最后端加上“-3”。
2.2.3 序列結(jié)果保存
結(jié)果保存如圖5所示。
圖5 序列結(jié)果保存
上述操作的結(jié)果會(huì)按照規(guī)定的格式存儲(chǔ)在表格中,用戶可以自行選擇存儲(chǔ)路徑,這樣的結(jié)果簡(jiǎn)潔規(guī)范,不需要進(jìn)行人工地核對(duì),節(jié)省了時(shí)間提高了精確度。其結(jié)果文件方便發(fā)給引物公司,進(jìn)行后續(xù)工作,加快了研究工作進(jìn)度。
因?yàn)榫庉嫷男蛄兄挥?0堿基,且只能包含“A、T、G、C”四個(gè)字母。當(dāng)使用者在功能框輸入序列信息,并點(diǎn)擊相應(yīng)功能按鈕時(shí),軟件會(huì)對(duì)輸入的序列進(jìn)行檢測(cè)。程序?qū)⑹紫葯z驗(yàn)輸入序列的長(zhǎng)度,序列長(zhǎng)度若大于20或者小于20,將會(huì)彈出提示框,若長(zhǎng)度剛好為20,程序?qū)z驗(yàn)序列的字母,確保輸入的序列只含有“A、T、G、C”,若輸入正確,程序?qū)?huì)為輸入序列進(jìn)行相關(guān)操作并保存相應(yīng)信息。若輸入的為“A、T、G、C”以外的字母,程序?qū)?huì)出現(xiàn)提示對(duì)話框并要求用戶重新輸入正確的序列。下面提供了檢測(cè)序列的函數(shù)(圖6)。
圖6 檢測(cè)序列函數(shù)代碼
(1)靶序列出錯(cuò),堿基沒(méi)有按照要求填寫(xiě),輸入的序列不是滿足只有“A、T、C、G”這四個(gè)字母含有其他的字母。如圖7所示。
圖7 檢測(cè)序列錯(cuò)誤
(2)靶序列至少有一行長(zhǎng)度不符合長(zhǎng)度不符合要求(即不滿足20個(gè)堿基數(shù))。如圖8所示。
圖8 檢測(cè)長(zhǎng)度錯(cuò)誤
(3)在沒(méi)有輸入靶序列時(shí),還進(jìn)行操作出錯(cuò)。如圖9所示。
圖9 未輸入靶序列錯(cuò)誤
本課題組所研發(fā)的基于Python的Crispr/Cas9 oligos批量生成器順利完成了測(cè)試,可以自動(dòng)地以特定方式對(duì)靶序列進(jìn)行添加和編輯,以生成符合要求的oligos序列。與手動(dòng)編寫(xiě)相比,該軟件不僅節(jié)約了科研人員的時(shí)間與精力,提高了工作效率,而且大大降低了錯(cuò)誤率。如果可以繼續(xù)推廣這個(gè)軟件,將加快相關(guān)科研工作的展開(kāi),更有利于Crispr/Cas技術(shù)的發(fā)展與應(yīng)用。
盡管Crispr/Cas9 oligos批量生成器尚存在一些不足:比如讀取序列文件功能還未實(shí)現(xiàn)、序列查錯(cuò)可以更加人性化以及可以添加更豐富的引物設(shè)計(jì)方案等。而且相信隨著我們不斷地完善,這款軟件一定會(huì)變得更加人性化,功能也會(huì)更加強(qiáng)大,更快地成為科研工作者的友好工具。
基于Python的Crispr/Cas9 oligos批量生成器源代碼可在GitHub和谷歌云盤上免費(fèi)獲得,上傳網(wǎng)址分別為:https://github.com/scuec-channel/oligo-generator.git和https://drive.google.com/open?id=1nNRzZ9u0rTLbmiv2L-xG4eUHRK9ZLcQ8(The source code for the python-based Crispr/cas9 oligos batch generator is freely available on GitHub and Google cloud disk,Upload url:https://github.com/scuec-channel/oligo-generator.git and https://drive.google.com/open?id=1nNRzZ9u0rTLbmiv2L-xG4eUHRK9ZLcQ8)。